From 26df2c2dfa8dba56f63900c73d065b9515d7f8b1 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Oct 2018 14:34:54 +0900 Subject: [PATCH] Refactor --- src/client/app/common/scripts/note-mixin.ts | 20 +++++++++++++++++++ src/client/app/desktop/api/post.ts | 8 ++++++-- .../desktop/views/components/notes.note.vue | 16 --------------- .../desktop/views/pages/deck/deck.note.vue | 16 --------------- src/client/app/mobile/api/post.ts | 1 + .../app/mobile/views/components/note.vue | 20 ------------------- 6 files changed, 27 insertions(+), 54 deletions(-) diff --git a/src/client/app/common/scripts/note-mixin.ts b/src/client/app/common/scripts/note-mixin.ts index ac276dbe6..17182e275 100644 --- a/src/client/app/common/scripts/note-mixin.ts +++ b/src/client/app/common/scripts/note-mixin.ts @@ -84,6 +84,26 @@ export default (opts: Opts = {}) => ({ }, methods: { + reply(viaKeyboard = false) { + (this as any).apis.post({ + reply: this.appearNote, + animation: !viaKeyboard, + cb: () => { + this.focus(); + } + }); + }, + + renote(viaKeyboard = false) { + (this as any).apis.post({ + renote: this.appearNote, + animation: !viaKeyboard, + cb: () => { + this.focus(); + } + }); + }, + renoteDirectly() { (this as any).api('notes/create', { renoteId: this.appearNote.id diff --git a/src/client/app/desktop/api/post.ts b/src/client/app/desktop/api/post.ts index cfc78e50f..77d6bc98f 100644 --- a/src/client/app/desktop/api/post.ts +++ b/src/client/app/desktop/api/post.ts @@ -6,13 +6,17 @@ export default (os: OS) => opts => { const o = opts || {}; if (o.renote) { const vm = os.new(RenoteFormWindow, { - note: o.renote + note: o.renote, + animation: o.animation == null ? true : o.animation }); + if (opts.cb) vm.$once('closed', opts.cb); document.body.appendChild(vm.$el); } else { const vm = os.new(PostFormWindow, { - reply: o.reply + reply: o.reply, + animation: o.animation == null ? true : o.animation }); + if (opts.cb) vm.$once('closed', opts.cb); document.body.appendChild(vm.$el); } }; diff --git a/src/client/app/desktop/views/components/notes.note.vue b/src/client/app/desktop/views/components/notes.note.vue index a53759cf4..5df87406f 100644 --- a/src/client/app/desktop/views/components/notes.note.vue +++ b/src/client/app/desktop/views/components/notes.note.vue @@ -82,22 +82,6 @@ export default Vue.extend({ type: Object, required: true } - }, - - methods: { - reply(viaKeyboard = false) { - (this as any).os.new(MkPostFormWindow, { - reply: this.appearNote, - animation: !viaKeyboard - }).$once('closed', this.focus); - }, - - renote(viaKeyboard = false) { - (this as any).os.new(MkRenoteFormWindow, { - note: this.appearNote, - animation: !viaKeyboard - }).$once('closed', this.focus); - }, } }); diff --git a/src/client/app/desktop/views/pages/deck/deck.note.vue b/src/client/app/desktop/views/pages/deck/deck.note.vue index 055bd7157..03cf3e291 100644 --- a/src/client/app/desktop/views/pages/deck/deck.note.vue +++ b/src/client/app/desktop/views/pages/deck/deck.note.vue @@ -98,22 +98,6 @@ export default Vue.extend({ required: false, default: false } - }, - - methods: { - reply(viaKeyboard = false) { - (this as any).os.new(MkPostFormWindow, { - reply: this.appearNote, - animation: !viaKeyboard - }).$once('closed', this.focus); - }, - - renote(viaKeyboard = false) { - (this as any).os.new(MkRenoteFormWindow, { - note: this.appearNote, - animation: !viaKeyboard - }).$once('closed', this.focus); - }, } }); diff --git a/src/client/app/mobile/api/post.ts b/src/client/app/mobile/api/post.ts index 5c0f0af85..1077dc7a0 100644 --- a/src/client/app/mobile/api/post.ts +++ b/src/client/app/mobile/api/post.ts @@ -18,6 +18,7 @@ export default (os) => (opts) => { }).$mount(); vm.$once('cancel', recover); vm.$once('posted', recover); + if (opts.cb) vm.$once('closed', opts.cb); document.body.appendChild(vm.$el); (vm as any).focus(); }; diff --git a/src/client/app/mobile/views/components/note.vue b/src/client/app/mobile/views/components/note.vue index c68e6bf1a..3ffa20447 100644 --- a/src/client/app/mobile/views/components/note.vue +++ b/src/client/app/mobile/views/components/note.vue @@ -89,26 +89,6 @@ export default Vue.extend({ type: Object, required: true } - }, - - data() { - return { - showContent: false - }; - }, - - methods: { - reply() { - (this as any).apis.post({ - reply: this.appearNote - }); - }, - - renote() { - (this as any).apis.post({ - renote: this.appearNote - }); - }, } });