Skip to content

Commit fce4d38

Browse files
committed
fix: feedback
1 parent b3582db commit fce4d38

File tree

9 files changed

+102
-6
lines changed

9 files changed

+102
-6
lines changed

src/locales/el/messages.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/locales/en/messages.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/locales/en/messages.po

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ msgstr "Save with sGHO"
3737
msgid "Aave Labs does not guarantee the program and accepts no liability."
3838
msgstr "Aave Labs does not guarantee the program and accepts no liability."
3939

40+
#: src/modules/reserve-overview/AddTokenDropdown.tsx
41+
msgid "Savings GHO token"
42+
msgstr "Savings GHO token"
43+
4044
#: src/modules/sGho/SavingsGhoCard.tsx
4145
msgid "Deposit GHO and earn up to <0>{0}%</0> APR"
4246
msgstr "Deposit GHO and earn up to <0>{0}%</0> APR"

src/locales/es/messages.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/locales/fr/messages.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/modules/markets/Gho/GhoBanner.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export const SavingsGhoBanner = ({ reserve }: GhoBannerProps) => {
165165
variant="contained"
166166
component={Link}
167167
size="medium"
168-
href={ROUTES.reserveOverview(reserve?.underlyingAsset || '', currentMarket)}
168+
href={ROUTES.sGHO}
169169
sx={{
170170
mr: 8,
171171
ml: isMd2 ? 12 : 0,

src/modules/reserve-overview/AddTokenDropdown.tsx

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ interface AddTokenDropdownProps {
1818
currentChainId: number;
1919
connectedChainId: number;
2020
hideAToken?: boolean;
21+
isSGHO?: boolean;
22+
sGHOTokenAddress?: string;
2123
}
2224

2325
export const AddTokenDropdown = ({
@@ -28,11 +30,14 @@ export const AddTokenDropdown = ({
2830
currentChainId,
2931
connectedChainId,
3032
hideAToken,
33+
isSGHO,
34+
sGHOTokenAddress,
3135
}: AddTokenDropdownProps) => {
3236
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
3337
const [changingNetwork, setChangingNetwork] = useState(false);
3438
const [underlyingBase64, setUnderlyingBase64] = useState('');
3539
const [aTokenBase64, setATokenBase64] = useState('');
40+
const [sGHOBase64, setSGHOBase64] = useState('');
3641
const open = Boolean(anchorEl);
3742
const trackEvent = useRootStore((store) => store.trackEvent);
3843

@@ -87,6 +92,7 @@ export const AddTokenDropdown = ({
8792
aToken={true}
8893
/>
8994
)}
95+
{isSGHO && <Base64Token symbol="sgho" onImageGenerated={setSGHOBase64} aToken={false} />}
9096
</>
9197
)}
9298
<Box onClick={handleClick}>
@@ -197,6 +203,45 @@ export const AddTokenDropdown = ({
197203
</MenuItem>
198204
</Box>
199205
)}
206+
{isSGHO && sGHOTokenAddress && (
207+
<Box>
208+
<Box sx={{ px: 4, pt: 3, pb: 2 }}>
209+
<Typography variant="secondary12" color="text.secondary">
210+
<Trans>Savings GHO token</Trans>
211+
</Typography>
212+
</Box>
213+
<MenuItem
214+
key="sgho"
215+
value="sgho"
216+
onClick={() => {
217+
if (currentChainId !== connectedChainId) {
218+
switchNetwork(currentChainId).then(() => {
219+
setChangingNetwork(true);
220+
});
221+
} else {
222+
trackEvent(RESERVE_DETAILS.ADD_TO_WALLET, {
223+
type: 'Savings GHO token',
224+
asset: sGHOTokenAddress,
225+
assetName: 'sGHO',
226+
});
227+
228+
addERC20Token({
229+
address: sGHOTokenAddress,
230+
decimals: poolReserve.decimals,
231+
symbol: `stkGHO`, // TODO: change to sGHO when upgraded contract is deployed
232+
image: sGHOBase64,
233+
});
234+
}
235+
handleClose();
236+
}}
237+
>
238+
<TokenIcon symbol="sgho" sx={{ fontSize: '20px' }} />
239+
<Typography variant="subheader1" sx={{ ml: 3 }} noWrap data-cy={`assetName`}>
240+
sGHO
241+
</Typography>
242+
</MenuItem>
243+
</Box>
244+
)}
200245
</Menu>
201246
</>
202247
);

src/modules/reserve-overview/TokenLinkDropdown.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ interface TokenLinkDropdownProps {
1515
poolReserve: ComputedReserveData;
1616
downToSM: boolean;
1717
hideAToken?: boolean;
18+
hideVariableDebtToken?: boolean;
1819
}
1920

2021
export const TokenLinkDropdown = ({
2122
poolReserve,
2223
downToSM,
2324
hideAToken,
25+
hideVariableDebtToken,
2426
}: TokenLinkDropdownProps) => {
2527
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
2628

@@ -48,7 +50,8 @@ export const TokenLinkDropdown = ({
4850
}
4951

5052
const showVariableDebtToken =
51-
poolReserve.borrowingEnabled || Number(poolReserve.totalVariableDebt) > 0;
53+
!hideVariableDebtToken &&
54+
(poolReserve.borrowingEnabled || Number(poolReserve.totalVariableDebt) > 0);
5255

5356
return (
5457
<>

src/modules/sGho/SGhoHeader.tsx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
1+
import { AaveSafetyModule } from '@bgd-labs/aave-address-book';
12
import { Trans } from '@lingui/macro';
23
import { Box, Stack, Typography, useMediaQuery, useTheme } from '@mui/material';
34
import { useEffect } from 'react';
45
import { FormattedNumber } from 'src/components/primitives/FormattedNumber';
56
import { TokenIcon } from 'src/components/primitives/TokenIcon';
67
import { TopInfoPanel } from 'src/components/TopInfoPanel/TopInfoPanel';
8+
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
79
import { StakeTokenFormatted, useGeneralStakeUiData } from 'src/hooks/stake/useGeneralStakeUiData';
810
import { useStakeTokenAPR } from 'src/hooks/useStakeTokenAPR';
11+
import { useWeb3Context } from 'src/libs/hooks/useWeb3Context';
912
import { useRootStore } from 'src/store/root';
1013
import { MarketDataType } from 'src/ui-config/marketsConfig';
1114
import { GENERAL } from 'src/utils/events';
1215
import { useShallow } from 'zustand/shallow';
1316

1417
import { Link } from '../../components/primitives/Link';
1518
import { TopInfoPanelItem } from '../../components/TopInfoPanel/TopInfoPanelItem';
19+
import { AddTokenDropdown } from '../reserve-overview/AddTokenDropdown';
20+
import { TokenLinkDropdown } from '../reserve-overview/TokenLinkDropdown';
1621

1722
export const SGHOHeader: React.FC = () => {
1823
const theme = useTheme();
@@ -107,6 +112,19 @@ const SGhoHeaderUserDetails = ({
107112
stkGho: StakeTokenFormatted;
108113
}) => {
109114
const { data: stakeAPR, isLoading: isLoadingStakeAPR } = useStakeTokenAPR();
115+
const { reserves } = useAppDataContext();
116+
117+
const {
118+
addERC20Token,
119+
switchNetwork,
120+
chainId: connectedChainId,
121+
currentAccount,
122+
} = useWeb3Context();
123+
const poolReserve = reserves.find((reserve) => reserve.symbol === 'GHO');
124+
const theme = useTheme();
125+
const [currentChainId] = useRootStore(useShallow((state) => [state.currentChainId]));
126+
127+
const downToSM = useMediaQuery(theme.breakpoints.down('sm'));
110128

111129
return (
112130
<>
@@ -156,6 +174,32 @@ const SGhoHeaderUserDetails = ({
156174
visibleDecimals={2}
157175
/>
158176
</TopInfoPanelItem>
177+
178+
<Box sx={{ display: 'inline-flex', alignItems: 'center', height: '40px' }}>
179+
{poolReserve && (
180+
<>
181+
<TokenLinkDropdown
182+
poolReserve={poolReserve}
183+
downToSM={downToSM}
184+
hideAToken={true}
185+
hideVariableDebtToken={true}
186+
/>
187+
{currentAccount && (
188+
<AddTokenDropdown
189+
poolReserve={poolReserve}
190+
downToSM={downToSM}
191+
switchNetwork={switchNetwork}
192+
addERC20Token={addERC20Token}
193+
currentChainId={currentChainId}
194+
connectedChainId={connectedChainId}
195+
hideAToken={true}
196+
isSGHO={true}
197+
sGHOTokenAddress={AaveSafetyModule.STK_GHO}
198+
/>
199+
)}
200+
</>
201+
)}
202+
</Box>
159203
</>
160204
);
161205
};

0 commit comments

Comments
 (0)