diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2020-07-29 23:37:50 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2020-07-29 23:37:50 +0900 |
| commit | e7de5f60513774e9c599a2e3aac0fbeefb88236f (patch) | |
| tree | 3412fa4ac5af01ed242febbc904bebe1744fffaf /src/client/components | |
| parent | feat(client): AiScript: Plugin:open_url function (diff) | |
| download | misskey-e7de5f60513774e9c599a2e3aac0fbeefb88236f.tar.gz misskey-e7de5f60513774e9c599a2e3aac0fbeefb88236f.tar.bz2 misskey-e7de5f60513774e9c599a2e3aac0fbeefb88236f.zip | |
feat(client): Plugin:register_note_post_interruptor API
Diffstat (limited to 'src/client/components')
| -rw-r--r-- | src/client/components/post-form.vue | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index f0de602c29..307501b78a 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -69,6 +69,7 @@ import getAcct from '../../misc/acct/render'; import { formatTimeString } from '../../misc/format-time-string'; import { selectDriveFile } from '../scripts/select-drive-file'; import { noteVisibilities } from '../../types'; +import { utils } from '@syuilo/aiscript'; export default Vue.extend({ components: { @@ -533,9 +534,8 @@ export default Vue.extend({ localStorage.setItem('drafts', JSON.stringify(data)); }, - post() { - this.posting = true; - this.$root.api('notes/create', { + async post() { + let data = { text: this.text == '' ? undefined : this.text, fileIds: this.files.length > 0 ? this.files.map(f => f.id) : undefined, replyId: this.reply ? this.reply.id : undefined, @@ -546,7 +546,17 @@ export default Vue.extend({ visibility: this.visibility, visibleUserIds: this.visibility == 'specified' ? this.visibleUsers.map(u => u.id) : undefined, viaMobile: this.$root.isMobile - }).then(data => { + }; + + // plugin + if (this.$store.state.notePostInterruptors.length > 0) { + for (const interruptor of this.$store.state.notePostInterruptors) { + data = utils.valToJs(await interruptor.handler(JSON.parse(JSON.stringify(data)))); + } + } + + this.posting = true; + this.$root.api('notes/create', data).then(() => { this.clear(); this.deleteDraft(); this.$emit('posted'); |