diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-28 01:05:31 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-01-28 01:05:31 +0900 |
| commit | 389350ba770f9332b0abb6f651e39450c6048a2f (patch) | |
| tree | 633f220349b565164c1be39db670fafded7f005a /packages/client/src/scripts | |
| parent | refactor(client): use composition api (diff) | |
| download | sharkey-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.ts | 28 |
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; } } |