Skip to content

Commit 4759ef5

Browse files
committed
feat: added support for all actions still using legacy flow
1 parent dfbe506 commit 4759ef5

File tree

6 files changed

+94
-32
lines changed

6 files changed

+94
-32
lines changed

src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsListItem.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { ProtocolAction } from '@aave/contract-helpers';
22
import { Trans } from '@lingui/macro';
33
import { Button } from '@mui/material';
44
import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
5+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
56
import { useModalContext } from 'src/hooks/useModal';
67
import { useRootStore } from 'src/store/root';
78
import { fetchIconSymbolAndName } from 'src/ui-config/reservePatches';
@@ -30,7 +31,13 @@ export const BorrowAssetsListItem = ({
3031
}: DashboardReserve) => {
3132
const { openBorrow } = useModalContext();
3233
const { isPaused, isFrozen } = reserve;
33-
34+
// Get legacy reserve data to support Borrow modal actions
35+
const { reserves: reservesLegacy } = useAppDataContext();
36+
const reserveItemLegacy = reservesLegacy.find(
37+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
38+
);
39+
const legacyAsset = reserveItemLegacy?.underlyingAsset?.toLowerCase();
40+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
3441
const disableBorrow = isPaused || isFrozen || Number(availableBorrows) <= 0;
3542

3643
const [trackEvent, currentMarket] = useRootStore(
@@ -108,9 +115,9 @@ export const BorrowAssetsListItem = ({
108115
variant="contained"
109116
onClick={() => {
110117
openBorrow(
111-
reserve.underlyingToken.address,
118+
legacyAsset || reserve.underlyingToken.address.toLowerCase(),
112119
currentMarket,
113-
reserve.underlyingToken.name,
120+
legacyName,
114121
'dashboard'
115122
);
116123
}}

src/modules/dashboard/lists/BorrowAssetsList/BorrowAssetsListMobileItem.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Trans } from '@lingui/macro';
33
import { Box, Button } from '@mui/material';
44
import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
55
import { VariableAPYTooltip } from 'src/components/infoTooltips/VariableAPYTooltip';
6+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
67
import { useRootStore } from 'src/store/root';
78
import { fetchIconSymbolAndName } from 'src/ui-config/reservePatches';
89
import { DashboardReserve } from 'src/utils/dashboardSortUtils';
@@ -29,7 +30,13 @@ export const BorrowAssetsListMobileItem = ({
2930
const { openBorrow } = useModalContext();
3031
const currentMarket = useRootStore((state) => state.currentMarket);
3132
const { isPaused, isFrozen } = reserve;
32-
33+
// Get legacy reserve data to support Borrow modal actions
34+
const { reserves: reservesLegacy } = useAppDataContext();
35+
const reserveItemLegacy = reservesLegacy.find(
36+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
37+
);
38+
const legacyAsset = reserveItemLegacy?.underlyingAsset?.toLowerCase();
39+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
3340
const disableBorrow = isPaused || isFrozen || Number(availableBorrows) <= 0;
3441
const borrowProtocolIncentives = mapAaveProtocolIncentives(reserve.incentives, 'borrow');
3542
const { iconSymbol: iconSymbolFetched } = fetchIconSymbolAndName({
@@ -97,9 +104,9 @@ export const BorrowAssetsListMobileItem = ({
97104
variant="contained"
98105
onClick={() =>
99106
openBorrow(
100-
reserve.underlyingToken.address.toLowerCase(),
107+
legacyAsset || reserve.underlyingToken.address.toLowerCase(),
101108
currentMarket,
102-
reserve.underlyingToken.name,
109+
legacyName,
103110
'dashboard'
104111
)
105112
}

src/modules/dashboard/lists/BorrowedPositionsList/BorrowedPositionsListItem.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Box, Button, useMediaQuery, useTheme } from '@mui/material';
55
import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
66
import { IncentivesCard } from 'src/components/incentives/IncentivesCard';
77
import { Row } from 'src/components/primitives/Row';
8+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
89
import { useAssetCapsSDK } from 'src/hooks/useAssetCapsSDK';
910
import { useModalContext } from 'src/hooks/useModal';
1011
import { useRootStore } from 'src/store/root';
@@ -38,8 +39,16 @@ export const BorrowedPositionsListItem = ({
3839
const theme = useTheme();
3940
const downToXSM = useMediaQuery(theme.breakpoints.down('xsm'));
4041
const { openBorrow, openRepay, openDebtSwitch } = useModalContext();
42+
const { reserves: reservesLegacy } = useAppDataContext();
4143

4244
const reserve = item.reserve;
45+
// Get legacy reserve data to support Borrow, Repay, Debt Switch modal actions
46+
const reserveItemLegacy = reservesLegacy.find(
47+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
48+
);
49+
const legacyAsset =
50+
reserveItemLegacy?.underlyingAsset?.toLowerCase() || item.underlyingAsset?.toLowerCase();
51+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
4352

4453
const disableBorrow =
4554
reserve.borrowInfo?.borrowingState === 'DISABLED' ||
@@ -71,22 +80,22 @@ export const BorrowedPositionsListItem = ({
7180
borrowAPY: Number(item.apyPosition?.value ?? 0),
7281
borrowProtocolIncentives: borrowProtocolIncentives,
7382
onDetbSwitchClick: () => {
74-
openDebtSwitch(item.underlyingAsset ?? item.reserve.underlyingToken.address);
83+
openDebtSwitch(legacyAsset ?? item.reserve.underlyingToken.address);
7584
},
7685
onOpenBorrow: () => {
7786
openBorrow(
78-
item.underlyingAsset ?? item.reserve.underlyingToken.address,
87+
legacyAsset ?? item.reserve.underlyingToken.address.toLowerCase(),
7988
currentMarket,
80-
item.name ?? item.reserve.underlyingToken.name,
89+
legacyName,
8190
'dashboard'
8291
);
8392
},
8493
onOpenRepay: () => {
8594
openRepay(
86-
item.underlyingAsset ?? item.reserve.underlyingToken.address,
95+
legacyAsset ?? item.reserve.underlyingToken.address.toLowerCase(),
8796
item.reserve.isFrozen,
8897
currentMarket,
89-
item.name ?? item.reserve.underlyingToken.name,
98+
legacyName,
9099
'dashboard'
91100
);
92101
},

src/modules/dashboard/lists/SuppliedPositionsList/SuppliedPositionsListItem.tsx

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { ProtocolAction } from '@aave/contract-helpers';
22
import { Trans } from '@lingui/macro';
33
import { Button } from '@mui/material';
44
import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
5+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
56
import { useModalContext } from 'src/hooks/useModal';
67
import { useRootStore } from 'src/store/root';
78
import { fetchIconSymbolAndName } from 'src/ui-config/reservePatches';
@@ -31,6 +32,14 @@ export const SuppliedPositionsListItem = ({
3132
const [trackEvent, currentMarketData, currentMarket] = useRootStore(
3233
useShallow((store) => [store.trackEvent, store.currentMarketData, store.currentMarket])
3334
);
35+
// Get legacy reserve data to support Supply, withdraw, swaps modal actions
36+
const { reserves: reservesLegacy } = useAppDataContext();
37+
const reserveItemLegacy = reservesLegacy.find(
38+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
39+
);
40+
const legacyAsset =
41+
reserveItemLegacy?.underlyingAsset?.toLowerCase() || underlyingAsset?.toLowerCase();
42+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
3443

3544
const showSwitchButton = isFeatureEnabled.liquiditySwap(currentMarketData);
3645

@@ -96,9 +105,9 @@ export const SuppliedPositionsListItem = ({
96105
canBeEnabledAsCollateral={canBeEnabledAsCollateral!}
97106
onToggleSwitch={() => {
98107
openCollateralChange(
99-
underlyingAsset,
108+
legacyAsset,
100109
currentMarket,
101-
reserve.underlyingToken.name,
110+
legacyName,
102111
'dashboard',
103112
usageAsCollateralEnabledOnUser
104113
);
@@ -119,9 +128,9 @@ export const SuppliedPositionsListItem = ({
119128
modal: 'Swap Collateral',
120129
market: currentMarket,
121130
assetName: reserve.underlyingToken.name,
122-
asset: underlyingAsset,
131+
asset: legacyAsset,
123132
});
124-
openCollateralSwap(underlyingAsset);
133+
openCollateralSwap(legacyAsset);
125134
}}
126135
data-cy={`swapButton`}
127136
>
@@ -131,9 +140,7 @@ export const SuppliedPositionsListItem = ({
131140
<Button
132141
disabled={disableSupply}
133142
variant="contained"
134-
onClick={() =>
135-
openSupply(underlyingAsset, currentMarket, reserve.underlyingToken.name, 'dashboard')
136-
}
143+
onClick={() => openSupply(legacyAsset, currentMarket, legacyName, 'dashboard')}
137144
>
138145
<Trans>Supply</Trans>
139146
</Button>
@@ -142,7 +149,7 @@ export const SuppliedPositionsListItem = ({
142149
disabled={disableWithdraw}
143150
variant="outlined"
144151
onClick={() => {
145-
openWithdraw(underlyingAsset, currentMarket, reserve.underlyingToken.name, 'dashboard');
152+
openWithdraw(legacyAsset, currentMarket, legacyName, 'dashboard');
146153
}}
147154
>
148155
<Trans>Withdraw</Trans>

src/modules/dashboard/lists/SuppliedPositionsList/SuppliedPositionsListMobileItem.tsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { ProtocolAction } from '@aave/contract-helpers';
22
import { Trans } from '@lingui/macro';
33
import { Box, Button } from '@mui/material';
44
import { mapAaveProtocolIncentives } from 'src/components/incentives/incentives.helper';
5+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
56
import { useRootStore } from 'src/store/root';
67
import { fetchIconSymbolAndName } from 'src/ui-config/reservePatches';
78
import { DashboardReserve } from 'src/utils/dashboardSortUtils';
@@ -28,6 +29,15 @@ export const SuppliedPositionsListMobileItem = ({
2829
);
2930

3031
const { openSupply, openCollateralSwap, openWithdraw, openCollateralChange } = useModalContext();
32+
// Get legacy reserve data to support Supply, withdraw, swaps modal actions
33+
const { reserves: reservesLegacy } = useAppDataContext();
34+
const reserveItemLegacy = reservesLegacy.find(
35+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
36+
);
37+
const legacyAsset =
38+
reserveItemLegacy?.underlyingAsset?.toLowerCase() ||
39+
reserve.underlyingToken.address.toLowerCase();
40+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
3141

3242
const isSwapButton = isFeatureEnabled.liquiditySwap(currentMarketData);
3343

@@ -103,9 +113,9 @@ export const SuppliedPositionsListMobileItem = ({
103113
canBeEnabledAsCollateral={canBeEnabledAsCollateral!}
104114
onToggleSwitch={() =>
105115
openCollateralChange(
106-
reserve.underlyingToken.address.toLowerCase(),
116+
legacyAsset,
107117
currentMarket,
108-
reserve.underlyingToken.name,
118+
legacyName,
109119
'dashboard',
110120
usageAsCollateralEnabledOnUser
111121
)
@@ -118,7 +128,9 @@ export const SuppliedPositionsListMobileItem = ({
118128
<Button
119129
disabled={disableSwap}
120130
variant="contained"
121-
onClick={() => openCollateralSwap(reserve.underlyingToken.address.toLowerCase())}
131+
onClick={() =>
132+
openCollateralSwap(legacyAsset || reserve.underlyingToken.address.toLowerCase())
133+
}
122134
fullWidth
123135
>
124136
<Trans>Swap</Trans>
@@ -129,9 +141,9 @@ export const SuppliedPositionsListMobileItem = ({
129141
variant="contained"
130142
onClick={() =>
131143
openSupply(
132-
reserve.underlyingToken.address.toLowerCase(),
144+
legacyAsset || reserve.underlyingToken.address.toLowerCase(),
133145
currentMarket,
134-
reserve.underlyingToken.name,
146+
legacyName,
135147
'dashboard'
136148
)
137149
}
@@ -145,9 +157,9 @@ export const SuppliedPositionsListMobileItem = ({
145157
variant="outlined"
146158
onClick={() =>
147159
openWithdraw(
148-
reserve.underlyingToken.address.toLowerCase(),
160+
legacyAsset || reserve.underlyingToken.address.toLowerCase(),
149161
currentMarket,
150-
reserve.underlyingToken.name,
162+
legacyName,
151163
'dashboard'
152164
)
153165
}

src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsListItem.tsx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ import { FormattedNumber } from 'src/components/primitives/FormattedNumber';
2323
import { NoData } from 'src/components/primitives/NoData';
2424
import { Row } from 'src/components/primitives/Row';
2525
import { TokenIcon } from 'src/components/primitives/TokenIcon';
26+
import {
27+
ComputedReserveData,
28+
useAppDataContext,
29+
} from 'src/hooks/app-data-provider/useAppDataProvider';
2630
import { WalletBalancesMap } from 'src/hooks/app-data-provider/useWalletBalances';
2731
import { useAssetCapsSDK } from 'src/hooks/useAssetCapsSDK';
2832
import { useModalContext } from 'src/hooks/useModal';
@@ -53,9 +57,12 @@ export const SupplyAssetsListItem = (
5357
const downToXSM = useMediaQuery(theme.breakpoints.down('xsm'));
5458
const { supplyCap } = useAssetCapsSDK();
5559
const wrappedTokenReserves = useWrappedTokens();
56-
60+
const { reserves: reserveLegacy } = useAppDataContext();
5761
const { reserve } = params;
58-
62+
// Get legacy reserve data to support Supply modal actions
63+
const reserveItemLegacy = reserveLegacy.find(
64+
(r) => r.underlyingAsset.toLowerCase() === reserve.underlyingToken.address.toLowerCase()
65+
);
5966
const wrappedToken = wrappedTokenReserves.find(
6067
(r) => r.tokenOut.underlyingAsset === reserve.underlyingToken.address
6168
);
@@ -76,6 +83,7 @@ export const SupplyAssetsListItem = (
7683
canSupplyAsWrappedToken: canSupplyAsWrappedToken ?? false,
7784
walletBalancesMap: params.walletBalances,
7885
supplyProtocolIncentives,
86+
reserveItemLegacy,
7987
};
8088

8189
if (downToXSM) {
@@ -90,6 +98,7 @@ interface SupplyAssetsListItemProps extends DashboardReserve {
9098
canSupplyAsWrappedToken: boolean;
9199
walletBalancesMap: WalletBalancesMap;
92100
supplyProtocolIncentives: ReserveIncentiveResponse[];
101+
reserveItemLegacy?: ComputedReserveData;
93102
}
94103

95104
export const SupplyAssetsListItemDesktop = ({
@@ -103,12 +112,16 @@ export const SupplyAssetsListItemDesktop = ({
103112
iconSymbol,
104113
name,
105114
supplyProtocolIncentives,
115+
reserveItemLegacy,
106116
}: SupplyAssetsListItemProps) => {
107117
const currentMarketData = useRootStore((store) => store.currentMarketData);
108118
const currentMarket = useRootStore((store) => store.currentMarket);
109119
const wrappedTokenReserves = useWrappedTokens();
110120

111121
const { openSupply, openSwitch } = useModalContext();
122+
// Get legacy asset for switch and supply modals actions
123+
const legacyAsset = reserveItemLegacy?.underlyingAsset?.toLowerCase();
124+
const legacyName = reserveItemLegacy?.name || reserve.underlyingToken.name;
112125

113126
// Disable the asset to prevent it from being supplied if supply cap has been reached
114127
const { supplyCap: supplyCapUsage, debtCeiling } = useAssetCapsSDK();
@@ -139,7 +152,7 @@ export const SupplyAssetsListItemDesktop = ({
139152
};
140153

141154
const handleSwitchClick = () => {
142-
openSwitch(reserve.underlyingToken.address);
155+
openSwitch(legacyAsset);
143156
setAnchorEl(null);
144157
};
145158
const { iconSymbol: iconSymbolFetched } = fetchIconSymbolAndName({
@@ -252,9 +265,9 @@ export const SupplyAssetsListItemDesktop = ({
252265
variant="contained"
253266
onClick={() => {
254267
openSupply(
255-
reserve.underlyingToken.address,
268+
legacyAsset ?? reserve.underlyingToken.address.toLowerCase(),
256269
currentMarket,
257-
reserve.underlyingToken.name,
270+
legacyName,
258271
'dashboard'
259272
);
260273
}}
@@ -468,7 +481,14 @@ export const SupplyAssetsListItemMobile = ({
468481
<Button
469482
disabled={disableSupply}
470483
variant="contained"
471-
onClick={() => openSupply(underlyingAsset, currentMarket, name, 'dashboard')}
484+
onClick={() =>
485+
openSupply(
486+
reserve.underlyingToken.address.toLowerCase(),
487+
currentMarket,
488+
reserve.underlyingToken.name,
489+
'dashboard'
490+
)
491+
}
472492
sx={{ mr: 1.5 }}
473493
fullWidth
474494
>

0 commit comments

Comments
 (0)