From 42086241d13207e7f6c7b93a0a8f8e006ba78d96 Mon Sep 17 00:00:00 2001 From: Austin Chen Date: Wed, 26 Jan 2022 13:57:08 -0600 Subject: [PATCH] Hide BetRow when not appropriate --- web/components/bet-row.tsx | 3 +-- web/components/contract-feed.tsx | 6 ++++-- web/lib/firebase/contracts.ts | 7 +++++++ web/pages/[username]/[contractSlug].tsx | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/web/components/bet-row.tsx b/web/components/bet-row.tsx index 14af11d9..4e7ad497 100644 --- a/web/components/bet-row.tsx +++ b/web/components/bet-row.tsx @@ -7,7 +7,6 @@ import { Row } from './layout/row' import { YesNoSelector } from './yes-no-selector' // Inline version of a bet panel. Opens BetPanel in a new modal. -// TODO: Hide when not appropriate export default function BetRow(props: { contract: Contract }) { const [open, setOpen] = useState(false) const [betChoice, setBetChoice] = useState<'YES' | 'NO' | undefined>( @@ -16,7 +15,7 @@ export default function BetRow(props: { contract: Contract }) { return ( <> -
+
Buy -
    +
      {items.map((activityItem, activityItemIdx) => (
    • @@ -688,7 +690,7 @@ export function ContractFeed(props: {
    • ))}
    - + {tradingAllowed(contract) && }
) } diff --git a/web/lib/firebase/contracts.ts b/web/lib/firebase/contracts.ts index f7168e96..08466cd2 100644 --- a/web/lib/firebase/contracts.ts +++ b/web/lib/firebase/contracts.ts @@ -52,6 +52,13 @@ export function contractMetrics(contract: Contract) { return { truePool, probPercent, startProb, createdDate, resolvedDate } } +export function tradingAllowed(contract: Contract) { + return ( + !contract.isResolved && + (!contract.closeTime || contract.closeTime > Date.now()) + ) +} + const db = getFirestore(app) export const contractCollection = collection(db, 'contracts') diff --git a/web/pages/[username]/[contractSlug].tsx b/web/pages/[username]/[contractSlug].tsx index 87a81bde..93f28746 100644 --- a/web/pages/[username]/[contractSlug].tsx +++ b/web/pages/[username]/[contractSlug].tsx @@ -15,6 +15,7 @@ import { contractMetrics, Contract, getContractFromSlug, + tradingAllowed, } from '../../lib/firebase/contracts' import { SEO } from '../../components/SEO' import { Page } from '../../components/page' @@ -70,8 +71,7 @@ export default function ContractPage(props: { const { creatorId, isResolved, resolution, question } = contract const isCreator = user?.id === creatorId - const allowTrade = - !isResolved && (!contract.closeTime || contract.closeTime > Date.now()) + const allowTrade = tradingAllowed(contract) const allowResolve = !isResolved && isCreator && !!user const { probPercent } = contractMetrics(contract)