summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkNoteDetailed.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/components/MkNoteDetailed.vue')
-rw-r--r--packages/frontend/src/components/MkNoteDetailed.vue38
1 files changed, 20 insertions, 18 deletions
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index fb37bb1ae6..48fd9908bd 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</div>
<MkNoteSub v-for="note in conversation" :key="note.id" :class="$style.replyToMore" :note="note"/>
</div>
- <MkNoteSub v-if="appearNote.reply" :note="appearNote.reply" :class="$style.replyTo"/>
+ <MkNoteSub v-if="appearNote.replyId" :note="appearNote.reply" :class="$style.replyTo"/>
<div v-if="isRenote" :class="$style.renote">
<MkAvatar :class="$style.renoteAvatar" :user="note.user" link preview/>
<i class="ti ti-repeat" style="margin-right: 4px;"></i>
@@ -287,23 +287,22 @@ const inChannel = inject('inChannel', null);
let note = deepClone(props.note);
-// コンポーネント初期化に非同期的な処理を行うとTransitionのレンダリングがバグるため同期的に実行できるメソッドが実装されるのを待つ必要がある
-//// plugin
-//const noteViewInterruptors = getPluginHandlers('note_view_interruptor');
-//if (noteViewInterruptors.length > 0) {
-// let result: Misskey.entities.Note | null = deepClone(note);
-// for (const interruptor of noteViewInterruptors) {
-// try {
-// result = await interruptor.handler(result!) as Misskey.entities.Note | null;
-// } catch (err) {
-// console.error(err);
-// }
-// }
-// note = result as Misskey.entities.Note;
-//}
+// plugin
+const noteViewInterruptors = getPluginHandlers('note_view_interruptor');
+if (noteViewInterruptors.length > 0) {
+ let result: Misskey.entities.Note | null = deepClone(note);
+ for (const interruptor of noteViewInterruptors) {
+ try {
+ result = interruptor.handler(result!) as Misskey.entities.Note | null;
+ } catch (err) {
+ console.error(err);
+ }
+ }
+ note = result as Misskey.entities.Note;
+}
const isRenote = Misskey.note.isPureRenote(note);
-const appearNote = getAppearNote(note);
+const appearNote = getAppearNote(note) ?? note;
const { $note: $appearNote, subscribe: subscribeManuallyToNoteCapture } = useNoteCapture({
note: appearNote,
parentNote: note,
@@ -393,6 +392,9 @@ const reactionsPaginator = markRaw(new Paginator('notes/reactions', {
}));
useTooltip(renoteButton, async (showing) => {
+ const anchorElement = renoteButton.value;
+ if (anchorElement == null) return;
+
const renotes = await misskeyApi('notes/renotes', {
noteId: appearNote.id,
limit: 11,
@@ -406,7 +408,7 @@ useTooltip(renoteButton, async (showing) => {
showing,
users,
count: appearNote.renoteCount,
- targetElement: renoteButton.value,
+ anchorElement: anchorElement,
}, {
closed: () => dispose(),
});
@@ -429,7 +431,7 @@ if (appearNote.reactionAcceptance === 'likeOnly') {
reaction: '❤️',
users,
count: $appearNote.reactionCount,
- targetElement: reactButton.value!,
+ anchorElement: reactButton.value!,
}, {
closed: () => dispose(),
});