From ffcb6de3c03633fd2edace28c47b358604e2be90 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Sun, 29 Jun 2025 19:25:45 -0400 Subject: [PATCH] expand matching user/instance in DynamicNote --- .../frontend/src/components/DynamicNote.vue | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/components/DynamicNote.vue b/packages/frontend/src/components/DynamicNote.vue index 5d01d3e255..985831d2f8 100644 --- a/packages/frontend/src/components/DynamicNote.vue +++ b/packages/frontend/src/components/DynamicNote.vue @@ -14,7 +14,7 @@ Displays a note with either Misskey or Sharkey style, based on user preference. :withHardMute="withHardMute" @reaction="emoji => emit('reaction', emoji)" @removeReaction="emoji => emit('removeReaction', emoji)" - @expandMute="n => emit('expandMute', n)" + @expandMute="n => onExpandNote(n)" /> @@ -25,6 +25,8 @@ import type { ComponentExposed } from 'vue-component-type-helpers'; import type MkNote from '@/components/MkNote.vue'; import type SkNote from '@/components/SkNote.vue'; import { prefer } from '@/preferences'; +import { deepAssign } from '@/utility/merge'; +import { useMuteOverrides } from '@/utility/check-word-mute'; const XNote = defineAsyncComponent(() => prefer.s.noteDesign === 'misskey' @@ -32,10 +34,11 @@ const XNote = defineAsyncComponent(() => : import('@/components/SkNote.vue')); const rootEl = useTemplateRef>('rootEl'); +const muteOverrides = useMuteOverrides(); defineExpose({ rootEl }); -defineProps<{ +const props = defineProps<{ note: Misskey.entities.Note; pinned?: boolean; mock?: boolean; @@ -47,4 +50,24 @@ const emit = defineEmits<{ (ev: 'removeReaction', emoji: string): void; (ev: 'expandMute', note: Misskey.entities.Note): void; }>(); + +function onExpandNote(note: Misskey.entities.Note) { + // Expand the user/instance CW for matching subthread (and the inline reply/renote view) + if (note.id === props.note.id) { + deepAssign(muteOverrides, { + user: { + [note.user.id]: { + userMandatoryCW: null, + }, + }, + instance: { + [note.user.host ?? '']: { + instanceMandatoryCW: null, + }, + }, + }); + } + + emit('expandMute', note); +}