summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkPoll.vue
diff options
context:
space:
mode:
author果物リン <nassii74@gmail.com>2025-10-20 16:11:01 +0900
committerGitHub <noreply@github.com>2025-10-20 16:11:01 +0900
commit9aea7363cecf1d2631f3e2df01be35bb8cc66acf (patch)
tree048d352bd11d35e6359722ce7d6d788ea9064eaf /packages/frontend/src/components/MkPoll.vue
parentBump version to 2025.10.1-alpha.4 (diff)
downloadmisskey-9aea7363cecf1d2631f3e2df01be35bb8cc66acf.tar.gz
misskey-9aea7363cecf1d2631f3e2df01be35bb8cc66acf.tar.bz2
misskey-9aea7363cecf1d2631f3e2df01be35bb8cc66acf.zip
fix(frontend): MkPollの集計完了後の挙動がおかしいのを修正 (#16646)
* MkPollの集計完了後の挙動がおかしいのを修正 * fix lint * watchを削除できるように修正 * fix * Update Changelog * fix lint --------- Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/components/MkPoll.vue')
-rw-r--r--packages/frontend/src/components/MkPoll.vue20
1 files changed, 11 insertions, 9 deletions
diff --git a/packages/frontend/src/components/MkPoll.vue b/packages/frontend/src/components/MkPoll.vue
index 76c65397ae..9fc9c98493 100644
--- a/packages/frontend/src/components/MkPoll.vue
+++ b/packages/frontend/src/components/MkPoll.vue
@@ -57,15 +57,8 @@ const remaining = computed(() => {
return Math.floor(Math.max(expiresAtTime.value - now.value, 0) / 1000);
});
-const remainingWatchStop = watch(remaining, (to) => {
- if (to <= 0) {
- showResult.value = true;
- remainingWatchStop();
- }
-}, { immediate: true });
-
const total = computed(() => sum(props.choices.map(x => x.votes)));
-const closed = computed(() => remaining.value === 0);
+const closed = computed(() => remaining.value <= 0);
const isVoted = computed(() => !props.multiple && props.choices.some(c => c.isVoted));
const timer = computed(() => i18n.tsx._poll[
remaining.value >= 86400 ? 'remainingDays' :
@@ -78,7 +71,16 @@ const timer = computed(() => i18n.tsx._poll[
d: Math.floor(remaining.value / 86400),
}));
-const showResult = ref(props.readOnly || isVoted.value);
+const showResult = ref(props.readOnly || isVoted.value || closed.value);
+
+if (!closed.value) {
+ const closedWatchStop = watch(closed, (isNowClosed) => {
+ if (isNowClosed) {
+ showResult.value = true;
+ closedWatchStop();
+ }
+ });
+}
const pleaseLoginContext = computed<OpenOnRemoteOptions>(() => ({
type: 'lookup',