@@ -3,17 +3,19 @@ import { IUseSuppliesData } from '@/hooks/useSupplies/types';
3
3
import { Search , PlusCircle , X } from 'lucide-react' ;
4
4
import { useState } from 'react' ;
5
5
import { Fragment } from 'react/jsx-runtime' ;
6
- import { ISupplySearchProps } from './types' ;
6
+ import { ISupplySearchProps } from './types' ;
7
7
8
8
export const SupplySearch = ( {
9
9
supplyItems,
10
10
limit = 10 ,
11
11
onSearch,
12
12
onSelectItem,
13
- onAddNewItem
13
+ onAddNewItem,
14
14
} : ISupplySearchProps ) => {
15
15
const [ searchValue , setSearchValue ] = useState < string > ( '' ) ;
16
- const [ selectedItem , setSelectedItem ] = useState < IUseSuppliesData | null > ( null ) ;
16
+ const [ selectedItem , setSelectedItem ] = useState < IUseSuppliesData | null > (
17
+ null
18
+ ) ;
17
19
18
20
function onChangeInputHandler ( event : React . ChangeEvent < HTMLInputElement > ) {
19
21
setSearchValue ( event . target . value ) ;
@@ -51,21 +53,27 @@ export const SupplySearch = ({
51
53
value = { searchValue }
52
54
onChange = { onChangeInputHandler }
53
55
/>
54
- < X className = "h-4 w-4 ml-2 hover:cursor-pointer" onClick = { onClearClickHandler } />
56
+ < X
57
+ className = "h-4 w-4 ml-2 hover:cursor-pointer"
58
+ onClick = { onClearClickHandler }
59
+ />
55
60
</ div >
56
61
57
62
{ ! ! searchValue && ! selectedItem ? (
58
63
< div className = "flex-col items-center rounded-md border border-input p-3 bg-slate-50 mt-1" >
59
- { supplyItems . slice ( 0 , limit ) . map ( ( item ) => (
60
- < div
61
- key = { item . id }
62
- className = "h-10 flex items-center rounded-md p-2 hover:bg-slate-100 hover:cursor-pointer"
63
- onClick = { ( ) => onSelectItemHandler ( item ) }
64
- >
65
- < span className = "text-sm" > { item . name } </ span >
66
- </ div >
67
- ) ) }
68
- < div
64
+ { supplyItems
65
+ . sort ( ( a , b ) => a . name . length - b . name . length )
66
+ . slice ( 0 , limit )
67
+ . map ( ( item ) => (
68
+ < div
69
+ key = { item . id }
70
+ className = "h-10 flex items-center rounded-md p-2 hover:bg-slate-100 hover:cursor-pointer"
71
+ onClick = { ( ) => onSelectItemHandler ( item ) }
72
+ >
73
+ < span className = "text-sm" > { item . name } </ span >
74
+ </ div >
75
+ ) ) }
76
+ < div
69
77
className = "h-10 flex items-center rounded-md p-2 hover:bg-slate-100 hover:cursor-pointer"
70
78
onClick = { onAddNewItemHandler }
71
79
>
0 commit comments