f0ed6707ba
CI / Build & Quality Checks (push) Successful in 10m19s
- react 18.2.0 to 19.2.6
- react-dom 18.2.0 to 19.2.6
- @types/react 18.2.39 to 19.2.15
- @types/react-dom 18.2.17 to 19.2.3
React 19 breaking changes fixed:
- useRef<T>(null) now returns RefObject<T | null>; cast to
RefObject<T> at 16 component call sites (safe, runtime unchanged)
- useRef<T>() without arg no longer valid; add | undefined>(undefined)
in useDebounce, useFileDrop, useThrottle, useVirtualPaginator hooks,
RoomInput, RoomTimeline, and ClientNonUIFeatures
- useReducer<typeof reducer> 1-arg form removed; drop explicit type arg
in useForceUpdate (inferred from reducer function)
- global JSX namespace removed; import type { JSX } from react in
react-custom-html-parser.tsx
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import React, { useRef } from 'react';
|
|
import { Box, Icon, Icons, Text, Scroll, IconButton } from 'folds';
|
|
import { Page, PageContent, PageContentCenter, PageHeader } from '../../../components/page';
|
|
import { MessageSearch } from '../../../features/message-search';
|
|
import { useHomeRooms } from './useHomeRooms';
|
|
import { ScreenSize, useScreenSizeContext } from '../../../hooks/useScreenSize';
|
|
import { BackRouteHandler } from '../../../components/BackRouteHandler';
|
|
|
|
export function HomeSearch() {
|
|
const scrollRef = useRef<HTMLDivElement>(null) as React.RefObject<HTMLDivElement>;
|
|
const rooms = useHomeRooms();
|
|
const screenSize = useScreenSizeContext();
|
|
|
|
return (
|
|
<Page>
|
|
<PageHeader balance>
|
|
<Box grow="Yes" alignItems="Center" gap="200">
|
|
<Box grow="Yes" basis="No">
|
|
{screenSize === ScreenSize.Mobile && (
|
|
<BackRouteHandler>
|
|
{(onBack) => (
|
|
<IconButton onClick={onBack} aria-label="Back">
|
|
<Icon src={Icons.ArrowLeft} />
|
|
</IconButton>
|
|
)}
|
|
</BackRouteHandler>
|
|
)}
|
|
</Box>
|
|
<Box justifyContent="Center" alignItems="Center" gap="200">
|
|
{screenSize !== ScreenSize.Mobile && <Icon size="400" src={Icons.Search} />}
|
|
<Text as="h2" size="H3" truncate>
|
|
Message Search
|
|
</Text>
|
|
</Box>
|
|
<Box grow="Yes" basis="No" />
|
|
</Box>
|
|
</PageHeader>
|
|
<Box style={{ position: 'relative' }} grow="Yes">
|
|
<Scroll ref={scrollRef} hideTrack visibility="Hover">
|
|
<PageContent>
|
|
<PageContentCenter>
|
|
<MessageSearch
|
|
defaultRoomsFilterName="Home"
|
|
allowGlobal
|
|
rooms={rooms}
|
|
scrollRef={scrollRef}
|
|
/>
|
|
</PageContentCenter>
|
|
</PageContent>
|
|
</Scroll>
|
|
</Box>
|
|
</Page>
|
|
);
|
|
}
|