Compare commits

..
Author SHA1 Message Date
Aleka Cheung ea4fd4b5e4 more details nits 2024-02-07 15:18:20 -05:00
Aleka Cheung aad5539f18 wrap details item 2024-02-07 15:18:15 -05:00
13 changed files with 1328 additions and 1395 deletions
+1 -1
View File
@@ -42,7 +42,7 @@
"@cosmjs/tendermint-rpc": "^0.32.1",
"@dydxprotocol/v4-abacus": "^1.4.2",
"@dydxprotocol/v4-client-js": "^1.0.20",
"@dydxprotocol/v4-localization": "^1.1.26",
"@dydxprotocol/v4-localization": "^1.1.25",
"@ethersproject/providers": "^5.7.2",
"@js-joda/core": "^5.5.3",
"@radix-ui/react-accordion": "^1.1.2",
+5 -9
View File
@@ -36,8 +36,8 @@ dependencies:
specifier: ^1.0.20
version: 1.0.20
'@dydxprotocol/v4-localization':
specifier: ^1.1.26
version: 1.1.26
specifier: ^1.1.25
version: 1.1.25
'@ethersproject/providers':
specifier: ^5.7.2
version: 5.7.2
@@ -1323,8 +1323,8 @@ packages:
- utf-8-validate
dev: false
/@dydxprotocol/v4-localization@1.1.26:
resolution: {integrity: sha512-u+J1J5Up8McwZOcDaG9GrH/A8p4vD2NU2CT2hPdYyKgEd28XeAYvv7bNAQRKdiBaqTePbbF5uB6TMAQnEGnb1A==}
/@dydxprotocol/v4-localization@1.1.25:
resolution: {integrity: sha512-84BJMybnZBrRnDpnHlMUcOYT1r0ODtgcdgrjdzTw8b0sViTY6ne9ob690fcn/vQO+6sEdDsdt+08ud0H+ZvyYg==}
dev: false
/@dydxprotocol/v4-proto@4.0.0-dev.0:
@@ -8882,7 +8882,7 @@ packages:
resolution: {integrity: sha512-WIdaQ8uW1vIbYvNnAVunkC6yxTrneJC7VQ5UUQ0kuw8b0C0A39KTIpoQHCfc8tV7o9vF4niwRhdXEdfAgQEsQQ==}
dependencies:
cosmos-directory-types: 0.0.6
node-fetch-native: 1.6.2
node-fetch-native: 1.6.1
dev: false
/cosmos-directory-types@0.0.6:
@@ -12892,10 +12892,6 @@ packages:
resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==}
dev: false
/node-fetch-native@1.6.2:
resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==}
dev: false
/node-fetch@2.6.12:
resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==}
engines: {node: 4.x || >=6.0.0}
+1302 -1319
View File
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -32,20 +32,20 @@ if (
/* hardcoded injection depending on whether the app is available on App Store and/or Google Play */
if (SMARTBANNER_APPSTORE_URL) {
smartbanner = `\t<meta name="smartbanner:button-url-apple" content="${SMARTBANNER_APPSTORE_URL}">\n${smartbanner}`;
smartbanner = `\t<meta name="smartbanner:button-url-apple" content="${SMARTBANNER_APPSTORE_URL}">\n` + smartbanner;
}
if (SMARTBANNER_GOOGLEPLAY_URL) {
smartbanner = `\t<meta name="smartbanner:button-url-google" content="${SMARTBANNER_GOOGLEPLAY_URL}">\n${smartbanner}`;
smartbanner = `\t<meta name="smartbanner:button-url-google" content="${SMARTBANNER_GOOGLEPLAY_URL}">\n` + smartbanner;
}
if (SMARTBANNER_APPSTORE_URL) {
if (SMARTBANNER_GOOGLEPLAY_URL) {
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="android,ios">\n${smartbanner}`;
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="android,ios">\n` + smartbanner;
} else {
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="ios">\n${smartbanner}`;
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="ios">\n` + smartbanner;
}
} else {
if (SMARTBANNER_GOOGLEPLAY_URL) {
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="android">\n${smartbanner}`;
smartbanner = `\t<meta name="smartbanner:enabled-platforms" content="android">\n` + smartbanner;
}
}
+1 -1
View File
@@ -88,7 +88,7 @@ export const usePotentialMarketsContext = () => {
impactNotional: 10_000,
},
1: {
label: stringGetter({ key: STRING_KEYS.MID_CAP }),
label: 'Mid-cap',
initialMarginFraction: 0.1,
maintenanceMarginFraction: 0.05,
impactNotional: 5_000,
+1 -1
View File
@@ -19,7 +19,7 @@ export default () => {
<Styled.HeaderSection>
<ContentSectionHeader
title={stringGetter({ key: STRING_KEYS.GOVERNANCE })}
subtitle={stringGetter({ key: STRING_KEYS.GOVERNANCE_PAGE_SUBTITLE })}
subtitle="Participate in the ecosystem by voting on Governance proposals or submitting your own."
/>
</Styled.HeaderSection>
+1 -1
View File
@@ -59,7 +59,7 @@ export default () => {
<Icon iconName={IconName.CurrencySign} />
</Styled.IconContainer>
),
label: stringGetter({ key: STRING_KEYS.STAKING_REWARDS }),
label: 'Staking Rewards', // stringGetter({ key: STRING_KEYS.STAKING_REWARDS }),
href: TokenRoute.StakingRewards,
tag: stringGetter({ key: STRING_KEYS.NEW }),
},
+2 -5
View File
@@ -5,21 +5,18 @@ import { layoutMixins } from '@/styles/layoutMixins';
import { DetachedSection } from '@/components/ContentSection';
import { ContentSectionHeader } from '@/components/ContentSectionHeader';
import { useStringGetter } from '@/hooks';
import { StakingPanel } from './StakingPanel';
import { StrideStakingPanel } from './StrideStakingPanel';
import { DYDXBalancePanel } from '../rewards/DYDXBalancePanel';
import { STRING_KEYS } from '@/constants/localization';
export default () => {
const stringGetter = useStringGetter();
return (
<DetachedSection>
<Styled.HeaderSection>
<ContentSectionHeader
title={stringGetter({ key: STRING_KEYS.STAKING_REWARDS })}
subtitle={stringGetter({ key: STRING_KEYS.STAKING_PAGE_SUBTITLE })}
title="Staking Rewards"
subtitle="Stake to earn APR. Unstaking can take up to 30 days."
/>
</Styled.HeaderSection>
+1 -1
View File
@@ -23,7 +23,7 @@ export const StakingPanel = ({ className }: { className?: string }) => {
className={className}
slotHeaderContent={
<Styled.Header>
<Styled.Title>{stringGetter({ key: STRING_KEYS.STAKE_WITH_KEPLR })}</Styled.Title>
<Styled.Title>Stake with Keplr</Styled.Title>
<Styled.Img src="/third-party/keplr.png" alt={stringGetter({ key: STRING_KEYS.KEPLR })} />
</Styled.Header>
}
@@ -24,7 +24,7 @@ export const StrideStakingPanel = ({ className }: { className?: string }) => {
slotHeaderContent={
<Styled.Header>
<Styled.Title>
{stringGetter({ key: STRING_KEYS.LIQUID_STAKE_W_STRIDE })}
Liquid Stake with Stride
<Tag isHighlighted>{stringGetter({ key: STRING_KEYS.NEW })}</Tag>
</Styled.Title>
<Styled.Img src="/third-party/stride.png" alt="Stride" />
@@ -33,10 +33,7 @@ export const StrideStakingPanel = ({ className }: { className?: string }) => {
onClick={() => dispatch(openDialog({ type: DialogTypes.ExternalNavStride }))}
>
<Styled.Description>
{stringGetter({
key: STRING_KEYS.LIQUID_STAKE_STRIDE_DESCRIPTION,
params: { TOKEN_DENOM: chainTokenLabel },
})}
{`Stake your ${chainTokenLabel} tokens for st${chainTokenLabel} which you can deploy around the ecosystem.`}
<Link href={stakingLearnMore} onClick={(e) => e.stopPropagation()}>
{stringGetter({ key: STRING_KEYS.LEARN_MORE })}
</Link>
-3
View File
@@ -15,7 +15,6 @@ type ElementProps = {
link: string;
linkDescription?: string;
title?: ReactNode;
slotContent?: ReactNode;
setIsOpen: (open: boolean) => void;
};
@@ -25,7 +24,6 @@ export const ExternalLinkDialog = ({
link,
linkDescription,
title,
slotContent,
}: ElementProps) => {
const stringGetter = useStringGetter();
return (
@@ -38,7 +36,6 @@ export const ExternalLinkDialog = ({
}
>
<Styled.Content>
{slotContent}
<p>{stringGetter({ key: STRING_KEYS.LEAVING_WEBSITE_DISCLAIMER })}.</p>
<Button type={ButtonType.Link} action={ButtonAction.Primary} href={link}>
{buttonText ?? stringGetter({ key: STRING_KEYS.CONTINUE })}
+3 -28
View File
@@ -1,9 +1,6 @@
import { useCallback } from 'react';
import styled, { type AnyStyledComponent } from 'styled-components';
import { useDispatch } from 'react-redux';
import { ButtonAction, ButtonSize, ButtonType } from '@/constants/buttons';
import { DialogTypes } from '@/constants/dialogs';
import { STRING_KEYS } from '@/constants/localization';
import { useBreakpoints, useStringGetter, useURLConfigs } from '@/hooks';
@@ -12,8 +9,6 @@ import { Dialog, DialogPlacement } from '@/components/Dialog';
import { IconName } from '@/components/Icon';
import { IconButton } from '@/components/IconButton';
import { closeDialog, openDialog } from '@/state/dialogs';
import { layoutMixins } from '@/styles/layoutMixins';
type ElementProps = {
@@ -23,20 +18,8 @@ type ElementProps = {
export const ExternalNavKeplrDialog = ({ setIsOpen }: ElementProps) => {
const stringGetter = useStringGetter();
const { keplrDashboard, accountExportLearnMore } = useURLConfigs();
const dispatch = useDispatch();
const { isTablet } = useBreakpoints();
const onExternalNavDialog = useCallback(() => {
dispatch(closeDialog());
dispatch(
openDialog({
type: DialogTypes.ExternalLink,
dialogProps: {
link: keplrDashboard,
},
})
);
}, [dispatch]);
const { isTablet } = useBreakpoints();
return (
<Dialog
@@ -46,11 +29,7 @@ export const ExternalNavKeplrDialog = ({ setIsOpen }: ElementProps) => {
placement={isTablet ? DialogPlacement.FullScreen : DialogPlacement.Default}
>
<Styled.Content>
<Styled.Button
type={ButtonType.Button}
size={ButtonSize.XLarge}
onClick={onExternalNavDialog}
>
<Styled.Button type={ButtonType.Link} size={ButtonSize.XLarge} href={keplrDashboard}>
<span>
{stringGetter({
key: STRING_KEYS.NAVIGATE_TO_KEPLR,
@@ -67,11 +46,7 @@ export const ExternalNavKeplrDialog = ({ setIsOpen }: ElementProps) => {
/>
</Styled.Button>
<Styled.Button
type={ButtonType.Link}
size={ButtonSize.XLarge}
href={accountExportLearnMore}
>
<Styled.Button type={ButtonType.Link} size={ButtonSize.XLarge} href={accountExportLearnMore}>
<span>
{stringGetter({
key: STRING_KEYS.LEARN_TO_EXPORT,
+4 -16
View File
@@ -33,22 +33,15 @@ export const ExternalNavStrideDialog = ({ setIsOpen }: ElementProps) => {
dialogProps: {
buttonText: (
<Styled.Span>
{stringGetter({ key: STRING_KEYS.LIQUID_STAKE_ON_STRIDE })}
<Icon iconName={IconName.LinkOut} />
Liquid Stake on Stride <Icon iconName={IconName.LinkOut} />
</Styled.Span>
),
link: strideZoneApp,
title: stringGetter({ key: STRING_KEYS.LIQUID_STAKING_AND_LEAVING }),
slotContent: stringGetter({
key: STRING_KEYS.LIQUID_STAKING_AND_LEAVING_DESCRIPTION,
params: {
CTA: stringGetter({ key: STRING_KEYS.LIQUID_STAKE_ON_STRIDE }),
},
}),
title: 'Liquid staking and leaving website',
},
})
);
}, [dispatch, stringGetter]);
}, [dispatch]);
return (
<Dialog
@@ -64,12 +57,7 @@ export const ExternalNavStrideDialog = ({ setIsOpen }: ElementProps) => {
onClick={openExternalNavDialog}
>
<span>
{stringGetter({
key: STRING_KEYS.NAVIGATE_TO_STRIDE,
params: {
STRONG_YES: <strong>{stringGetter({ key: STRING_KEYS.YES })}</strong>,
},
})}
<strong>{stringGetter({ key: STRING_KEYS.YES })}</strong>, Navigate to Stride Zone.
</span>
<Styled.IconButton