import { useT } from '../../lib/use-t'; import { ErrorBoundary } from '@sentry/react'; import { CompetitionsHeader } from '../../components/competitions/competitions-header'; import { ExternalLink, Intent, Loader, TradingButton, } from '@vegaprotocol/ui-toolkit'; import { useEpochInfoQuery } from '../../lib/hooks/__generated__/Epoch'; import { Link, useNavigate } from 'react-router-dom'; import { Links } from '../../lib/links'; import { CompetitionsAction, CompetitionsActionsContainer, } from '../../components/competitions/competitions-cta'; import { GamesContainer } from '../../components/competitions/games-container'; import { CompetitionsLeaderboard } from '../../components/competitions/competitions-leaderboard'; import { useTeams } from '../../lib/hooks/use-teams'; import take from 'lodash/take'; import { usePageTitle } from '../../lib/hooks/use-page-title'; import { TeamCard } from '../../components/competitions/team-card'; import { useMyTeam } from '../../lib/hooks/use-my-team'; import { useRewards } from '../../lib/hooks/use-rewards'; import { Trans } from 'react-i18next'; import { DocsLinks } from '@vegaprotocol/environment'; export const CompetitionsHome = () => { const t = useT(); const navigate = useNavigate(); usePageTitle(t('Competitions')); const { data: epochData } = useEpochInfoQuery(); const currentEpoch = Number(epochData?.epoch.id); const { data: gamesData, loading: gamesLoading } = useRewards({ onlyActive: true, scopeToTeams: true, }); const { data: teamsData, loading: teamsLoading } = useTeams(); const { team: myTeam, stats: myTeamStats, games: myTeamGames, rank: myTeamRank, } = useMyTeam(); return (

referral program.' } components={[ referral program , ]} />

propose an on-chain game yourself.' } components={[ propose an on-chain game , ]} /> {/** Docs: https://docs.vega.xyz/mainnet/tutorials/proposals/asset-transfer-proposal */}

{/** Team card */} {myTeam ? ( <>

{t('My team')}

) : ( <> {/** Get started */}

{t('Get started')}

{ e.preventDefault(); navigate(Links.COMPETITIONS_CREATE_TEAM()); }} data-testId="create-public-team-button" > {t('Create a public team')} } /> { e.preventDefault(); navigate(Links.COMPETITIONS_CREATE_TEAM_SOLO()); }} > {t('Create a private team')} } /> { e.preventDefault(); navigate(Links.COMPETITIONS_TEAMS()); }} > {t('Choose a team')} } /> )} {/** List of available games */}

{t('Games')}

Find out how to create one.' } components={[ Find out how to create one , ]} /> {/** Docs: https://docs.vega.xyz/mainnet/tutorials/proposals/asset-transfer-proposal */}

{gamesLoading ? ( ) : ( )} {/** The teams ranking */}

{t('Leaderboard')}

{t('View all teams')}

{t( 'Teams can earn rewards if they meet the goals set in the on-chain trading competitions. Track your earned rewards here, and see which teams are top of the leaderboard this month.' )}

{teamsLoading ? ( ) : ( )}
); };