diff --git a/packages/frontend/src/components/MkNoteSimple.vue b/packages/frontend/src/components/MkNoteSimple.vue index 3a354c5964..2fd32f0f82 100644 --- a/packages/frontend/src/components/MkNoteSimple.vue +++ b/packages/frontend/src/components/MkNoteSimple.vue @@ -51,11 +51,13 @@ const props = defineProps<{ const showContent = ref(prefer.s.uncollapseCW); const isDeleted = ref(false); -const mergedCW = computed(() => computeMergedCw(props.note)); - const note = ref(deepClone(props.note)); -setupNoteViewInterruptors(note, isDeleted); +const mergedCW = computed(() => computeMergedCw(note.value)); + +if (!note.value.isSchedule) { + setupNoteViewInterruptors(note, null); +} const emit = defineEmits<{ (ev: 'editScheduleNote'): void; @@ -69,7 +71,7 @@ async function deleteScheduleNote() { cancelText: i18n.ts.cancel, }); if (canceled) return; - await os.apiWithDialog('notes/schedule/delete', { noteId: props.note.id }) + await os.apiWithDialog('notes/schedule/delete', { noteId: note.value.id }) .then(() => { isDeleted.value = true; }); diff --git a/packages/frontend/src/components/MkNoteSub.vue b/packages/frontend/src/components/MkNoteSub.vue index 7c36930048..0da5f78497 100644 --- a/packages/frontend/src/components/MkNoteSub.vue +++ b/packages/frontend/src/components/MkNoteSub.vue @@ -131,7 +131,9 @@ const props = withDefaults(defineProps<{ onDeleteCallback: undefined, }); -const appearNote = computed(() => getAppearNote(props.note)); +const note = ref(deepClone(props.note)); + +const appearNote = computed(() => getAppearNote(note.value)); const canRenote = computed(() => ['public', 'home'].includes(appearNote.value.visibility) || appearNote.value.userId === $i?.id); @@ -161,8 +163,6 @@ const pleaseLoginContext = computed(() => ({ const currentClip = inject | null>('currentClip', null); -const note = ref(deepClone(props.note)); - setupNoteViewInterruptors(note, isDeleted); async function addReplyTo(replyNote: Misskey.entities.Note) { @@ -171,7 +171,7 @@ async function addReplyTo(replyNote: Misskey.entities.Note) { } async function removeReply(id: Misskey.entities.Note['id']) { - const replyIdx = replies.value.findIndex(note => note.id === id); + const replyIdx = replies.value.findIndex(reply => reply.id === id); if (replyIdx >= 0) { replies.value.splice(replyIdx, 1); appearNote.value.repliesCount -= 1; @@ -267,11 +267,11 @@ function like(): void { } } -function undoReact(note): void { - const oldReaction = note.myReaction; +function undoReact(targetNote: Misskey.entities.Note): void { + const oldReaction = targetNote.myReaction; if (!oldReaction) return; misskeyApi('notes/reactions/delete', { - noteId: note.id, + noteId: targetNote.id, }); } diff --git a/packages/frontend/src/components/SkNoteSimple.vue b/packages/frontend/src/components/SkNoteSimple.vue index c529b55a5e..365e44e1e8 100644 --- a/packages/frontend/src/components/SkNoteSimple.vue +++ b/packages/frontend/src/components/SkNoteSimple.vue @@ -40,10 +40,10 @@ const props = defineProps<{ let showContent = ref(prefer.s.uncollapseCW); -const mergedCW = computed(() => computeMergedCw(props.note)); - const note = ref(deepClone(props.note)); +const mergedCW = computed(() => computeMergedCw(note.value)); + setupNoteViewInterruptors(note, null); watch(() => props.expandAllCws, (expandAllCws) => { diff --git a/packages/frontend/src/components/SkNoteSub.vue b/packages/frontend/src/components/SkNoteSub.vue index 5de8a5109a..20d6ba8914 100644 --- a/packages/frontend/src/components/SkNoteSub.vue +++ b/packages/frontend/src/components/SkNoteSub.vue @@ -144,7 +144,9 @@ const props = withDefaults(defineProps<{ onDeleteCallback: undefined, }); -const appearNote = computed(() => getAppearNote(props.note)); +const note = ref(deepClone(props.note)); + +const appearNote = computed(() => getAppearNote(note.value)); const canRenote = computed(() => ['public', 'home'].includes(appearNote.value.visibility) || appearNote.value.userId === $i?.id); const hideLine = computed(() => props.detail); @@ -175,8 +177,6 @@ const pleaseLoginContext = computed(() => ({ const currentClip = inject | null>('currentClip', null); -const note = ref(deepClone(props.note)); - setupNoteViewInterruptors(note, isDeleted); async function addReplyTo(replyNote: Misskey.entities.Note) { @@ -185,7 +185,7 @@ async function addReplyTo(replyNote: Misskey.entities.Note) { } async function removeReply(id: Misskey.entities.Note['id']) { - const replyIdx = replies.value.findIndex(note => note.id === id); + const replyIdx = replies.value.findIndex(reply => reply.id === id); if (replyIdx >= 0) { replies.value.splice(replyIdx, 1); appearNote.value.repliesCount -= 1; @@ -281,11 +281,11 @@ function like(): void { } } -function undoReact(note): void { - const oldReaction = note.myReaction; +function undoReact(targetNote: Misskey.entities.Note): void { + const oldReaction = targetNote.myReaction; if (!oldReaction) return; misskeyApi('notes/reactions/delete', { - noteId: note.id, + noteId: targetNote.id, }); }