import classNames from 'classnames'; import { t } from '@vegaprotocol/i18n'; import { ExternalLink, Intent, TradingButton, VegaIcon, VegaIconNames, } from '@vegaprotocol/ui-toolkit'; import { useVegaWallet, useVegaWalletDialogStore } from '@vegaprotocol/wallet'; import { Networks, useEnvironment } from '@vegaprotocol/environment'; import { useNavigate } from 'react-router-dom'; import { OnboardingStep, useGetOnboardingStep, useOnboardingStore, } from './use-get-onboarding-step'; import { Links, Routes } from '../../pages/client-router'; import { useGlobalStore } from '../../stores'; import { useSidebar, ViewType } from '../sidebar'; interface Props { lead?: string; } const GetStartedButton = ({ step }: { step: OnboardingStep }) => { const navigate = useNavigate(); const dismiss = useOnboardingStore((store) => store.dismiss); const setDialogOpen = useOnboardingStore((store) => store.setDialogOpen); const marketId = useGlobalStore((store) => store.marketId); const link = marketId ? Links[Routes.MARKET](marketId) : Links[Routes.HOME](); const openVegaWalletDialog = useVegaWalletDialogStore( (store) => store.openVegaWalletDialog ); const setViews = useSidebar((store) => store.setViews); let buttonText = t('Get started'); let onClickHandle = () => { openVegaWalletDialog(); }; if (step <= OnboardingStep.ONBOARDING_CONNECT_STEP) { buttonText = t('Connect'); } else if (step === OnboardingStep.ONBOARDING_DEPOSIT_STEP) { buttonText = t('Deposit'); onClickHandle = () => { navigate(link); setViews({ type: ViewType.Deposit }, Routes.MARKET); setDialogOpen(false); }; } else if (step >= OnboardingStep.ONBOARDING_ORDER_STEP) { buttonText = t('Ready to trade'); onClickHandle = () => { navigate(link); setViews({ type: ViewType.Order }, Routes.MARKET); dismiss(); }; } return ( {buttonText} ); }; export const GetStarted = ({ lead }: Props) => { const { pubKey } = useVegaWallet(); const { VEGA_ENV, VEGA_NETWORKS } = useEnvironment(); const openVegaWalletDialog = useVegaWalletDialogStore( (store) => store.openVegaWalletDialog ); const currentStep = useGetOnboardingStep(); const dismissed = useOnboardingStore((store) => store.dismissed); const wrapperClasses = classNames( 'flex flex-col py-4 px-6 gap-4 rounded', 'bg-vega-blue-300 dark:bg-vega-blue-700', 'border border-vega-blue-350 dark:border-vega-blue-650', { 'mt-8': !lead } ); if (!dismissed) { return (
{lead &&

{lead}

}

{t('Get started')}

{VEGA_ENV === Networks.MAINNET && (

{t('Experiment for free with virtual assets on')}{' '} {t('Fairground Testnet')}

)} {VEGA_ENV === Networks.TESTNET && (

{t('Ready to trade with real funds?')}{' '} {t('Switch to Mainnet')}

)}
); } if (!pubKey) { return (

You need a{' '} Vega wallet {' '} to start trading in this market.

{t('Connect wallet')}
); } return null; }; const Step = ({ step, text, complete, }: { step: number; text: string; complete: boolean; }) => { return (
  • {complete ? : {step}.}
    {text}
  • ); }; const Tick = () => { return ( ); };