From f494310c4fd2113996877e5dcba1e84c01d0cece Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Mon, 12 Feb 2018 00:58:02 +0900 Subject: [PATCH] wip --- .../app/desktop/-tags/repost-form-window.tag | 47 ------------------- src/web/app/desktop/views/components/index.ts | 2 + .../views/components/post-form-window.vue | 4 +- .../views/components/repost-form-window.vue | 38 +++++++++++++++ 4 files changed, 42 insertions(+), 49 deletions(-) delete mode 100644 src/web/app/desktop/-tags/repost-form-window.tag create mode 100644 src/web/app/desktop/views/components/repost-form-window.vue diff --git a/src/web/app/desktop/-tags/repost-form-window.tag b/src/web/app/desktop/-tags/repost-form-window.tag deleted file mode 100644 index 25f509c626..0000000000 --- a/src/web/app/desktop/-tags/repost-form-window.tag +++ /dev/null @@ -1,47 +0,0 @@ -<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> diff --git a/src/web/app/desktop/views/components/index.ts b/src/web/app/desktop/views/components/index.ts index b2de82b4d4..9788a27f1a 100644 --- a/src/web/app/desktop/views/components/index.ts +++ b/src/web/app/desktop/views/components/index.ts @@ -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); diff --git a/src/web/app/desktop/views/components/post-form-window.vue b/src/web/app/desktop/views/components/post-form-window.vue index f488b6c34b..90e694c922 100644 --- a/src/web/app/desktop/views/components/post-form-window.vue +++ b/src/web/app/desktop/views/components/post-form-window.vue @@ -1,5 +1,5 @@ <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> diff --git a/src/web/app/desktop/views/components/repost-form-window.vue b/src/web/app/desktop/views/components/repost-form-window.vue new file mode 100644 index 0000000000..6f06faaba2 --- /dev/null +++ b/src/web/app/desktop/views/components/repost-form-window.vue @@ -0,0 +1,38 @@ +<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> -- GitLab