File tree Expand file tree Collapse file tree 2 files changed +25
-10
lines changed
Expand file tree Collapse file tree 2 files changed +25
-10
lines changed Original file line number Diff line number Diff line change 1515 let searchQuery = $state (' ' );
1616
1717 let filteredConversations = $derived .by (() => {
18- if (isSearchModeActive && searchQuery .trim ().length > 0 ) {
18+ if (searchQuery .trim ().length > 0 ) {
1919 return conversations ().filter ((conversation : { name: string }) =>
2020 conversation .name .toLowerCase ().includes (searchQuery .toLowerCase ())
2121 );
2222 }
2323
24- if (isSearchModeActive && searchQuery .trim ().length === 0 ) {
25- return [];
26- }
27-
2824 return conversations ();
2925 });
3026
6056
6157 <ChatSidebarActions
6258 {handleMobileSidebarItemClick }
63- { isSearchModeActive }
64- { searchQuery }
59+ bind: isSearchModeActive
60+ bind: searchQuery
6561 />
6662 </Sidebar .Header >
6763
Original file line number Diff line number Diff line change 99 searchQuery: string ;
1010 }
1111
12- let { handleMobileSidebarItemClick, isSearchModeActive, searchQuery }: Props = $props ();
12+ let { handleMobileSidebarItemClick, isSearchModeActive = $bindable (), searchQuery = $bindable () }: Props = $props ();
13+
14+ let searchInput: HTMLInputElement | null = $state (null );
15+
16+ $effect (() => {
17+ if (isSearchModeActive ) {
18+ searchInput ?.focus ();
19+ }
20+ })
21+
22+ function handleSearchModeDeactivate() {
23+ isSearchModeActive = false ;
24+ searchQuery = ' ' ;
25+ }
1326 </script >
1427
1528<div class =" space-y-0.5" >
1629 {#if isSearchModeActive }
1730 <div class =" relative" >
1831 <Search class =" text-muted-foreground absolute left-2 top-2.5 h-4 w-4" />
1932
20- <Input bind:value ={searchQuery } placeholder =" Search conversations..." class =" pl-8" />
33+ <Input
34+ bind:ref ={searchInput }
35+ onkeydown ={(e ) => e .key === ' Escape' && handleSearchModeDeactivate ()}
36+ placeholder =" Search conversations..."
37+ class =" pl-8"
38+ bind:value ={searchQuery }
39+ />
2140
2241 <X
2342 class =" cursor-pointertext-muted-foreground absolute right-2 top-2.5 h-4 w-4"
24- onclick ={() => ( isSearchModeActive = false ) }
43+ onclick ={handleSearchModeDeactivate }
2544 />
2645 </div >
2746 {:else }
You can’t perform that action at this time.
0 commit comments