import { getDateTimeFormat } from '@vegaprotocol/utils'; import { useReferralProgram } from './hooks/use-referral-program'; import { Table } from './table'; import classNames from 'classnames'; import { BORDER_COLOR, GRADIENT } from './constants'; import { Tag } from './tag'; import type { ComponentProps } from 'react'; const Loading = ({ variant }: { variant: 'large' | 'inline' }) => (
); const StakingTier = ({ tier, label, referralRewardMultiplier, minimumStakedTokens, }: { tier: number; label: string; referralRewardMultiplier: string; minimumStakedTokens: string; }) => { const color: Record['color']> = { 1: 'green', 2: 'blue', 3: 'pink', }; return (
{tier < 4 && ( // eslint-disable-next-line @next/next/no-img-element {`${referralRewardMultiplier}x )}

{label}

Stake a minimum of {minimumStakedTokens} $VEGA tokens

Reward multiplier {referralRewardMultiplier}x
); }; export const TiersContainer = () => { const { benefitTiers, stakingTiers, details, loading } = useReferralProgram(); const ends = details?.endOfProgramTimestamp ? getDateTimeFormat().format(new Date(details.endOfProgramTimestamp)) : undefined; return ( <>

Referral tiers

{ends && ( Program ends: {' '} {ends} )}
{loading || !benefitTiers || benefitTiers.length === 0 ? ( ) : ( )}

Staking multipliers

{loading || !stakingTiers || stakingTiers.length === 0 ? ( <> ) : ( )}
); }; const StakingTiers = ({ data, }: { data: ReturnType['stakingTiers']; }) => ( <> {data.map( ({ tier, label, referralRewardMultiplier, minimumStakedTokens }, i) => ( ) )} ); const TiersTable = ({ data, }: { data: Array<{ tier: number; commission: string; discount: string; volume: string; }>; }) => { return ( ({ ...d, className: classNames({ 'from-vega-pink-400 dark:from-vega-pink-600 to-20% bg-highlight': d.tier === 1, 'from-vega-purple-400 dark:from-vega-purple-600 to-20% bg-highlight': d.tier === 2, 'from-vega-blue-400 dark:from-vega-blue-600 to-20% bg-highlight': d.tier === 3, 'from-vega-orange-400 dark:from-vega-orange-600 to-20% bg-highlight': d.tier > 3, }), }))} /> ); };