Skip to content
Snippets Groups Projects
Commit f494310c authored by syuilo's avatar syuilo
Browse files

wip

parent 910edf7c
No related branches found
No related tags found
No related merge requests found
<mk-repost-form-window>
<mk-window ref="window" is-modal={ true }>
<yield to="header">
%fa:retweet%%i18n:desktop.tags.mk-repost-form-window.title%
</yield>
<yield to="content">
<mk-repost-form ref="form" post={ parent.opts.post }/>
</yield>
</mk-window>
<style lang="stylus" scoped>
:scope
> mk-window
[data-yield='header']
> [data-fa]
margin-right 4px
</style>
<script lang="typescript">
this.onDocumentKeydown = e => {
if (e.target.tagName != 'INPUT' && e.target.tagName != 'TEXTAREA') {
if (e.which == 27) { // Esc
this.$refs.window.close();
}
}
};
this.on('mount', () => {
this.$refs.window.refs.form.on('cancel', () => {
this.$refs.window.close();
});
this.$refs.window.refs.form.on('posted', () => {
this.$refs.window.close();
});
document.addEventListener('keydown', this.onDocumentKeydown);
this.$refs.window.on('closed', () => {
this.$destroy();
});
});
this.on('unmount', () => {
document.removeEventListener('keydown', this.onDocumentKeydown);
});
</script>
</mk-repost-form-window>
......@@ -8,6 +8,7 @@ import timelinePostSub from './timeline-post-sub.vue';
import subPostContent from './sub-post-content.vue';
import window from './window.vue';
import postFormWindow from './post-form-window.vue';
import repostFormWindow from './repost-form-window.vue';
Vue.component('mk-ui', ui);
Vue.component('mk-home', home);
......@@ -17,3 +18,4 @@ Vue.component('mk-timeline-post-sub', timelinePostSub);
Vue.component('mk-sub-post-content', subPostContent);
Vue.component('mk-window', window);
Vue.component('post-form-window', postFormWindow);
Vue.component('repost-form-window', repostFormWindow);
<template>
<mk-window is-modal @closed="$destroy">
<mk-window ref="window" is-modal @closed="$destroy">
<span slot="header">
<span v-if="!parent.opts.reply">%i18n:desktop.tags.mk-post-form-window.post%</span>
<span v-if="parent.opts.reply">%i18n:desktop.tags.mk-post-form-window.reply%</span>
......@@ -10,7 +10,7 @@
<mk-post-preview v-if="parent.opts.reply" :class="$style.postPreview" :post="reply"/>
<mk-post-form ref="form"
:reply="reply"
@post="$refs.window.close"
@posted="$refs.window.close"
@change-uploadings="onChangeUploadings"
@change-attached-media="onChangeMedia"/>
</div>
......
<template>
<mk-window ref="window" is-modal @closed="$destroy">
<span slot="header" :class="$style.header">%fa:retweet%%i18n:desktop.tags.mk-repost-form-window.title%</span>
<div slot="content">
<mk-repost-form ref="form" :post="post" @posted="$refs.window.close" @canceled="$refs.window.close"/>
</div>
</mk-window>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: ['post'],
mounted() {
document.addEventListener('keydown', this.onDocumentKeydown);
},
beforeDestroy() {
document.removeEventListener('keydown', this.onDocumentKeydown);
},
methods: {
onDocumentKeydown(e) {
if (e.target.tagName != 'INPUT' && e.target.tagName != 'TEXTAREA') {
if (e.which == 27) { // Esc
(this.$refs.window as any).close();
}
}
}
}
});
</script>
<style lang="stylus" module>
.header
> [data-fa]
margin-right 4px
</style>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment