Skip to content

Commit 5d3bdf6

Browse files
committed
fix: use /eru-readiness-type/ api for eru type filtering
1 parent f1999b1 commit 5d3bdf6

2 files changed

Lines changed: 30 additions & 23 deletions

File tree

  • app/src/views/SurgeOverview/EmergencyResponseUnit/EmergencyResponseUnitReadiness

app/src/views/SurgeOverview/EmergencyResponseUnit/EmergencyResponseUnitReadiness/EmergencyResponseUnitCard/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ function getReadinessColor(rank: number | undefined) {
2323
return styles.grayIcon;
2424
}
2525

26-
type GetEruReadinessResponse = GoApiResponse<'/api/v2/eru-readiness/'>;
26+
type GetEruReadinessResponse = GoApiResponse<'/api/v2/eru-readiness-type/'>;
2727

28-
export type ReadinessList = Array<NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]>['eru_types'][0] & {
29-
eruOwner: NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]>['eru_owner_details'];
30-
updatedAt: NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]>['updated_at'];
28+
export type ReadinessList = Array<NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]> & {
29+
eruOwner: NonNullable<NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]>['eru_readiness']>[0]['eru_owner_details'];
30+
updatedAt: NonNullable<NonNullable<NonNullable<GetEruReadinessResponse['results']>[0]>['eru_readiness']>[0]['updated_at'];
3131
}>
3232

3333
interface Props {

app/src/views/SurgeOverview/EmergencyResponseUnit/EmergencyResponseUnitReadiness/index.tsx

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -93,22 +93,31 @@ function EmergencyResponseUnitReadiness() {
9393
},
9494
});
9595

96+
const {
97+
error: eruReadinessTypeError,
98+
response: eruReadinessTypeResponse,
99+
pending: eruReadinessTypePending,
100+
} = useRequest({
101+
url: '/api/v2/eru-readiness-type/',
102+
preserveResponse: true,
103+
query: {
104+
type: filter.selectEruTypes,
105+
eru_owner: filter.selectEruOwner,
106+
},
107+
});
108+
96109
const {
97110
deployments_eru_type: deploymentEruType,
98111
} = useGlobalEnums();
99112

100113
const [activeTab, setActiveTab] = useState<'eruType' | 'nationalSociety'>('eruType');
101114

102115
const groupedByEruType = useMemo(() => {
103-
const eruData = eruReadinessResponse?.results?.flatMap((readiness) => (
104-
[...(readiness.eru_types.map((eruType) => (
105-
{
106-
...eruType,
107-
eruOwner: readiness.eru_owner_details,
108-
updatedAt: readiness.updated_at,
109-
}
110-
)))]
111-
));
116+
const eruData = eruReadinessTypeResponse?.results?.map((d) => ({
117+
...d,
118+
eruOwner: d.eru_readiness?.[0]?.eru_owner_details,
119+
updatedAt: d.eru_readiness?.[0]?.updated_at,
120+
}));
112121
return (
113122
mapToList(
114123
listToGroupList(
@@ -118,18 +127,16 @@ function EmergencyResponseUnitReadiness() {
118127
(readinessList, eruType) => ({ key: eruType, readinessList }),
119128
)
120129
);
121-
}, [eruReadinessResponse?.results]);
130+
}, [eruReadinessTypeResponse?.results]);
122131

123132
const eruRendererParams = useCallback((_: string, item: {
124133
key: string;
125134
readinessList: ReadinessList;
126135
}) => ({
127-
typeDisplay: item.readinessList[0].type_display,
128-
nationalSocieties: joinStrings(unique(
129-
item.readinessList.map((v) => (
130-
v.eruOwner.national_society_country_details.society_name
131-
)).filter(isDefined),
132-
)),
136+
typeDisplay: item.readinessList?.[0]?.type_display,
137+
nationalSocieties: joinStrings(unique(item.readinessList.map((v) => (
138+
v.eruOwner.national_society_country_details.society_name
139+
))).filter(isDefined)),
133140
fundingReadiness: minSafe(item.readinessList.map((v) => v.funding_readiness)),
134141
equipmentReadiness: minSafe(item.readinessList.map((v) => v.equipment_readiness)),
135142
peopleReadiness: minSafe(item.readinessList.map((v) => v.people_readiness)),
@@ -150,7 +157,7 @@ function EmergencyResponseUnitReadiness() {
150157
<Container
151158
heading={resolveToString(
152159
strings.eruReadinessCount,
153-
{ count: eruReadinessResponse?.count },
160+
{ count: eruReadinessResponse?.count ?? '-' },
154161
)}
155162
withHeaderBorder
156163
actions={(
@@ -198,8 +205,8 @@ function EmergencyResponseUnitReadiness() {
198205
<Grid
199206
numPreferredColumns={3}
200207
data={groupedByEruType}
201-
pending={eruReadinessPending}
202-
errored={isDefined(eruReadinessError)}
208+
pending={eruReadinessTypePending}
209+
errored={isDefined(eruReadinessTypeError)}
203210
filtered={filtered}
204211
keySelector={stringKeySelector}
205212
renderer={EmergencyResponseUnitCard}

0 commit comments

Comments
 (0)