Add volume calculation. Remove new bet button that was unnecessary.

This commit is contained in:
jahooma 2021-12-10 22:09:32 -06:00
parent e253b3beca
commit 29e13497bf
3 changed files with 17 additions and 21 deletions

View File

@ -21,6 +21,11 @@ export function BetPanel(props: { contract: Contract; className?: string }) {
const [isSubmitting, setIsSubmitting] = useState(false) const [isSubmitting, setIsSubmitting] = useState(false)
const [wasSubmitted, setWasSubmitted] = useState(false) const [wasSubmitted, setWasSubmitted] = useState(false)
function onBetChoice(choice: 'YES' | 'NO') {
setBetChoice(choice)
setWasSubmitted(false)
}
function onBetChange(str: string) { function onBetChange(str: string) {
const amount = parseInt(str) const amount = parseInt(str)
setBetAmount(isNaN(amount) ? undefined : amount) setBetAmount(isNaN(amount) ? undefined : amount)
@ -44,11 +49,6 @@ export function BetPanel(props: { contract: Contract; className?: string }) {
setWasSubmitted(true) setWasSubmitted(true)
} }
function newBet() {
setBetAmount(undefined)
setWasSubmitted(false)
}
const betDisabled = isSubmitting || wasSubmitted const betDisabled = isSubmitting || wasSubmitted
const initialProb = getProbability(contract.pot, betChoice) const initialProb = getProbability(contract.pot, betChoice)
@ -72,7 +72,7 @@ export function BetPanel(props: { contract: Contract; className?: string }) {
<YesNoSelector <YesNoSelector
className="p-2" className="p-2"
selected={betChoice} selected={betChoice}
onSelect={setBetChoice} onSelect={choice => onBetChoice(choice)}
/> />
<Spacer h={4} /> <Spacer h={4} />
@ -128,19 +128,7 @@ export function BetPanel(props: { contract: Contract; className?: string }) {
Place bet Place bet
</button> </button>
{wasSubmitted && ( {wasSubmitted && <div className="mt-4">Bet submitted!</div>}
<Col>
<Spacer h={4} />
<div>Bet submitted!</div>
<Spacer h={4} />
<button className="btn btn-accent btn-xs" onClick={newBet}>
New bet
</button>
</Col>
)}
</Col> </Col>
) )
} }

View File

@ -14,6 +14,7 @@ import { Contract } from '../lib/firebase/contracts'
import { Col } from './layout/col' import { Col } from './layout/col'
import { Row } from './layout/row' import { Row } from './layout/row'
import { Spacer } from './layout/spacer' import { Spacer } from './layout/spacer'
import { formatWithCommas } from '../lib/util/format'
// Auto import doesn't work for some reason... // Auto import doesn't work for some reason...
// So we manually register ChartJS components instead: // So we manually register ChartJS components instead:
@ -39,6 +40,9 @@ const chartData = {
export const ContractOverview = (props: { contract: Contract }) => { export const ContractOverview = (props: { contract: Contract }) => {
const { contract } = props const { contract } = props
const { pot, seedAmounts } = contract
const volume = pot.YES + pot.NO - seedAmounts.YES - seedAmounts.NO
return ( return (
<Col className="max-w-3xl w-full"> <Col className="max-w-3xl w-full">
@ -49,7 +53,7 @@ export const ContractOverview = (props: { contract: Contract }) => {
<div className="py-2"></div> <div className="py-2"></div>
<div className="p-2 whitespace-nowrap">Dec 9</div> <div className="p-2 whitespace-nowrap">Dec 9</div>
<div className="py-2"></div> <div className="py-2"></div>
<div className="p-2 whitespace-nowrap">200,000 volume</div> <div className="p-2 whitespace-nowrap">{formatWithCommas(volume)} volume</div>
</Row> </Row>
<Spacer h={4} /> <Spacer h={4} />

View File

@ -4,6 +4,10 @@ const formatter = new Intl.NumberFormat('en-US', {
maximumFractionDigits: 0, maximumFractionDigits: 0,
}) })
export const formatMoney = (amount: number) => { export function formatMoney(amount: number) {
return 'M$ ' + formatter.format(amount).substr(1) return 'M$ ' + formatter.format(amount).substr(1)
} }
export function formatWithCommas(amount: number) {
return formatter.format(amount).substr(1)
}