import { Col } from 'web/components/layout/col' import { Leaderboard } from 'web/components/leaderboard' import { Page } from 'web/components/page' import { getTopCreators, getTopTraders, getTopFollowed, User, } from 'web/lib/firebase/users' import { formatMoney } from 'common/util/format' import { fromPropz, usePropz } from 'web/hooks/use-propz' import { useTracking } from 'web/hooks/use-tracking' export const getStaticProps = fromPropz(getStaticPropz) export async function getStaticPropz() { const [topTraders, topCreators, topFollowed] = await Promise.all([ getTopTraders().catch(() => {}), getTopCreators().catch(() => {}), getTopFollowed().catch(() => {}), ]) return { props: { topTraders, topCreators, topFollowed, }, revalidate: 60, // regenerate after a minute } } export default function Leaderboards(props: { topTraders: User[] topCreators: User[] topFollowed: User[] }) { props = usePropz(props, getStaticPropz) ?? { topTraders: [], topCreators: [], topFollowed: [], } const { topTraders, topCreators, topFollowed } = props useTracking('view leaderboards') return ( formatMoney(user.totalPnLCached), }, ]} /> formatMoney(user.creatorVolumeCached), }, ]} /> user.followerCountCached, }, ]} /> ) }