diff options
Diffstat (limited to 'packages/frontend/src/components/MkNoteDetailed.vue')
| -rw-r--r-- | packages/frontend/src/components/MkNoteDetailed.vue | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index 31e97b6aaa..a8ccf26c4c 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -235,12 +235,12 @@ const props = defineProps<{ const inChannel = inject('inChannel', null); -let note = $ref(deepClone(props.note)); +const note = ref(deepClone(props.note)); // plugin if (noteViewInterruptors.length > 0) { onMounted(async () => { - let result: Misskey.entities.Note | null = deepClone(note); + let result: Misskey.entities.Note | null = deepClone(note.value); for (const interruptor of noteViewInterruptors) { try { result = await interruptor.handler(result); @@ -252,15 +252,15 @@ if (noteViewInterruptors.length > 0) { console.error(err); } } - note = result; + note.value = result; }); } const isRenote = ( - note.renote != null && - note.text == null && - note.fileIds.length === 0 && - note.poll == null + note.value.renote != null && + note.value.text == null && + note.value.fileIds.length === 0 && + note.value.poll == null ); const el = shallowRef<HTMLElement>(); @@ -269,19 +269,19 @@ const renoteButton = shallowRef<HTMLElement>(); const renoteTime = shallowRef<HTMLElement>(); const reactButton = shallowRef<HTMLElement>(); const clipButton = shallowRef<HTMLElement>(); -let appearNote = $computed(() => isRenote ? note.renote as Misskey.entities.Note : note); -const isMyRenote = $i && ($i.id === note.userId); +const appearNote = computed(() => isRenote ? note.value.renote as Misskey.entities.Note : note.value); +const isMyRenote = $i && ($i.id === note.value.userId); const showContent = ref(false); const isDeleted = ref(false); -const muted = ref($i ? checkWordMute(appearNote, $i, $i.mutedWords) : false); +const muted = ref($i ? checkWordMute(appearNote.value, $i, $i.mutedWords) : false); const translation = ref(null); const translating = ref(false); -const parsed = appearNote.text ? mfm.parse(appearNote.text) : null; +const parsed = appearNote.value.text ? mfm.parse(appearNote.value.text) : null; const urls = parsed ? extractUrlFromMfm(parsed) : null; -const showTicker = (defaultStore.state.instanceTicker === 'always') || (defaultStore.state.instanceTicker === 'remote' && appearNote.user.instance); +const showTicker = (defaultStore.state.instanceTicker === 'always') || (defaultStore.state.instanceTicker === 'remote' && appearNote.value.user.instance); const conversation = ref<Misskey.entities.Note[]>([]); const replies = ref<Misskey.entities.Note[]>([]); -const canRenote = computed(() => ['public', 'home'].includes(appearNote.visibility) || appearNote.userId === $i.id); +const canRenote = computed(() => ['public', 'home'].includes(appearNote.value.visibility) || appearNote.value.userId === $i.id); const keymap = { 'r': () => reply(true), @@ -294,41 +294,41 @@ const keymap = { provide('react', (reaction: string) => { os.api('notes/reactions/create', { - noteId: appearNote.id, + noteId: appearNote.value.id, reaction: reaction, }); }); -let tab = $ref('replies'); -let reactionTabType = $ref(null); +const tab = ref('replies'); +const reactionTabType = ref(null); -const renotesPagination = $computed(() => ({ +const renotesPagination = computed(() => ({ endpoint: 'notes/renotes', limit: 10, params: { - noteId: appearNote.id, + noteId: appearNote.value.id, }, })); -const reactionsPagination = $computed(() => ({ +const reactionsPagination = computed(() => ({ endpoint: 'notes/reactions', limit: 10, params: { - noteId: appearNote.id, - type: reactionTabType, + noteId: appearNote.value.id, + type: reactionTabType.value, }, })); useNoteCapture({ rootEl: el, - note: $$(appearNote), - pureNote: $$(note), + note: appearNote, + pureNote: note, isDeletedRef: isDeleted, }); useTooltip(renoteButton, async (showing) => { const renotes = await os.api('notes/renotes', { - noteId: appearNote.id, + noteId: appearNote.value.id, limit: 11, }); @@ -339,7 +339,7 @@ useTooltip(renoteButton, async (showing) => { os.popup(MkUsersTooltip, { showing, users, - count: appearNote.renoteCount, + count: appearNote.value.renoteCount, targetElement: renoteButton.value, }, {}, 'closed'); }); @@ -348,7 +348,7 @@ function renote(viaKeyboard = false) { pleaseLogin(); showMovedDialog(); - const { menu } = getRenoteMenu({ note: note, renoteButton }); + const { menu } = getRenoteMenu({ note: note.value, renoteButton }); os.popupMenu(menu, renoteButton.value, { viaKeyboard, }); @@ -358,8 +358,8 @@ function reply(viaKeyboard = false): void { pleaseLogin(); showMovedDialog(); os.post({ - reply: appearNote, - channel: appearNote.channel, + reply: appearNote.value, + channel: appearNote.value.channel, animation: !viaKeyboard, }, () => { focus(); @@ -369,11 +369,11 @@ function reply(viaKeyboard = false): void { function react(viaKeyboard = false): void { pleaseLogin(); showMovedDialog(); - if (appearNote.reactionAcceptance === 'likeOnly') { + if (appearNote.value.reactionAcceptance === 'likeOnly') { sound.play('reaction'); os.api('notes/reactions/create', { - noteId: appearNote.id, + noteId: appearNote.value.id, reaction: '❤️', }); const el = reactButton.value as HTMLElement | null | undefined; @@ -389,10 +389,10 @@ function react(viaKeyboard = false): void { sound.play('reaction'); os.api('notes/reactions/create', { - noteId: appearNote.id, + noteId: appearNote.value.id, reaction: reaction, }); - if (appearNote.text && appearNote.text.length > 100 && (Date.now() - new Date(appearNote.createdAt).getTime() < 1000 * 3)) { + if (appearNote.value.text && appearNote.value.text.length > 100 && (Date.now() - new Date(appearNote.value.createdAt).getTime() < 1000 * 3)) { claimAchievement('reactWithoutRead'); } }, () => { @@ -423,20 +423,20 @@ function onContextmenu(ev: MouseEvent): void { ev.preventDefault(); react(); } else { - const { menu, cleanup } = getNoteMenu({ note: note, translating, translation, menuButton, isDeleted }); + const { menu, cleanup } = getNoteMenu({ note: note.value, translating, translation, menuButton, isDeleted }); os.contextMenu(menu, ev).then(focus).finally(cleanup); } } function menu(viaKeyboard = false): void { - const { menu, cleanup } = getNoteMenu({ note: note, translating, translation, menuButton, isDeleted }); + const { menu, cleanup } = getNoteMenu({ note: note.value, translating, translation, menuButton, isDeleted }); os.popupMenu(menu, menuButton.value, { viaKeyboard, }).then(focus).finally(cleanup); } async function clip() { - os.popupMenu(await getNoteClipMenu({ note: note, isDeleted }), clipButton.value).then(focus); + os.popupMenu(await getNoteClipMenu({ note: note.value, isDeleted }), clipButton.value).then(focus); } function showRenoteMenu(viaKeyboard = false): void { @@ -448,7 +448,7 @@ function showRenoteMenu(viaKeyboard = false): void { danger: true, action: () => { os.api('notes/delete', { - noteId: note.id, + noteId: note.value.id, }); isDeleted.value = true; }, @@ -470,7 +470,7 @@ const repliesLoaded = ref(false); function loadReplies() { repliesLoaded.value = true; os.api('notes/children', { - noteId: appearNote.id, + noteId: appearNote.value.id, limit: 30, }).then(res => { replies.value = res; @@ -482,7 +482,7 @@ const conversationLoaded = ref(false); function loadConversation() { conversationLoaded.value = true; os.api('notes/conversation', { - noteId: appearNote.replyId, + noteId: appearNote.value.replyId, }).then(res => { conversation.value = res.reverse(); }); |