Add volume calculation. Remove new bet button that was unnecessary.
This commit is contained in:
parent
e253b3beca
commit
29e13497bf
|
@ -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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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} />
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user