Skip to content

Commit ba795f4

Browse files
add initial filter to show only stored supplies
1 parent 58ed488 commit ba795f4

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/pages/EditShelterSupply/EditShelterSupply.tsx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ const EditShelterSupply = () => {
2828
const [searchedSupplies, setSearchedSupplies] = useState<IUseSuppliesData[]>(
2929
[]
3030
);
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+
3138
const [, setSearchSupplies] = useThrottle<string>(
3239
{
3340
throttle: 200,
@@ -56,24 +63,20 @@ const EditShelterSupply = () => {
5663
);
5764
setFilteredSupplies(filteredSupplies);
5865
} else {
59-
setFilteredSupplies(supplies);
66+
const storedSupplies = supplies.filter((s) => !!shelterSupplyData[s.id]);
67+
setFilteredSupplies(storedSupplies);
6068
}
6169
},
6270
},
63-
[supplies]
71+
[supplies, shelterSupplyData]
6472
);
6573
const [modalOpened, setModalOpened] = useState<boolean>(false);
6674
const [loadingSave, setLoadingSave] = useState<boolean>(false);
6775
const [modalData, setModalData] = useState<Pick<
6876
IDialogSelectorProps,
6977
'value' | 'onSave' | 'quantity'
7078
> | 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+
7780
const supplyGroups = useMemo(
7881
() =>
7982
group<IUseSuppliesData>(filteredSupplies ?? [], 'supplyCategory.name'),
@@ -135,8 +138,9 @@ const EditShelterSupply = () => {
135138
);
136139

137140
useEffect(() => {
138-
setFilteredSupplies(supplies);
139-
}, [supplies]);
141+
const storedSupplies = supplies.filter((s) => !!shelterSupplyData[s.id]);
142+
setFilteredSupplies(storedSupplies);
143+
}, [supplies, shelterSupplyData]);
140144

141145
if (loading) return <LoadingScreen />;
142146

0 commit comments

Comments
 (0)