summaryrefslogtreecommitdiff
path: root/packages/client/src/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-01-28 01:05:31 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-01-28 01:05:31 +0900
commit389350ba770f9332b0abb6f651e39450c6048a2f (patch)
tree633f220349b565164c1be39db670fafded7f005a /packages/client/src/scripts
parentrefactor(client): use composition api (diff)
downloadsharkey-389350ba770f9332b0abb6f651e39450c6048a2f.tar.gz
sharkey-389350ba770f9332b0abb6f651e39450c6048a2f.tar.bz2
sharkey-389350ba770f9332b0abb6f651e39450c6048a2f.zip
fix(client): 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正
Fix #8208
Diffstat (limited to 'packages/client/src/scripts')
-rw-r--r--packages/client/src/scripts/use-note-capture.ts28
1 files changed, 7 insertions, 21 deletions
diff --git a/packages/client/src/scripts/use-note-capture.ts b/packages/client/src/scripts/use-note-capture.ts
index bb00e464e3..b7cf99d5e1 100644
--- a/packages/client/src/scripts/use-note-capture.ts
+++ b/packages/client/src/scripts/use-note-capture.ts
@@ -19,51 +19,41 @@ export function useNoteCapture(props: {
case 'reacted': {
const reaction = body.reaction;
- const updated = JSON.parse(JSON.stringify(appearNote.value));
-
if (body.emoji) {
const emojis = appearNote.value.emojis || [];
if (!emojis.includes(body.emoji)) {
- updated.emojis = [...emojis, body.emoji];
+ appearNote.value.emojis = [...emojis, body.emoji];
}
}
// TODO: reactionsプロパティがない場合ってあったっけ? なければ || {} は消せる
const currentCount = (appearNote.value.reactions || {})[reaction] || 0;
- updated.reactions[reaction] = currentCount + 1;
+ appearNote.value.reactions[reaction] = currentCount + 1;
if ($i && (body.userId === $i.id)) {
- updated.myReaction = reaction;
+ appearNote.value.myReaction = reaction;
}
-
- appearNote.value = updated;
break;
}
case 'unreacted': {
const reaction = body.reaction;
- const updated = JSON.parse(JSON.stringify(appearNote.value));
-
// TODO: reactionsプロパティがない場合ってあったっけ? なければ || {} は消せる
const currentCount = (appearNote.value.reactions || {})[reaction] || 0;
- updated.reactions[reaction] = Math.max(0, currentCount - 1);
+ appearNote.value.reactions[reaction] = Math.max(0, currentCount - 1);
if ($i && (body.userId === $i.id)) {
- updated.myReaction = null;
+ appearNote.value.myReaction = null;
}
-
- appearNote.value = updated;
break;
}
case 'pollVoted': {
const choice = body.choice;
- const updated = JSON.parse(JSON.stringify(appearNote.value));
-
const choices = [...appearNote.value.poll.choices];
choices[choice] = {
...choices[choice],
@@ -73,16 +63,12 @@ export function useNoteCapture(props: {
} : {})
};
- updated.poll.choices = choices;
-
- appearNote.value = updated;
+ appearNote.value.poll.choices = choices;
break;
}
case 'deleted': {
- const updated = JSON.parse(JSON.stringify(appearNote.value));
- updated.value = true;
- appearNote.value = updated;
+ appearNote.value.deletedAt = new Date();
break;
}
}