import { useQuery } from '@apollo/client' import PageLoading from '@/components/page-loading' import { ME_REWARDS } from '@/fragments/rewards' import { CenterLayout } from '@/components/layout' import dynamic from 'next/dynamic' import { useRouter } from 'next/router' import { getGetServerSideProps } from '@/api/ssrApollo' import { fixedDecimal } from '@/lib/format' import Trophy from '@/svgs/trophy-fill.svg' import { ListItem } from '@/components/items' import { dayMonthYear } from '@/lib/time' import { GrowthPieChartSkeleton } from '@/components/charts-skeletons' const GrowthPieChart = dynamic(() => import('@/components/charts').then(mod => mod.GrowthPieChart), { loading: () => }) export const getServerSideProps = getGetServerSideProps({ query: ME_REWARDS, notFound: (data, params) => data.rewards.reduce((a, r) => a || new Date(r.time) > new Date(), false) }) export default function Rewards ({ ssrData }) { const router = useRouter() const { data } = useQuery(ME_REWARDS, { variables: { ...router.query } }) if (!data && !ssrData) return const { rewards, meRewards } = data || ssrData return (
{rewards.map(({ total, sources, time }, i) => (

{time &&
On {dayMonthYear(time)} at 12a CT
} {total} sats were rewarded

{meRewards[i] &&

you earned {meRewards[i].total} sats ({fixedDecimal(meRewards[i].total * 100 / total, 2)}%)

{meRewards[i].rewards?.map((r, i) => )}
}
))}
) } function Reward ({ rank, type, sats, item }) { if (!rank) return null const color = rank <= 3 ? 'text-primary' : 'text-muted' let category = type switch (type) { case 'TIP_POST': category = 'in post zapping' break case 'TIP_COMMENT': category = 'in comment zapping' break case 'POST': category = 'among posts' break case 'COMMENT': category = 'among comments' break } return (
#{rank} {category} for {sats} sats
{item &&
}
) }