diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index e2f0a4e492..a6dff06fd5 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -241,8 +241,12 @@ const props = withDefaults(defineProps<{ pinned?: boolean; mock?: boolean; withHardMute?: boolean; + collapseRenote?: boolean; + collapseReplies?: boolean; }>(), { mock: false, + collapseRenote: undefined, + collapseReplies: undefined, }); provide('mock', props.mock); @@ -314,12 +318,12 @@ const translating = ref(false); const showTicker = (defaultStore.state.instanceTicker === 'always') || (defaultStore.state.instanceTicker === 'remote' && appearNote.value.user.instance); const canRenote = computed(() => ['public', 'home'].includes(appearNote.value.visibility) || (appearNote.value.visibility === 'followers' && appearNote.value.userId === $i?.id)); const renoteCollapsed = ref( - defaultStore.state.collapseRenotes && isRenote && ( + (props.collapseRenote ?? defaultStore.state.collapseRenotes) && isRenote && ( ($i && ($i.id === note.value.userId || $i.id === appearNote.value.userId)) || // `||` must be `||`! See https://github.com/misskey-dev/misskey/issues/13131 (appearNote.value.myReaction != null) ), ); -const inReplyToCollapsed = ref(defaultStore.state.collapseNotesRepliedTo); +const inReplyToCollapsed = ref(props.collapseReplies ?? defaultStore.state.collapseNotesRepliedTo); const defaultLike = computed(() => defaultStore.state.like ? defaultStore.state.like : null); const animated = computed(() => parsed.value ? checkAnimationFromMfm(parsed.value) : null); const allowAnim = ref(defaultStore.state.advancedMfm && defaultStore.state.animatedMfm ? true : false); diff --git a/packages/frontend/src/components/SkNote.vue b/packages/frontend/src/components/SkNote.vue index b02d902482..60e593b7b0 100644 --- a/packages/frontend/src/components/SkNote.vue +++ b/packages/frontend/src/components/SkNote.vue @@ -241,8 +241,12 @@ const props = withDefaults(defineProps<{ pinned?: boolean; mock?: boolean; withHardMute?: boolean; + collapseRenote?: boolean; + collapseReplies?: boolean; }>(), { mock: false, + collapseRenote: undefined, + collapseReplies: undefined, }); provide('mock', props.mock); @@ -314,12 +318,12 @@ const translating = ref(false); const showTicker = (defaultStore.state.instanceTicker === 'always') || (defaultStore.state.instanceTicker === 'remote' && appearNote.value.user.instance); const canRenote = computed(() => ['public', 'home'].includes(appearNote.value.visibility) || (appearNote.value.visibility === 'followers' && appearNote.value.userId === $i?.id)); const renoteCollapsed = ref( - defaultStore.state.collapseRenotes && isRenote && ( + (props.collapseRenote ?? defaultStore.state.collapseRenotes) && isRenote && ( ($i && ($i.id === note.value.userId || $i.id === appearNote.value.userId)) || // `||` must be `||`! See https://github.com/misskey-dev/misskey/issues/13131 (appearNote.value.myReaction != null) ) ); -const inReplyToCollapsed = ref(defaultStore.state.collapseNotesRepliedTo); +const inReplyToCollapsed = ref(props.collapseReplies ?? defaultStore.state.collapseNotesRepliedTo); const defaultLike = computed(() => defaultStore.state.like ? defaultStore.state.like : null); const animated = computed(() => parsed.value ? checkAnimationFromMfm(parsed.value) : null); const allowAnim = ref(defaultStore.state.advancedMfm && defaultStore.state.animatedMfm ? true : false);