From 561b0fc10e83f6187491c938037ef3bcfcb56f5c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 28 Nov 2021 20:23:48 +0900 Subject: [PATCH] feat(client): show confirm dialog when vote --- CHANGELOG.md | 1 + locales/ja-JP.yml | 1 + packages/client/src/components/poll.vue | 14 ++++++++++---- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d73758d8e..ba346f762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ### Improvements - API: /antennas/notes API で日付による絞り込みができるように +- クライアント: アンケートに投票する際に確認ダイアログを出すように ### Bugfixes - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 77b7a2cf2..d5fcd2d40 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -809,6 +809,7 @@ ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開 continueThread: "さらにスレッドを見る" deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" incorrectPassword: "パスワードが間違っています。" +voteConfirm: "「{choice}」に投票しますか?" _emailUnavailable: used: "既に使用されています" diff --git a/packages/client/src/components/poll.vue b/packages/client/src/components/poll.vue index 6dbe0c84e..20a990025 100644 --- a/packages/client/src/components/poll.vue +++ b/packages/client/src/components/poll.vue @@ -87,14 +87,20 @@ export default defineComponent({ toggleShowResult() { this.showResult = !this.showResult; }, - vote(id) { + async vote(id) { if (this.readOnly || this.closed || !this.poll.multiple && this.poll.choices.some(c => c.isVoted)) return; - os.api('notes/polls/vote', { + + const { canceled } = await os.confirm({ + type: 'question', + text: this.$t('voteConfirm', { choice: this.poll.choices[id].text }), + }); + if (canceled) return; + + await os.api('notes/polls/vote', { noteId: this.note.id, choice: id - }).then(() => { - if (!this.showResult) this.showResult = !this.poll.multiple; }); + if (!this.showResult) this.showResult = !this.poll.multiple; } } });