feat(client): show confirm dialog when vote

This commit is contained in:
syuilo 2021-11-28 20:23:48 +09:00
parent 21e34ac40c
commit 3892a582c7
3 changed files with 12 additions and 4 deletions

View File

@ -11,6 +11,7 @@
### Improvements ### Improvements
- API: /antennas/notes API で日付による絞り込みができるように - API: /antennas/notes API で日付による絞り込みができるように
- クライアント: アンケートに投票する際に確認ダイアログを出すように
### Bugfixes ### Bugfixes
- クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正

View File

@ -809,6 +809,7 @@ ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開
continueThread: "さらにスレッドを見る" continueThread: "さらにスレッドを見る"
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
incorrectPassword: "パスワードが間違っています。" incorrectPassword: "パスワードが間違っています。"
voteConfirm: "「{choice}」に投票しますか?"
_emailUnavailable: _emailUnavailable:
used: "既に使用されています" used: "既に使用されています"

View File

@ -87,14 +87,20 @@ export default defineComponent({
toggleShowResult() { toggleShowResult() {
this.showResult = !this.showResult; 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; 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, noteId: this.note.id,
choice: id choice: id
}).then(() => {
if (!this.showResult) this.showResult = !this.poll.multiple;
}); });
if (!this.showResult) this.showResult = !this.poll.multiple;
} }
} }
}); });