import { Bet } from 'common/bet' import { Contract, CPMMBinaryContract } from 'common/contract' import { ContractComment } from 'common/comment' import { PAST_BETS, 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 { 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' import { capitalize } from 'lodash' import { DEV_HOUSE_LIQUIDITY_PROVIDER_ID, HOUSE_LIQUIDITY_PROVIDER_ID, } from 'common/antes' import { useIsMobile } from 'web/hooks/use-is-mobile' export function ContractTabs(props: { contract: Contract user: User | null | undefined bets: Bet[] comments: ContractComment[] tips: CommentTipMap }) { const { contract, user, bets, tips } = props const { outcomeType } = contract const isMobile = useIsMobile() 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.userId !== HOUSE_LIQUIDITY_PROVIDER_ID && l.userId !== DEV_HOUSE_LIQUIDITY_PROVIDER_ID && 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 = lps != null && ( ) 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' ? ( <> b.userId === user.id) : [] } comments={comments} tips={tips} user={user} />
General Comments
b.userId === user.id) : [] } comments={generalComments} tips={tips} user={user} /> ) : ( b.userId === user.id) : [] } comments={comments} tips={tips} user={user} /> ) const yourTrades = (
) return ( <> {!user ? ( ) : ( outcomeType === 'BINARY' && tradingAllowed(contract) && ( ) )} ) }