import React from 'react' import clsx from 'clsx' import { useContractWithPreload } from '../../hooks/use-contract' import { Header } from '../../components/header' import { ContractOverview } from '../../components/contract-overview' import { BetPanel } from '../../components/bet-panel' import { Col } from '../../components/layout/col' import { useUser } from '../../hooks/use-user' import { ResolutionPanel } from '../../components/resolution-panel' import { ContractBetsTable, MyBetsSummary } from '../../components/bets-list' import { useBets } from '../../hooks/use-bets' import { Title } from '../../components/title' import { Spacer } from '../../components/layout/spacer' import { User } from '../../lib/firebase/users' import { Contract, getContract } from '../../lib/firebase/contracts' import { SEO } from '../../components/SEO' export async function getStaticProps(props: { params: any }) { const { username, contractId } = props.params const contract = (await getContract(contractId)) || null return { props: { username, contractId, contract, }, revalidate: 60, // regenerate after a minute } } export async function getStaticPaths() { return { paths: [], fallback: 'blocking' } } export default function ContractPage(props: { contract: Contract | null contractId: string username: string }) { const user = useUser() const contract = useContractWithPreload(props.contractId, props.contract) if (!contract) { return
Contract not found...
} const { creatorId, isResolved } = contract const isCreator = user?.id === creatorId return (
{!isResolved && ( <>
{isCreator && user && ( )} )} ) } function BetsSection(props: { contract: Contract; user: User | null }) { const { contract, user } = props const bets = useBets(contract.id) if (bets === 'loading' || bets.length === 0) return <> // Decending creation time. bets.sort((bet1, bet2) => bet2.createdTime - bet1.createdTime) const userBets = user && bets.filter((bet) => bet.userId === user.id) return (
{userBets && userBets.length > 0 && ( <> <MyBetsSummary contract={contract} bets={userBets} /> <Spacer h={6} /> <ContractBetsTable contract={contract} bets={userBets} /> <Spacer h={6} /> </> )} </div> ) }