* fix: #1826 fix vega docs links * chore: #1931 create single location for docs links * chore: #1931 token and wallet use react-helpers external links * chore: #1931 rename links lib, delete unused links * fix: #1931 environment links enforce url * fix: #1931 fix staking-intro.spec.tsx * fix: #1931 fix link on staking intro * fix: don't use aliases for external links * fix(#1931): restrict docsUrl type * fix: fix withdrawals tests * fix(#1931): fix staking and strading mode build * chore: remove hardcoded docs urls and unnecessary type * chore: remove stray DocsType link * chore: add docs url to token e2e env Co-authored-by: Matthew Russell <mattrussell36@gmail.com>
This commit is contained in:
parent
9579be086e
commit
b6df9a4219
@ -11,6 +11,7 @@ NX_ETH_URL_CONNECT=1
|
|||||||
NX_ETH_WALLET_MNEMONIC=ozone access unlock valid olympic save include omit supply green clown session
|
NX_ETH_WALLET_MNEMONIC=ozone access unlock valid olympic save include omit supply green clown session
|
||||||
NX_LOCAL_PROVIDER_URL=http://localhost:8545/
|
NX_LOCAL_PROVIDER_URL=http://localhost:8545/
|
||||||
NX_VEGA_WALLET_URL=http://localhost:1789
|
NX_VEGA_WALLET_URL=http://localhost:1789
|
||||||
|
NX_VEGA_DOCS_URL=https://docs.vega.xyz/mainnet
|
||||||
|
|
||||||
#Test configuration variables
|
#Test configuration variables
|
||||||
CYPRESS_FAIRGROUND=false
|
CYPRESS_FAIRGROUND=false
|
||||||
|
@ -37,7 +37,7 @@ context('Staking Page - verify elements on page', function () {
|
|||||||
.and(
|
.and(
|
||||||
'have.attr',
|
'have.attr',
|
||||||
'href',
|
'href',
|
||||||
'https://docs.vega.xyz/docs/mainnet/concepts/vega-chain/#staking-on-vega'
|
'https://docs.vega.xyz/mainnet/concepts/vega-chain/#staking-on-vega'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Link } from '@vegaprotocol/ui-toolkit';
|
import { Link } from '@vegaprotocol/ui-toolkit';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { Links } from '../../config';
|
import { ExternalLinks } from '@vegaprotocol/react-helpers';
|
||||||
|
|
||||||
export const DownloadWalletPrompt = () => {
|
export const DownloadWalletPrompt = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
@ -8,7 +8,7 @@ export const DownloadWalletPrompt = () => {
|
|||||||
<>
|
<>
|
||||||
<h3 className="mt-4 mb-2">{t('getWallet')}</h3>
|
<h3 className="mt-4 mb-2">{t('getWallet')}</h3>
|
||||||
<p>
|
<p>
|
||||||
<Link className="text-neutral-500" href={Links.WALLET_PAGE}>
|
<Link className="text-neutral-500" href={ExternalLinks.VEGA_WALLET_URL}>
|
||||||
{t('getWalletLink')}
|
{t('getWalletLink')}
|
||||||
</Link>
|
</Link>
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
export * from './flags';
|
export * from './flags';
|
||||||
export * from './links';
|
|
||||||
export * from './env';
|
export * from './env';
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
export const Links = {
|
|
||||||
WALLET_PAGE: 'https://vega.xyz/wallet',
|
|
||||||
SUSHI_PAIRS: 'https://analytics.sushi.com/pairs/',
|
|
||||||
SUSHI_ONSEN_MENU: 'https://app.sushi.com/farm',
|
|
||||||
SUSHI_ONSEN_WHAT_IS:
|
|
||||||
'https://docs.sushi.com/products/yield-farming/what-is-onsen',
|
|
||||||
SUSHI_ONSEN_FAQ: 'https://docs.sushi.com/faq-1/onsen-faq',
|
|
||||||
FEEDBACK: 'https://github.com/vegaprotocol/feedback/discussions',
|
|
||||||
GITHUB: 'https://github.com/vegaprotocol/token-frontend',
|
|
||||||
DISCORD: 'https://vega.xyz/discord',
|
|
||||||
STAKING_GUIDE:
|
|
||||||
'https://docs.vega.xyz/docs/mainnet/concepts/vega-chain/#staking-on-vega',
|
|
||||||
GOVERNANCE_PAGE: 'https://vega.xyz/governance',
|
|
||||||
PROPOSALS_GUIDE: 'https://docs.vega.xyz/docs/mainnet/tutorials/proposals',
|
|
||||||
VALIDATOR_FORUM: 'https://community.vega.xyz/c/mainnet-validator-candidates',
|
|
||||||
};
|
|
@ -8,7 +8,7 @@ import Routes from '../../../routes';
|
|||||||
import { Button } from '@vegaprotocol/ui-toolkit';
|
import { Button } from '@vegaprotocol/ui-toolkit';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import type { Proposal_proposal } from '../../proposal/__generated__/Proposal';
|
import type { Proposal_proposal } from '../../proposal/__generated__/Proposal';
|
||||||
import { Links } from '../../../../config';
|
import { ExternalLinks } from '@vegaprotocol/react-helpers';
|
||||||
import { ExternalLink } from '@vegaprotocol/ui-toolkit';
|
import { ExternalLink } from '@vegaprotocol/ui-toolkit';
|
||||||
|
|
||||||
interface ProposalsListProps {
|
interface ProposalsListProps {
|
||||||
@ -68,7 +68,7 @@ export const ProposalsList = ({ proposals }: ProposalsListProps) => {
|
|||||||
)}{' '}
|
)}{' '}
|
||||||
<ExternalLink
|
<ExternalLink
|
||||||
data-testid="proposal-documentation-link"
|
data-testid="proposal-documentation-link"
|
||||||
href={Links.GOVERNANCE_PAGE}
|
href={ExternalLinks.GOVERNANCE_PAGE}
|
||||||
className="text-white"
|
className="text-white"
|
||||||
>
|
>
|
||||||
{t(`Find out more about Vega governance`)}
|
{t(`Find out more about Vega governance`)}
|
||||||
|
@ -4,7 +4,7 @@ import { Trans, useTranslation } from 'react-i18next';
|
|||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import { Heading } from '../../components/heading';
|
import { Heading } from '../../components/heading';
|
||||||
import { Links } from '../../config';
|
import { ExternalLinks } from '@vegaprotocol/react-helpers';
|
||||||
import { useAppState } from '../../contexts/app-state/app-state-context';
|
import { useAppState } from '../../contexts/app-state/app-state-context';
|
||||||
import { useDocumentTitle } from '../../hooks/use-document-title';
|
import { useDocumentTitle } from '../../hooks/use-document-title';
|
||||||
import { BigNumber } from '../../lib/bignumber';
|
import { BigNumber } from '../../lib/bignumber';
|
||||||
@ -92,7 +92,7 @@ const Home = ({ name }: RouteChildProps) => {
|
|||||||
<p>
|
<p>
|
||||||
<a
|
<a
|
||||||
data-testid="get-vega-wallet-link"
|
data-testid="get-vega-wallet-link"
|
||||||
href={Links.WALLET_PAGE}
|
href={ExternalLinks.VEGA_WALLET_URL}
|
||||||
className="underline text-white"
|
className="underline text-white"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="nofollow noreferrer"
|
rel="nofollow noreferrer"
|
||||||
|
@ -2,6 +2,12 @@ import { render, screen } from '@testing-library/react';
|
|||||||
import { BrowserRouter as Router } from 'react-router-dom';
|
import { BrowserRouter as Router } from 'react-router-dom';
|
||||||
import { StakingIntro } from './staking-intro';
|
import { StakingIntro } from './staking-intro';
|
||||||
|
|
||||||
|
jest.mock('@vegaprotocol/environment', () => ({
|
||||||
|
useEnvironment: () => ({
|
||||||
|
VEGA_DOCS_URL: 'https://docs.vega.xyz',
|
||||||
|
}),
|
||||||
|
}));
|
||||||
|
|
||||||
describe('Staking', () => {
|
describe('Staking', () => {
|
||||||
it('should render the component', () => {
|
it('should render the component', () => {
|
||||||
render(
|
render(
|
||||||
|
@ -6,10 +6,12 @@ import {
|
|||||||
Intent,
|
Intent,
|
||||||
Link as UTLink,
|
Link as UTLink,
|
||||||
} from '@vegaprotocol/ui-toolkit';
|
} from '@vegaprotocol/ui-toolkit';
|
||||||
import { Links } from '../../../config';
|
import { createDocsLinks, ExternalLinks } from '@vegaprotocol/react-helpers';
|
||||||
|
import { useEnvironment } from '@vegaprotocol/environment';
|
||||||
|
|
||||||
export const StakingIntro = () => {
|
export const StakingIntro = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const { VEGA_DOCS_URL } = useEnvironment();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="mb-8" data-testid="staking-intro">
|
<section className="mb-8" data-testid="staking-intro">
|
||||||
@ -32,7 +34,7 @@ export const StakingIntro = () => {
|
|||||||
<li>
|
<li>
|
||||||
{t('stakingDescription2')}{' '}
|
{t('stakingDescription2')}{' '}
|
||||||
<UTLink
|
<UTLink
|
||||||
href={Links.VALIDATOR_FORUM}
|
href={ExternalLinks.VALIDATOR_FORUM}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
data-testid="validator-forum-link"
|
data-testid="validator-forum-link"
|
||||||
>
|
>
|
||||||
@ -42,14 +44,15 @@ export const StakingIntro = () => {
|
|||||||
<li>{t('stakingDescription3')}</li>
|
<li>{t('stakingDescription3')}</li>
|
||||||
<li>{t('stakingDescription4')}</li>
|
<li>{t('stakingDescription4')}</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
{VEGA_DOCS_URL && (
|
||||||
<UTLink
|
<UTLink
|
||||||
href={Links.STAKING_GUIDE}
|
href={createDocsLinks(VEGA_DOCS_URL).STAKING_GUIDE}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
data-testid="staking-guide-link"
|
data-testid="staking-guide-link"
|
||||||
>
|
>
|
||||||
<Button>{t('readMoreStaking')}</Button>
|
<Button>{t('readMoreStaking')}</Button>
|
||||||
</UTLink>
|
</UTLink>
|
||||||
|
)}
|
||||||
</Callout>
|
</Callout>
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import { t } from '@vegaprotocol/react-helpers';
|
import { t } from '@vegaprotocol/react-helpers';
|
||||||
import { AuctionTrigger, MarketTradingMode } from '@vegaprotocol/types';
|
import { AuctionTrigger, MarketTradingMode } from '@vegaprotocol/types';
|
||||||
import { ExternalLink } from '@vegaprotocol/ui-toolkit';
|
import { ExternalLink } from '@vegaprotocol/ui-toolkit';
|
||||||
|
import { createDocsLinks } from '@vegaprotocol/react-helpers';
|
||||||
import { MarketDataGrid } from './market-data-grid';
|
import { MarketDataGrid } from './market-data-grid';
|
||||||
|
|
||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
|
import { useEnvironment } from '@vegaprotocol/environment';
|
||||||
|
|
||||||
type TradingModeTooltipProps = {
|
type TradingModeTooltipProps = {
|
||||||
tradingMode: MarketTradingMode | null;
|
tradingMode: MarketTradingMode | null;
|
||||||
trigger: AuctionTrigger | null;
|
trigger: AuctionTrigger | null;
|
||||||
@ -16,6 +18,7 @@ export const TradingModeTooltip = ({
|
|||||||
trigger,
|
trigger,
|
||||||
compiledGrid,
|
compiledGrid,
|
||||||
}: TradingModeTooltipProps) => {
|
}: TradingModeTooltipProps) => {
|
||||||
|
const { VEGA_DOCS_URL } = useEnvironment();
|
||||||
switch (tradingMode) {
|
switch (tradingMode) {
|
||||||
case MarketTradingMode.TRADING_MODE_CONTINUOUS: {
|
case MarketTradingMode.TRADING_MODE_CONTINUOUS: {
|
||||||
return (
|
return (
|
||||||
@ -35,9 +38,13 @@ export const TradingModeTooltip = ({
|
|||||||
'This new market is in an opening auction to determine a fair mid-price before starting continuous trading.'
|
'This new market is in an opening auction to determine a fair mid-price before starting continuous trading.'
|
||||||
)}
|
)}
|
||||||
</span>{' '}
|
</span>{' '}
|
||||||
<ExternalLink href="https://docs.vega.xyz/testnet/concepts/trading-on-vega/trading-modes#auction-type-opening">
|
{VEGA_DOCS_URL && (
|
||||||
|
<ExternalLink
|
||||||
|
href={createDocsLinks(VEGA_DOCS_URL).AUCTION_TYPE_OPENING}
|
||||||
|
>
|
||||||
{t('Find out more')}
|
{t('Find out more')}
|
||||||
</ExternalLink>
|
</ExternalLink>
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
||||||
</section>
|
</section>
|
||||||
@ -54,9 +61,16 @@ export const TradingModeTooltip = ({
|
|||||||
'This market is in auction until it reaches sufficient liquidity.'
|
'This market is in auction until it reaches sufficient liquidity.'
|
||||||
)}
|
)}
|
||||||
</span>{' '}
|
</span>{' '}
|
||||||
<ExternalLink href="https://docs.vega.xyz/testnet/concepts/trading-on-vega/trading-modes#auction-type-liquidity-monitoring">
|
{VEGA_DOCS_URL && (
|
||||||
|
<ExternalLink
|
||||||
|
href={
|
||||||
|
createDocsLinks(VEGA_DOCS_URL)
|
||||||
|
.AUCTION_TYPE_LIQUIDITY_MONITORING
|
||||||
|
}
|
||||||
|
>
|
||||||
{t('Find out more')}
|
{t('Find out more')}
|
||||||
</ExternalLink>
|
</ExternalLink>
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
||||||
</section>
|
</section>
|
||||||
@ -69,9 +83,16 @@ export const TradingModeTooltip = ({
|
|||||||
<span>
|
<span>
|
||||||
{t('This market is in auction due to high price volatility.')}
|
{t('This market is in auction due to high price volatility.')}
|
||||||
</span>{' '}
|
</span>{' '}
|
||||||
<ExternalLink href="https://docs.vega.xyz/testnet/concepts/trading-on-vega/trading-modes#auction-type-price-monitoring">
|
{VEGA_DOCS_URL && (
|
||||||
|
<ExternalLink
|
||||||
|
href={
|
||||||
|
createDocsLinks(VEGA_DOCS_URL)
|
||||||
|
.AUCTION_TYPE_PRICE_MONITORING
|
||||||
|
}
|
||||||
|
>
|
||||||
{t('Find out more')}
|
{t('Find out more')}
|
||||||
</ExternalLink>
|
</ExternalLink>
|
||||||
|
)}
|
||||||
</p>
|
</p>
|
||||||
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
{compiledGrid && <MarketDataGrid grid={compiledGrid} />}
|
||||||
</section>
|
</section>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { t } from '@vegaprotocol/react-helpers';
|
import { ExternalLinks, t } from '@vegaprotocol/react-helpers';
|
||||||
import { Link } from '@vegaprotocol/ui-toolkit';
|
import { ExternalLink } from '@vegaprotocol/ui-toolkit';
|
||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
|
|
||||||
export const tooltipMapping: Record<string, ReactNode> = {
|
export const tooltipMapping: Record<string, ReactNode> = {
|
||||||
@ -65,24 +65,18 @@ export const tooltipMapping: Record<string, ReactNode> = {
|
|||||||
tau: (
|
tau: (
|
||||||
<span>
|
<span>
|
||||||
{t('Projection horizon measured as a year fraction used in ')}
|
{t('Projection horizon measured as a year fraction used in ')}
|
||||||
<Link
|
<ExternalLink href={ExternalLinks.MARGIN_CREDIT_RISK}>
|
||||||
href="https://vega.xyz/papers/margins-and-credit-risk.pdf#page=7"
|
|
||||||
target="__blank"
|
|
||||||
>
|
|
||||||
{t('Expected Shortfall')}
|
{t('Expected Shortfall')}
|
||||||
</Link>
|
</ExternalLink>
|
||||||
{t(' calculation when obtaining Risk Factor Long and Risk Factor Short')}
|
{t(' calculation when obtaining Risk Factor Long and Risk Factor Short')}
|
||||||
</span>
|
</span>
|
||||||
),
|
),
|
||||||
riskAversionParameter: (
|
riskAversionParameter: (
|
||||||
<span>
|
<span>
|
||||||
{t('Probability level used in ')}
|
{t('Probability level used in ')}
|
||||||
<Link
|
<ExternalLink href={ExternalLinks.MARGIN_CREDIT_RISK}>
|
||||||
href="https://vega.xyz/papers/margins-and-credit-risk.pdf#page=7"
|
|
||||||
target="__blank"
|
|
||||||
>
|
|
||||||
{t('Expected Shortfall')}
|
{t('Expected Shortfall')}
|
||||||
</Link>
|
</ExternalLink>
|
||||||
{t(' calculation when obtaining Risk Factor Long and Risk Factor Short')}
|
{t(' calculation when obtaining Risk Factor Long and Risk Factor Short')}
|
||||||
</span>
|
</span>
|
||||||
),
|
),
|
||||||
|
@ -11,4 +11,5 @@ export * from './lib/remove-0x';
|
|||||||
export * from './lib/storage';
|
export * from './lib/storage';
|
||||||
export * from './lib/time';
|
export * from './lib/time';
|
||||||
export * from './lib/validate';
|
export * from './lib/validate';
|
||||||
|
export * from './lib/links';
|
||||||
export * from './lib/__generated__/ChainId';
|
export * from './lib/__generated__/ChainId';
|
||||||
|
@ -3,7 +3,6 @@ export * from './format';
|
|||||||
export * from './grid';
|
export * from './grid';
|
||||||
export * from './storage';
|
export * from './storage';
|
||||||
export * from './validate';
|
export * from './validate';
|
||||||
export * from './assets';
|
|
||||||
export * from './generic-data-provider';
|
export * from './generic-data-provider';
|
||||||
export * from './get-nodes';
|
export * from './get-nodes';
|
||||||
export * from './get-events';
|
export * from './get-events';
|
||||||
@ -11,3 +10,4 @@ export * from './i18n';
|
|||||||
export * from './pagination';
|
export * from './pagination';
|
||||||
export * from './remove-0x';
|
export * from './remove-0x';
|
||||||
export * from './time';
|
export * from './time';
|
||||||
|
export * from './links';
|
||||||
|
1
libs/react-helpers/src/lib/links/index.ts
Normal file
1
libs/react-helpers/src/lib/links/index.ts
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from './links';
|
25
libs/react-helpers/src/lib/links/links.ts
Normal file
25
libs/react-helpers/src/lib/links/links.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/** createDocsLinks returns external documentation links that are specific to an environment
|
||||||
|
* @param {string} docsUrl - the documentation URL for the environment ex. https://docs.vega.xyz/testnet or https://docs.vega.xyz/mainnet (NX_VEGA_DOCS_URL)
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const createDocsLinks = (docsUrl: string) => ({
|
||||||
|
AUCTION_TYPE_OPENING: `${docsUrl}/concepts/trading-on-vega/trading-modes#auction-type-opening`,
|
||||||
|
AUCTION_TYPE_LIQUIDITY_MONITORING: `${docsUrl}/concepts/trading-on-vega/trading-modes#auction-type-liquidity-monitoring`,
|
||||||
|
AUCTION_TYPE_PRICE_MONITORING: `${docsUrl}/concepts/trading-on-vega/trading-modes#auction-type-price-monitoring`,
|
||||||
|
AUCTION_TYPE_CLOSING: `${docsUrl}/concepts/trading-on-vega/trading-modes#auction-type-closing`,
|
||||||
|
STAKING_GUIDE: `${docsUrl}/concepts/vega-chain/#staking-on-vega`,
|
||||||
|
VEGA_WALLET_CONCEPTS_URL: `${docsUrl}/concepts/vega-wallet`,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ExternalLinks = {
|
||||||
|
FEEDBACK: 'https://github.com/vegaprotocol/feedback/discussions',
|
||||||
|
GITHUB: 'https://github.com/vegaprotocol/token-frontend',
|
||||||
|
DISCORD: 'https://vega.xyz/discord',
|
||||||
|
GOVERNANCE_PAGE: 'https://vega.xyz/governance',
|
||||||
|
PROPOSALS_GUIDE: 'https://docs.vega.xyz/docs/mainnet/tutorials/proposals',
|
||||||
|
VALIDATOR_FORUM: 'https://community.vega.xyz/c/mainnet-validator-candidates',
|
||||||
|
MARGIN_CREDIT_RISK:
|
||||||
|
'https://vega.xyz/papers/margins-and-credit-risk.pdf#page=7',
|
||||||
|
VEGA_WALLET_URL: 'https://vega.xyz/wallet',
|
||||||
|
VEGA_WALLET_HOSTED_URL: 'https://vega-hosted-wallet.on.fleek.co/',
|
||||||
|
};
|
@ -1,7 +1,7 @@
|
|||||||
import { t } from '@vegaprotocol/react-helpers';
|
import { useEnvironment } from '@vegaprotocol/environment';
|
||||||
|
import { createDocsLinks, ExternalLinks, t } from '@vegaprotocol/react-helpers';
|
||||||
import { Link } from '@vegaprotocol/ui-toolkit';
|
import { Link } from '@vegaprotocol/ui-toolkit';
|
||||||
import type { ReactNode } from 'react';
|
import type { ReactNode } from 'react';
|
||||||
import { VEGA_WALLET_CONCEPTS_URL, VEGA_WALLET_URL } from '../constants';
|
|
||||||
|
|
||||||
export const ConnectDialogTitle = ({ children }: { children: ReactNode }) => {
|
export const ConnectDialogTitle = ({ children }: { children: ReactNode }) => {
|
||||||
return (
|
return (
|
||||||
@ -19,15 +19,24 @@ export const ConnectDialogContent = ({ children }: { children: ReactNode }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const ConnectDialogFooter = ({ children }: { children?: ReactNode }) => {
|
export const ConnectDialogFooter = ({ children }: { children?: ReactNode }) => {
|
||||||
|
const { VEGA_DOCS_URL } = useEnvironment();
|
||||||
return (
|
return (
|
||||||
<footer className="flex justify-center gap-4 px-4 md:px-8 pt-4 md:pt-6 -mx-4 md:-mx-8 border-t border-neutral-500 text-neutral-500 dark:text-neutral-400">
|
<footer className="flex justify-center gap-4 px-4 md:px-8 pt-4 md:pt-6 -mx-4 md:-mx-8 border-t border-neutral-500 text-neutral-500 dark:text-neutral-400">
|
||||||
{children ? (
|
{children ? (
|
||||||
children
|
children
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
<Link href={VEGA_WALLET_URL}>{t('Get a Vega Wallet')}</Link>
|
<Link href={ExternalLinks.VEGA_WALLET_URL}>
|
||||||
|
{t('Get a Vega Wallet')}
|
||||||
|
</Link>
|
||||||
{' | '}
|
{' | '}
|
||||||
<Link href={VEGA_WALLET_CONCEPTS_URL}>{t('Having trouble?')}</Link>
|
{VEGA_DOCS_URL && (
|
||||||
|
<Link
|
||||||
|
href={createDocsLinks(VEGA_DOCS_URL).VEGA_WALLET_CONCEPTS_URL}
|
||||||
|
>
|
||||||
|
{t('Having trouble?')}
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</footer>
|
</footer>
|
||||||
|
@ -9,7 +9,7 @@ import {
|
|||||||
Loader,
|
Loader,
|
||||||
} from '@vegaprotocol/ui-toolkit';
|
} from '@vegaprotocol/ui-toolkit';
|
||||||
import { useCallback, useState } from 'react';
|
import { useCallback, useState } from 'react';
|
||||||
import { t, useChainIdQuery } from '@vegaprotocol/react-helpers';
|
import { ExternalLinks, t, useChainIdQuery } from '@vegaprotocol/react-helpers';
|
||||||
import type { VegaConnector, WalletError } from '../connectors';
|
import type { VegaConnector, WalletError } from '../connectors';
|
||||||
import { JsonRpcConnector, RestConnector } from '../connectors';
|
import { JsonRpcConnector, RestConnector } from '../connectors';
|
||||||
import { RestConnectorForm } from './rest-connector-form';
|
import { RestConnectorForm } from './rest-connector-form';
|
||||||
@ -22,7 +22,6 @@ import {
|
|||||||
} from './connect-dialog-elements';
|
} from './connect-dialog-elements';
|
||||||
import type { Status } from '../use-json-rpc-connect';
|
import type { Status } from '../use-json-rpc-connect';
|
||||||
import { useJsonRpcConnect } from '../use-json-rpc-connect';
|
import { useJsonRpcConnect } from '../use-json-rpc-connect';
|
||||||
import * as constants from '../constants';
|
|
||||||
|
|
||||||
export const CLOSE_DELAY = 1700;
|
export const CLOSE_DELAY = 1700;
|
||||||
type Connectors = { [key: string]: VegaConnector };
|
type Connectors = { [key: string]: VegaConnector };
|
||||||
@ -265,14 +264,14 @@ const SelectedForm = ({
|
|||||||
<p className="text-center">
|
<p className="text-center">
|
||||||
{t('For demo purposes get a ')}
|
{t('For demo purposes get a ')}
|
||||||
<Link
|
<Link
|
||||||
href={constants.VEGA_WALLET_HOSTED_URL}
|
href={ExternalLinks.VEGA_WALLET_HOSTED_URL}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>
|
>
|
||||||
{t('hosted wallet')}
|
{t('hosted wallet')}
|
||||||
</Link>
|
</Link>
|
||||||
{t(', or for the real experience create a wallet in the ')}
|
{t(', or for the real experience create a wallet in the ')}
|
||||||
<Link href={constants.VEGA_WALLET_URL}>
|
<Link href={ExternalLinks.VEGA_WALLET_URL}>
|
||||||
{t('Vega wallet app')}
|
{t('Vega wallet app')}
|
||||||
</Link>
|
</Link>
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import capitalize from 'lodash/capitalize';
|
import capitalize from 'lodash/capitalize';
|
||||||
import { t } from '@vegaprotocol/react-helpers';
|
import { createDocsLinks, t } from '@vegaprotocol/react-helpers';
|
||||||
import {
|
import {
|
||||||
ButtonLink,
|
ButtonLink,
|
||||||
Cross,
|
Cross,
|
||||||
@ -14,7 +14,7 @@ import { ClientErrors } from '../connectors';
|
|||||||
import type { WalletError } from '../connectors';
|
import type { WalletError } from '../connectors';
|
||||||
import { ConnectDialogTitle } from './connect-dialog-elements';
|
import { ConnectDialogTitle } from './connect-dialog-elements';
|
||||||
import { Status } from '../use-json-rpc-connect';
|
import { Status } from '../use-json-rpc-connect';
|
||||||
import { VEGA_WALLET_CONCEPTS_URL } from '../constants';
|
import { useEnvironment } from '@vegaprotocol/environment';
|
||||||
|
|
||||||
export const ServiceErrors = {
|
export const ServiceErrors = {
|
||||||
NO_HEALTHY_NODE: 1000,
|
NO_HEALTHY_NODE: 1000,
|
||||||
@ -169,6 +169,7 @@ const Error = ({
|
|||||||
<ButtonLink onClick={onTryAgain}>{t('Try again')}</ButtonLink>
|
<ButtonLink onClick={onTryAgain}>{t('Try again')}</ButtonLink>
|
||||||
</p>
|
</p>
|
||||||
);
|
);
|
||||||
|
const { VEGA_DOCS_URL } = useEnvironment();
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
if (error.code === ClientErrors.NO_SERVICE.code) {
|
if (error.code === ClientErrors.NO_SERVICE.code) {
|
||||||
@ -186,9 +187,13 @@ const Error = ({
|
|||||||
<>
|
<>
|
||||||
{capitalize(error.data)}
|
{capitalize(error.data)}
|
||||||
{'. '}
|
{'. '}
|
||||||
<Link href={VEGA_WALLET_CONCEPTS_URL}>
|
{VEGA_DOCS_URL && (
|
||||||
|
<Link
|
||||||
|
href={createDocsLinks(VEGA_DOCS_URL).VEGA_WALLET_CONCEPTS_URL}
|
||||||
|
>
|
||||||
{t('Read the docs to troubleshoot')}
|
{t('Read the docs to troubleshoot')}
|
||||||
</Link>
|
</Link>
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
} else if (error.code === ServiceErrors.REQUEST_PROCESSING) {
|
} else if (error.code === ServiceErrors.REQUEST_PROCESSING) {
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
export const VEGA_WALLET_URL = 'https://vega.xyz/wallet';
|
|
||||||
export const VEGA_WALLET_CONCEPTS_URL =
|
|
||||||
'https://docs.vega.xyz/docs/mainnet/concepts/vega-wallet';
|
|
||||||
export const VEGA_WALLET_HOSTED_URL = 'https://vega-hosted-wallet.on.fleek.co/';
|
|
@ -9,5 +9,4 @@ export * from './vega-transaction-dialog';
|
|||||||
export * from './provider';
|
export * from './provider';
|
||||||
export * from './connect-dialog';
|
export * from './connect-dialog';
|
||||||
export * from './utils';
|
export * from './utils';
|
||||||
export * from './constants';
|
|
||||||
export * from './__generated__/TransactionResult';
|
export * from './__generated__/TransactionResult';
|
||||||
|
@ -47,7 +47,7 @@ export const WithdrawLimits = ({
|
|||||||
return (
|
return (
|
||||||
<KeyValueTable>
|
<KeyValueTable>
|
||||||
{limits.map(({ key, label, rawValue, value }) => (
|
{limits.map(({ key, label, rawValue, value }) => (
|
||||||
<KeyValueTableRow>
|
<KeyValueTableRow key={key}>
|
||||||
<div data-testid={`${key}_label`}>{label}</div>
|
<div data-testid={`${key}_label`}>{label}</div>
|
||||||
<div
|
<div
|
||||||
data-testid={`${key}_value`}
|
data-testid={`${key}_value`}
|
||||||
|
Loading…
Reference in New Issue
Block a user