Skip to content

Commit 835eb72

Browse files
committed
fix: guard reserve-overview page against undefined reserve during loading
The .find() call returns undefined when SDK data is still loading, but an unsafe cast hid this from TypeScript. Remove the as-casts and add a guard to skip rendering the reserve configuration until data is available. This matches the pattern already used by ReserveTopDetailsWrapper.
1 parent 095f40a commit 835eb72

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

pages/reserve-overview.page.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@ import { useRouter } from 'next/router';
55
import { useEffect, useState } from 'react';
66
import StyledToggleButton from 'src/components/StyledToggleButton';
77
import StyledToggleButtonGroup from 'src/components/StyledToggleButtonGroup';
8-
import {
9-
ComputedReserveData,
10-
ReserveWithId,
11-
useAppDataContext,
12-
} from 'src/hooks/app-data-provider/useAppDataProvider';
8+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
139
import { AssetCapsProvider } from 'src/hooks/useAssetCaps';
1410
import { AssetCapsProviderSDK } from 'src/hooks/useAssetCapsSDK';
1511
import { MainLayout } from 'src/layouts/MainLayout';
@@ -55,12 +51,12 @@ export default function ReserveOverview() {
5551
//With SDK
5652
const reserve = supplyReserves.find((reserve) => {
5753
return reserve.underlyingToken.address.toLowerCase() === underlyingAsset?.toLowerCase();
58-
}) as ReserveWithId;
54+
});
5955

6056
//With Reserves
6157
const reserveLegacy = reserves.find((reserve) => {
6258
return reserve.underlyingAsset.toLowerCase() === underlyingAsset?.toLowerCase();
63-
}) as ComputedReserveData;
59+
});
6460
const [pageEventCalled, setPageEventCalled] = useState(false);
6561

6662
useEffect(() => {
@@ -76,6 +72,15 @@ export default function ReserveOverview() {
7672

7773
const isOverview = mode === 'overview';
7874

75+
// Don't render reserve configuration until SDK data is loaded
76+
if (!reserve || !reserveLegacy) {
77+
return (
78+
<>
79+
<ReserveTopDetailsWrapper underlyingAsset={underlyingAsset} />
80+
</>
81+
);
82+
}
83+
7984
return (
8085
<AssetCapsProviderSDK asset={reserve}>
8186
<ReserveTopDetailsWrapper underlyingAsset={underlyingAsset} />

0 commit comments

Comments
 (0)