@@ -28,6 +28,13 @@ const EditShelterSupply = () => {
28
28
const [ searchedSupplies , setSearchedSupplies ] = useState < IUseSuppliesData [ ] > (
29
29
[ ]
30
30
) ;
31
+ const shelterSupplyData = useMemo ( ( ) => {
32
+ return ( shelter ?. shelterSupplies ?? [ ] ) . reduce (
33
+ ( prev , current ) => ( { ...prev , [ current . supply . id ] : current } ) ,
34
+ { } as Record < string , IUseShelterDataSupply >
35
+ ) ;
36
+ } , [ shelter ?. shelterSupplies ] ) ;
37
+
31
38
const [ , setSearchSupplies ] = useThrottle < string > (
32
39
{
33
40
throttle : 200 ,
@@ -56,24 +63,20 @@ const EditShelterSupply = () => {
56
63
) ;
57
64
setFilteredSupplies ( filteredSupplies ) ;
58
65
} else {
59
- setFilteredSupplies ( supplies ) ;
66
+ const storedSupplies = supplies . filter ( ( s ) => ! ! shelterSupplyData [ s . id ] ) ;
67
+ setFilteredSupplies ( storedSupplies ) ;
60
68
}
61
69
} ,
62
70
} ,
63
- [ supplies ]
71
+ [ supplies , shelterSupplyData ]
64
72
) ;
65
73
const [ modalOpened , setModalOpened ] = useState < boolean > ( false ) ;
66
74
const [ loadingSave , setLoadingSave ] = useState < boolean > ( false ) ;
67
75
const [ modalData , setModalData ] = useState < Pick <
68
76
IDialogSelectorProps ,
69
77
'value' | 'onSave' | 'quantity'
70
78
> | null > ( ) ;
71
- const shelterSupplyData = useMemo ( ( ) => {
72
- return ( shelter ?. shelterSupplies ?? [ ] ) . reduce (
73
- ( prev , current ) => ( { ...prev , [ current . supply . id ] : current } ) ,
74
- { } as Record < string , IUseShelterDataSupply >
75
- ) ;
76
- } , [ shelter ?. shelterSupplies ] ) ;
79
+
77
80
const supplyGroups = useMemo (
78
81
( ) =>
79
82
group < IUseSuppliesData > ( filteredSupplies ?? [ ] , 'supplyCategory.name' ) ,
@@ -135,8 +138,9 @@ const EditShelterSupply = () => {
135
138
) ;
136
139
137
140
useEffect ( ( ) => {
138
- setFilteredSupplies ( supplies ) ;
139
- } , [ supplies ] ) ;
141
+ const storedSupplies = supplies . filter ( ( s ) => ! ! shelterSupplyData [ s . id ] ) ;
142
+ setFilteredSupplies ( storedSupplies ) ;
143
+ } , [ supplies , shelterSupplyData ] ) ;
140
144
141
145
if ( loading ) return < LoadingScreen /> ;
142
146
0 commit comments