import { Bet } from 'common/bet' import { Contract, CPMMBinaryContract } from 'common/contract' import { ContractComment } from 'common/comment' import { User } from 'common/user' import { ContractCommentsActivity, ContractBetsActivity, FreeResponseContractCommentsActivity, } from '../feed/contract-activity' import { ContractBetsTable, BetsSummary } from '../bets-list' import { Spacer } from '../layout/spacer' import { Tabs } from '../layout/tabs' import { Col } from '../layout/col' import { tradingAllowed } from 'web/lib/firebase/contracts' import { CommentTipMap } from 'web/hooks/use-tip-txns' import { useBets } from 'web/hooks/use-bets' import { useComments } from 'web/hooks/use-comments' import { useLiquidity } from 'web/hooks/use-liquidity' import { BetSignUpPrompt } from '../sign-up-prompt' import { PlayMoneyDisclaimer } from '../play-money-disclaimer' import BetButton from '../bet-button' export function ContractTabs(props: { contract: Contract user: User | null | undefined bets: Bet[] comments: ContractComment[] tips: CommentTipMap }) { const { contract, user, tips } = props const { outcomeType } = contract const bets = useBets(contract.id) ?? props.bets const lps = useLiquidity(contract.id) ?? [] const userBets = user && bets.filter((bet) => !bet.isAnte && bet.userId === user.id) const visibleBets = bets.filter( (bet) => !bet.isAnte && !bet.isRedemption && bet.amount !== 0 ) const visibleLps = lps.filter((l) => !l.isAnte && l.amount > 0) // Load comments here, so the badge count will be correct const updatedComments = useComments(contract.id) const comments = updatedComments ?? props.comments const betActivity = ( ) const generalBets = outcomeType === 'FREE_RESPONSE' ? [] : visibleBets const generalComments = comments.filter( (comment) => comment.answerOutcome === undefined && (outcomeType === 'FREE_RESPONSE' ? comment.betId === undefined : true) ) const commentActivity = outcomeType === 'FREE_RESPONSE' ? ( <>
General Comments
) : ( ) const yourTrades = (
) return ( <> {!user ? ( ) : ( outcomeType === 'BINARY' && tradingAllowed(contract) && ( ) )} ) }