summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--locales/ja-JP.yml1
-rw-r--r--packages/client/src/components/poll.vue14
3 files changed, 12 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d73758d8e9..ba346f762b 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 77b7a2cf27..d5fcd2d406 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 6dbe0c84e9..20a9900258 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;
}
}
});