From b1c056acc20e9bdb95fcdd77615dcc2e3fd77bbe Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Thu, 10 Apr 2025 17:23:52 +0100 Subject: [PATCH] Move conditionals. --- src/components/views/messages/EventContentBody.tsx | 2 +- src/components/views/messages/HideActionButton.tsx | 2 +- src/components/views/messages/MImageBody.tsx | 2 +- src/components/views/messages/MImageReplyBody.tsx | 2 +- src/components/views/messages/MStickerBody.tsx | 2 +- src/components/views/messages/MVideoBody.tsx | 2 +- src/components/views/rooms/LinkPreviewGroup.tsx | 2 +- src/hooks/useMediaVisible.ts | 6 +++--- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/components/views/messages/EventContentBody.tsx b/src/components/views/messages/EventContentBody.tsx index 74018bbab7..5bbe9fc3c7 100644 --- a/src/components/views/messages/EventContentBody.tsx +++ b/src/components/views/messages/EventContentBody.tsx @@ -151,7 +151,7 @@ const EventContentBody = memo( forwardRef( ({ as, mxEvent, stripReply, content, linkify, highlights, includeDir = true, ...options }, ref) => { const enableBigEmoji = useSettingValue("TextualBody.enableBigEmoji"); - const [mediaIsVisible] = useMediaVisible(mxEvent?.getId()!, mxEvent?.getRoomId()!); + const [mediaIsVisible] = useMediaVisible(mxEvent?.getId(), mxEvent?.getRoomId()); const replacer = useReplacer(content, mxEvent, options); const linkifyOptions = useMemo( diff --git a/src/components/views/messages/HideActionButton.tsx b/src/components/views/messages/HideActionButton.tsx index 1558031c16..58e91134aa 100644 --- a/src/components/views/messages/HideActionButton.tsx +++ b/src/components/views/messages/HideActionButton.tsx @@ -25,7 +25,7 @@ interface IProps { * Quick action button for marking a media event as hidden. */ export const HideActionButton: React.FC = ({ mxEvent }) => { - const [mediaIsVisible, setVisible] = useMediaVisible(mxEvent.getId()!, mxEvent.getRoomId()!); + const [mediaIsVisible, setVisible] = useMediaVisible(mxEvent.getId(), mxEvent.getRoomId()); if (!mediaIsVisible) { return; diff --git a/src/components/views/messages/MImageBody.tsx b/src/components/views/messages/MImageBody.tsx index 80a95624ce..79f840ce39 100644 --- a/src/components/views/messages/MImageBody.tsx +++ b/src/components/views/messages/MImageBody.tsx @@ -686,7 +686,7 @@ export class MImageBodyInner extends React.Component { // Wrap MImageBody component so we can use a hook here. const MImageBody: React.FC = (props) => { - const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId()!, props.mxEvent.getRoomId()!); + const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId(), props.mxEvent.getRoomId()); return ; }; diff --git a/src/components/views/messages/MImageReplyBody.tsx b/src/components/views/messages/MImageReplyBody.tsx index 546ddd519d..b73f8f77c3 100644 --- a/src/components/views/messages/MImageReplyBody.tsx +++ b/src/components/views/messages/MImageReplyBody.tsx @@ -38,7 +38,7 @@ class MImageReplyBodyInner extends MImageBodyInner { } } const MImageReplyBody: React.FC = (props) => { - const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId()!, props.mxEvent.getRoomId()!); + const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId(), props.mxEvent.getRoomId()); return ; }; diff --git a/src/components/views/messages/MStickerBody.tsx b/src/components/views/messages/MStickerBody.tsx index a5b04d8274..3a922d35aa 100644 --- a/src/components/views/messages/MStickerBody.tsx +++ b/src/components/views/messages/MStickerBody.tsx @@ -79,7 +79,7 @@ class MStickerBodyInner extends MImageBodyInner { } const MStickerBody: React.FC = (props) => { - const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId()!, props.mxEvent.getRoomId()!); + const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId(), props.mxEvent.getRoomId()); return ; }; diff --git a/src/components/views/messages/MVideoBody.tsx b/src/components/views/messages/MVideoBody.tsx index bcaaef8c56..6a36dae6a8 100644 --- a/src/components/views/messages/MVideoBody.tsx +++ b/src/components/views/messages/MVideoBody.tsx @@ -342,7 +342,7 @@ class MVideoBodyInner extends React.PureComponent { // Wrap MVideoBody component so we can use a hook here. const MVideoBody: React.FC = (props) => { - const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId()!, props.mxEvent.getRoomId()!); + const [mediaVisible, setVisible] = useMediaVisible(props.mxEvent.getId(), props.mxEvent.getRoomId()); return ; }; diff --git a/src/components/views/rooms/LinkPreviewGroup.tsx b/src/components/views/rooms/LinkPreviewGroup.tsx index 6f21e93bfa..8ad221ec2f 100644 --- a/src/components/views/rooms/LinkPreviewGroup.tsx +++ b/src/components/views/rooms/LinkPreviewGroup.tsx @@ -30,7 +30,7 @@ interface IProps { const LinkPreviewGroup: React.FC = ({ links, mxEvent, onCancelClick }) => { const cli = useContext(MatrixClientContext); const [expanded, toggleExpanded] = useStateToggle(); - const [mediaVisible] = useMediaVisible(mxEvent.getId()!, mxEvent.getRoomId()!); + const [mediaVisible] = useMediaVisible(mxEvent.getId(), mxEvent.getRoomId()); const ts = mxEvent.getTs(); const previews = useAsyncMemo<[string, IPreviewUrlResponse][]>( diff --git a/src/hooks/useMediaVisible.ts b/src/hooks/useMediaVisible.ts index 75237e33b2..5626c30bc3 100644 --- a/src/hooks/useMediaVisible.ts +++ b/src/hooks/useMediaVisible.ts @@ -22,7 +22,7 @@ const PRIVATE_JOIN_RULES: JoinRule[] = [JoinRule.Invite, JoinRule.Knock, JoinRul * @param eventId The eventId of the media event. * @returns A boolean describing the hidden status, and a function to set the visiblity. */ -export function useMediaVisible(eventId: string, roomId: string): [boolean, (visible: boolean) => void] { +export function useMediaVisible(eventId?: string, roomId?: string): [boolean, (visible: boolean) => void] { const mediaPreviewSetting = useSettingValue("mediaPreviewConfig", roomId); const client = useMatrixClientContext(); const eventVisibility = useSettingValue("showMediaEventIds"); @@ -31,7 +31,7 @@ export function useMediaVisible(eventId: string, roomId: string): [boolean, (vis (visible: boolean) => { SettingsStore.setValue("showMediaEventIds", null, SettingLevel.DEVICE, { ...eventVisibility, - [eventId]: visible, + [eventId!]: visible, }); }, [eventId, eventVisibility], @@ -39,7 +39,7 @@ export function useMediaVisible(eventId: string, roomId: string): [boolean, (vis const roomIsPrivate = joinRule ? PRIVATE_JOIN_RULES.includes(joinRule) : false; - const explicitEventVisiblity = eventVisibility[eventId]; + const explicitEventVisiblity = eventId ? eventVisibility[eventId] : undefined; // Always prefer the explicit per-event user preference here. if (explicitEventVisiblity !== undefined) { return [explicitEventVisiblity, setMediaVisible];