import clsx from 'clsx' import { contractPath } from 'web/lib/firebase/contracts' import { CPMMContract } from 'common/contract' import { formatPercent } from 'common/util/format' import { SiteLink } from '../site-link' import { Col } from '../layout/col' import { Row } from '../layout/row' import { LoadingIndicator } from '../loading-indicator' export function ProbChangeTable(props: { changes: | { positiveChanges: CPMMContract[]; negativeChanges: CPMMContract[] } | undefined full?: boolean }) { const { changes, full } = props if (!changes) return const { positiveChanges, negativeChanges } = changes const threshold = 0.075 const countOverThreshold = Math.max( positiveChanges.findIndex((c) => c.probChanges.day < threshold) + 1, negativeChanges.findIndex((c) => c.probChanges.day > -threshold) + 1 ) const maxRows = Math.min(positiveChanges.length, negativeChanges.length) const rows = Math.min( full ? Infinity : 3, Math.min(maxRows, countOverThreshold) ) const filteredPositiveChanges = positiveChanges.slice(0, rows) const filteredNegativeChanges = negativeChanges.slice(0, rows) if (rows === 0) return
None
return ( {filteredPositiveChanges.map((contract) => ( ))} {filteredNegativeChanges.map((contract) => ( ))} ) } function ProbChangeRow(props: { contract: CPMMContract }) { const { contract } = props return ( {contract.question} ) } export function ProbChange(props: { contract: CPMMContract className?: string }) { const { contract, className } = props const { probChanges: { day: change }, } = contract const color = change > 0 ? 'text-green-500' : change < 0 ? 'text-red-500' : 'text-gray-600' const str = change === 0 ? '+0%' : `${change > 0 ? '+' : '-'}${formatPercent(Math.abs(change))}` return
{str}
}