Merge pull request #7 from YoJames2019/fix/room-header-cleanup-1

group duplicate conditions into one
This commit is contained in:
haz 2026-02-19 20:15:29 +01:00 committed by GitHub
commit c97fba71fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -268,7 +268,7 @@ export function RoomViewHeader() {
const { isChatOpen, toggleChat } = useCallState(); const { isChatOpen, toggleChat } = useCallState();
const pinnedEvents = useRoomPinnedEvents(room); const pinnedEvents = useRoomPinnedEvents(room);
const encryptionEvent = useStateEvent(room, StateEvent.RoomEncryption); const encryptionEvent = useStateEvent(room, StateEvent.RoomEncryption);
const ecryptedRoom = !!encryptionEvent; const encryptedRoom = !!encryptionEvent;
const avatarMxc = useRoomAvatar(room, direct); const avatarMxc = useRoomAvatar(room, direct);
const name = useRoomName(room); const name = useRoomName(room);
const topic = useRoomTopic(room); const topic = useRoomTopic(room);
@ -371,83 +371,83 @@ export function RoomViewHeader() {
</Box> </Box>
<Box shrink="No"> <Box shrink="No">
{!ecryptedRoom && (!room.isCallRoom() || isChatOpen) && (
<TooltipProvider
position="Bottom"
offset={4}
tooltip={
<Tooltip>
<Text>Search</Text>
</Tooltip>
}
>
{(triggerRef) => (
<IconButton fill="None" ref={triggerRef} onClick={handleSearchClick}>
<Icon size="400" src={Icons.Search} />
</IconButton>
)}
</TooltipProvider>
)}
{(!room.isCallRoom() || isChatOpen) && ( {(!room.isCallRoom() || isChatOpen) && (
<TooltipProvider <>
position="Bottom" {!encryptedRoom && (
offset={4} <TooltipProvider
tooltip={ position="Bottom"
<Tooltip> offset={4}
<Text>Pinned Messages</Text> tooltip={
</Tooltip> <Tooltip>
} <Text>Search</Text>
> </Tooltip>
{(triggerRef) => ( }
<IconButton
fill="None"
style={{ position: 'relative' }}
onClick={handleOpenPinMenu}
ref={triggerRef}
aria-pressed={!!pinMenuAnchor}
> >
{pinnedEvents.length > 0 && ( {(triggerRef) => (
<Badge <IconButton fill="None" ref={triggerRef} onClick={handleSearchClick}>
style={{ <Icon size="400" src={Icons.Search} />
position: 'absolute', </IconButton>
left: toRem(3),
top: toRem(3),
}}
variant="Secondary"
size="400"
fill="Solid"
radii="Pill"
>
<Text as="span" size="L400">
{pinnedEvents.length}
</Text>
</Badge>
)} )}
<Icon size="400" src={Icons.Pin} filled={!!pinMenuAnchor} /> </TooltipProvider>
</IconButton>
)} )}
</TooltipProvider> <TooltipProvider
)} position="Bottom"
{(!room.isCallRoom() || isChatOpen) && ( offset={4}
<PopOut tooltip={
anchor={pinMenuAnchor} <Tooltip>
position="Bottom" <Text>Pinned Messages</Text>
content={ </Tooltip>
<FocusTrap }
focusTrapOptions={{ >
initialFocus: false, {(triggerRef) => (
returnFocusOnDeactivate: false, <IconButton
onDeactivate: () => setPinMenuAnchor(undefined), fill="None"
clickOutsideDeactivates: true, style={{ position: 'relative' }}
isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', onClick={handleOpenPinMenu}
isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', ref={triggerRef}
escapeDeactivates: stopPropagation, aria-pressed={!!pinMenuAnchor}
}} >
> {pinnedEvents.length > 0 && (
<RoomPinMenu room={room} requestClose={() => setPinMenuAnchor(undefined)} /> <Badge
</FocusTrap> style={{
} position: 'absolute',
/> left: toRem(3),
top: toRem(3),
}}
variant="Secondary"
size="400"
fill="Solid"
radii="Pill"
>
<Text as="span" size="L400">
{pinnedEvents.length}
</Text>
</Badge>
)}
<Icon size="400" src={Icons.Pin} filled={!!pinMenuAnchor} />
</IconButton>
)}
</TooltipProvider>
<PopOut
anchor={pinMenuAnchor}
position="Bottom"
content={
<FocusTrap
focusTrapOptions={{
initialFocus: false,
returnFocusOnDeactivate: false,
onDeactivate: () => setPinMenuAnchor(undefined),
clickOutsideDeactivates: true,
isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown',
isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp',
escapeDeactivates: stopPropagation,
}}
>
<RoomPinMenu room={room} requestClose={() => setPinMenuAnchor(undefined)} />
</FocusTrap>
}
/>
</>
)} )}
{!room.isCallRoom() && screenSize === ScreenSize.Desktop && ( {!room.isCallRoom() && screenSize === ScreenSize.Desktop && (