Skip to content

Commit 995cc8d

Browse files
drewcookgrothemdefispartan
authored
feat: graph improvements (#1102)
* chore: refactor graph component hierarchy * feat: initial component for graph time range selector * refactor: moved global style for ToggleButton to a styled component * fix: enforce a selection * fix: styles * fix: bad merge * refactor: move data fetching to graph containers * feat: handle selected time range in parent component * feat: initial hookup of time range selector * feat: removed 'Max' time selection from graphs * feat: add in loading/error states * feat: clean up graph styles * feat: add supply rate * chore: remove log * chore: add circle over supply rate * chore: supply APR logic * chore: show time/legend when loading * chore: test error state * chore: shorter graphs * fix: build * chore: remove unused component * chore: remove time selector from IRM graph * chore: add style changes to graphs * chore: i18n * chore: bump material and add react-transition-group * chore: more style updates * chore: more styling * feat: add interest rate strategy link (#1124) * feat: add link to interest rate strategy * fix: remove unnecessary typography tag * chore: i18n * chore: more styling * chore: cleanup * chore: removed TODO comment * fix: handle formatting dates behind UTC time, and don't include time for 6m and 1y time range * fix: remove console logs * fix: remove supply APY from interest rate model graph (#1160) * chore: log cleanup * chore: show % * fix: remove horizontal divider for util rate * chore: update eslintignore * fix: remove unused file * fix: re-render issue with loading spinner * chore: remove unused package * chore: hide charts for v3 and comment about bug * chore: remove log * feat: temporarily disable charts for polygon v2 Co-authored-by: Mark Grothe <grothem@gmail.com> Co-authored-by: Andrew Schmidt <andrew@aave.com>
1 parent 3b0d59c commit 995cc8d

26 files changed

+1061
-559
lines changed

.eslintignore

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,22 @@
1-
scripts/
1+
# General Ignores
2+
.gitignore
3+
.prettierignore
4+
.eslintcache
5+
node_modules/
6+
public/
7+
8+
# Artifacts
9+
.next/
10+
out/
11+
src/locales/
12+
13+
# IDE
14+
.vscode
15+
16+
# Specific Ignores
17+
*.svg
18+
*.ico
19+
*.json
20+
*.md
21+
*.log
22+
*.lock

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"@heroicons/react": "^1.0.6",
4949
"@lingui/react": "^3.13.2",
5050
"@mui/icons-material": "^5.8.4",
51-
"@mui/material": "^5.9.1",
51+
"@mui/material": "^5.10.5",
5252
"@paraswap/sdk": "5.6.0-alpha.3",
5353
"@visx/axis": "^2.6.0",
5454
"@visx/curve": "^2.1.0",

pages/index.page.tsx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
import { Trans } from '@lingui/macro';
2-
import {
3-
Box,
4-
ToggleButton,
5-
ToggleButtonGroup,
6-
Typography,
7-
useMediaQuery,
8-
useTheme,
9-
} from '@mui/material';
2+
import { Box, Typography, useMediaQuery, useTheme } from '@mui/material';
103
import { useEffect, useState } from 'react';
4+
import StyledToggleButton from 'src/components/StyledToggleButton';
5+
import StyledToggleButtonGroup from 'src/components/StyledToggleButtonGroup';
116
import { usePermissions } from 'src/hooks/usePermissions';
127

138
import { ConnectWalletPaper } from '../src/components/ConnectWalletPaper';
@@ -44,24 +39,24 @@ export default function Home() {
4439
mb: { xs: 3, xsm: 4 },
4540
}}
4641
>
47-
<ToggleButtonGroup
42+
<StyledToggleButtonGroup
4843
color="primary"
4944
value={mode}
5045
exclusive
5146
onChange={(_, value) => setMode(value)}
5247
sx={{ width: { xs: '100%', xsm: '359px' }, height: '44px' }}
5348
>
54-
<ToggleButton value="supply" disabled={mode === 'supply'}>
49+
<StyledToggleButton value="supply" disabled={mode === 'supply'}>
5550
<Typography variant="subheader1">
5651
<Trans>Supply</Trans>
5752
</Typography>
58-
</ToggleButton>
59-
<ToggleButton value="borrow" disabled={mode === 'borrow'}>
53+
</StyledToggleButton>
54+
<StyledToggleButton value="borrow" disabled={mode === 'borrow'}>
6055
<Typography variant="subheader1">
6156
<Trans>Borrow</Trans>
6257
</Typography>
63-
</ToggleButton>
64-
</ToggleButtonGroup>
58+
</StyledToggleButton>
59+
</StyledToggleButtonGroup>
6560
</Box>
6661
)}
6762

pages/reserve-overview.page.tsx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
import { Trans } from '@lingui/macro';
2-
import {
3-
Box,
4-
ToggleButton,
5-
ToggleButtonGroup,
6-
Typography,
7-
useMediaQuery,
8-
useTheme,
9-
} from '@mui/material';
2+
import { Box, Typography, useMediaQuery, useTheme } from '@mui/material';
103
import { useRouter } from 'next/router';
114
import { useEffect, useState } from 'react';
5+
import StyledToggleButton from 'src/components/StyledToggleButton';
6+
import StyledToggleButtonGroup from 'src/components/StyledToggleButtonGroup';
127
import {
138
ComputedReserveData,
149
useAppDataContext,
@@ -53,24 +48,24 @@ export default function ReserveOverview() {
5348
mb: { xs: 3, xsm: 4 },
5449
}}
5550
>
56-
<ToggleButtonGroup
51+
<StyledToggleButtonGroup
5752
color="primary"
5853
value={mode}
5954
exclusive
6055
onChange={(_, value) => setMode(value)}
6156
sx={{ width: { xs: '100%', xsm: '359px' }, height: '44px' }}
6257
>
63-
<ToggleButton value="overview" disabled={mode === 'overview'}>
58+
<StyledToggleButton value="overview" disabled={mode === 'overview'}>
6459
<Typography variant="subheader1">
6560
<Trans>Overview</Trans>
6661
</Typography>
67-
</ToggleButton>
68-
<ToggleButton value="actions" disabled={mode === 'actions'}>
62+
</StyledToggleButton>
63+
<StyledToggleButton value="actions" disabled={mode === 'actions'}>
6964
<Typography variant="subheader1">
7065
<Trans>Your info</Trans>
7166
</Typography>
72-
</ToggleButton>
73-
</ToggleButtonGroup>
67+
</StyledToggleButton>
68+
</StyledToggleButtonGroup>
7469
</Box>
7570

7671
<Box sx={{ display: 'flex' }}>

pages/staking.staking.tsx

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
import { Trans } from '@lingui/macro';
2-
import {
3-
Box,
4-
Grid,
5-
ToggleButton,
6-
ToggleButtonGroup,
7-
Typography,
8-
useMediaQuery,
9-
useTheme,
10-
} from '@mui/material';
2+
import { Box, Grid, Typography, useMediaQuery, useTheme } from '@mui/material';
113
import { BigNumber } from 'ethers/lib/ethers';
124
import { formatEther } from 'ethers/lib/utils';
135
import { useEffect, useState } from 'react';
146
import { ContentContainer } from 'src/components/ContentContainer';
7+
import StyledToggleButton from 'src/components/StyledToggleButton';
8+
import StyledToggleButtonGroup from 'src/components/StyledToggleButtonGroup';
159
import { StakeModal } from 'src/components/transactions/Stake/StakeModal';
1610
import { StakeCooldownModal } from 'src/components/transactions/StakeCooldown/StakeCooldownModal';
1711
import { StakeRewardClaimModal } from 'src/components/transactions/StakeRewardClaim/StakeRewardClaimModal';
@@ -77,24 +71,24 @@ export default function Staking() {
7771
mb: { xs: 3, xsm: 4 },
7872
}}
7973
>
80-
<ToggleButtonGroup
74+
<StyledToggleButtonGroup
8175
color="primary"
8276
value={mode}
8377
exclusive
8478
onChange={(_, value) => setMode(value)}
8579
sx={{ width: { xs: '100%', xsm: '359px' } }}
8680
>
87-
<ToggleButton value="aave" disabled={mode === 'aave'}>
81+
<StyledToggleButton value="aave" disabled={mode === 'aave'}>
8882
<Typography variant="subheader1">
8983
<Trans>Stake AAVE</Trans>
9084
</Typography>
91-
</ToggleButton>
92-
<ToggleButton value="bpt" disabled={mode === 'bpt'}>
85+
</StyledToggleButton>
86+
<StyledToggleButton value="bpt" disabled={mode === 'bpt'}>
9387
<Typography variant="subheader1">
9488
<Trans>Stake ABPT</Trans>
9589
</Typography>
96-
</ToggleButton>
97-
</ToggleButtonGroup>
90+
</StyledToggleButton>
91+
</StyledToggleButtonGroup>
9892
</Box>
9993

10094
<Grid container spacing={4}>

src/components/MarketSwitcher.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import {
66
MenuItem,
77
SvgIcon,
88
TextField,
9-
ToggleButton,
10-
ToggleButtonGroup,
119
Tooltip,
1210
Typography,
1311
useMediaQuery,
@@ -26,6 +24,8 @@ import {
2624
networkConfigs,
2725
STAGING_ENV,
2826
} from '../utils/marketsAndNetworksConfig';
27+
import StyledToggleButton from './StyledToggleButton';
28+
import StyledToggleButtonGroup from './StyledToggleButtonGroup';
2929

3030
export const getMarketInfoById = (marketId: CustomMarket) => {
3131
const market: MarketDataType = marketsData[marketId as CustomMarket];
@@ -94,6 +94,7 @@ enum SelectedMarketVersion {
9494
V2,
9595
V3,
9696
}
97+
9798
export const MarketSwitcher = () => {
9899
const { currentMarket, setCurrentMarket } = useProtocolDataContext();
99100
const [selectedMarketVersion, setSelectedMarketVersion] = useState<SelectedMarketVersion>(
@@ -201,7 +202,7 @@ export const MarketSwitcher = () => {
201202

202203
{isV3MarketsAvailable && (
203204
<Box sx={{ mx: '18px', display: 'flex', justifyContent: 'center' }}>
204-
<ToggleButtonGroup
205+
<StyledToggleButtonGroup
205206
value={selectedMarketVersion}
206207
exclusive
207208
onChange={(_, value) => {
@@ -222,7 +223,7 @@ export const MarketSwitcher = () => {
222223
padding: '2px',
223224
}}
224225
>
225-
<ToggleButton
226+
<StyledToggleButton
226227
value={SelectedMarketVersion.V3}
227228
data-cy={`markets_switch_button_v3`}
228229
sx={{
@@ -250,8 +251,8 @@ export const MarketSwitcher = () => {
250251
>
251252
<Trans>Version 3</Trans>
252253
</Typography>
253-
</ToggleButton>
254-
<ToggleButton
254+
</StyledToggleButton>
255+
<StyledToggleButton
255256
value={SelectedMarketVersion.V2}
256257
data-cy={`markets_switch_button_v2`}
257258
sx={{
@@ -279,8 +280,8 @@ export const MarketSwitcher = () => {
279280
>
280281
<Trans>Version 2</Trans>
281282
</Typography>
282-
</ToggleButton>
283-
</ToggleButtonGroup>
283+
</StyledToggleButton>
284+
</StyledToggleButtonGroup>
284285
</Box>
285286
)}
286287
{availableMarkets.map((marketId: CustomMarket) => {
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { styled, ToggleButton, ToggleButtonProps } from '@mui/material';
2+
import React from 'react';
3+
4+
const CustomToggleButton = styled(ToggleButton)<ToggleButtonProps>(({ theme }) => ({
5+
border: '0px',
6+
flex: 1,
7+
backgroundColor: '#383D51',
8+
borderRadius: '4px',
9+
10+
'&.Mui-selected, &.Mui-selected:hover': {
11+
backgroundColor: '#FFFFFF',
12+
borderRadius: '4px !important',
13+
},
14+
15+
'&.Mui-selected, &.Mui-disabled': {
16+
zIndex: 100,
17+
height: '100%',
18+
display: 'flex',
19+
justifyContent: 'center',
20+
21+
'.MuiTypography-subheader1': {
22+
background: theme.palette.gradients.aaveGradient,
23+
backgroundClip: 'text',
24+
textFillColor: 'transparent',
25+
},
26+
'.MuiTypography-secondary14': {
27+
background: theme.palette.gradients.aaveGradient,
28+
backgroundClip: 'text',
29+
textFillColor: 'transparent',
30+
},
31+
},
32+
})) as typeof ToggleButton;
33+
34+
export default function StyledToggleButton(props: ToggleButtonProps) {
35+
return <CustomToggleButton {...props} />;
36+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { styled, ToggleButtonGroup, ToggleButtonGroupProps } from '@mui/material';
2+
3+
const CustomToggleGroup = styled(ToggleButtonGroup)<ToggleButtonGroupProps>({
4+
backgroundColor: '#383D51',
5+
border: '1px solid rgba(235, 235, 237, 0.12)',
6+
padding: '4px',
7+
}) as typeof ToggleButtonGroup;
8+
9+
export default function StyledToggleGroup(props: ToggleButtonGroupProps) {
10+
return <CustomToggleGroup {...props} />;
11+
}

src/components/caps/CapsCircularStatus.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export const CapsCircularStatus = ({ value, tooltipContent }: CapsCircularStatus
5555
/>
5656
<CircularProgress
5757
variant="determinate"
58-
disableShrink
5958
color={determineColor()}
6059
sx={{
6160
[`& .${circularProgressClasses.circle}`]: {

src/components/transactions/Borrow/BorrowModalContent.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import {
55
valueToBigNumber,
66
} from '@aave/math-utils';
77
import { Trans } from '@lingui/macro';
8-
import { Alert, Box, Checkbox, ToggleButton, ToggleButtonGroup, Typography } from '@mui/material';
8+
import { Alert, Box, Checkbox, Typography } from '@mui/material';
99
import { useRef, useState } from 'react';
1010
import { APYTypeTooltip } from 'src/components/infoTooltips/APYTypeTooltip';
1111
import { FormattedNumber } from 'src/components/primitives/FormattedNumber';
1212
import { Row } from 'src/components/primitives/Row';
1313
import { Warning } from 'src/components/primitives/Warning';
14+
import StyledToggleButton from 'src/components/StyledToggleButton';
15+
import StyledToggleButtonGroup from 'src/components/StyledToggleButtonGroup';
1416
import { useAppDataContext } from 'src/hooks/app-data-provider/useAppDataProvider';
1517
import { useAssetCaps } from 'src/hooks/useAssetCaps';
1618
import { useModalContext } from 'src/hooks/useModal';
@@ -67,32 +69,32 @@ const BorrowModeSwitch = ({
6769
align="flex-start"
6870
captionColor="text.secondary"
6971
>
70-
<ToggleButtonGroup
72+
<StyledToggleButtonGroup
7173
color="primary"
7274
value={interestRateMode}
7375
exclusive
7476
onChange={(_, value) => setInterestRateMode(value)}
7577
sx={{ width: '100%', mt: 0.5 }}
7678
>
77-
<ToggleButton
79+
<StyledToggleButton
7880
value={InterestRate.Variable}
7981
disabled={interestRateMode === InterestRate.Variable}
8082
>
8183
<Typography variant="subheader1" sx={{ mr: 1 }}>
8284
<Trans>Variable</Trans>
8385
</Typography>
8486
<FormattedNumber value={variableRate} percent variant="secondary14" />
85-
</ToggleButton>
86-
<ToggleButton
87+
</StyledToggleButton>
88+
<StyledToggleButton
8789
value={InterestRate.Stable}
8890
disabled={interestRateMode === InterestRate.Stable}
8991
>
9092
<Typography variant="subheader1" sx={{ mr: 1 }}>
9193
<Trans>Stable</Trans>
9294
</Typography>
9395
<FormattedNumber value={stableRate} percent variant="secondary14" />
94-
</ToggleButton>
95-
</ToggleButtonGroup>
96+
</StyledToggleButton>
97+
</StyledToggleButtonGroup>
9698
</Row>
9799
);
98100
};

0 commit comments

Comments
 (0)