Remove NONE resolution option

This commit is contained in:
James Grugett 2022-02-17 01:55:29 -06:00
parent c1b6137e18
commit 445176fad2
4 changed files with 14 additions and 39 deletions

View File

@ -14,7 +14,7 @@ import { Avatar } from './avatar'
import { SiteLink } from './site-link' import { SiteLink } from './site-link'
import { DateTimeTooltip } from './datetime-tooltip' import { DateTimeTooltip } from './datetime-tooltip'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { BuyButton, ChooseNoneCancelSelector } from './yes-no-selector' import { BuyButton, ChooseCancelSelector } from './yes-no-selector'
import { Spacer } from './layout/spacer' import { Spacer } from './layout/spacer'
import { import {
formatMoney, formatMoney,
@ -55,10 +55,14 @@ export function AnswersPanel(props: { contract: Contract; answers: Answer[] }) {
const user = useUser() const user = useUser()
const [resolveOption, setResolveOption] = useState< const [resolveOption, setResolveOption] = useState<
'CHOOSE' | 'NONE' | 'CANCEL' | undefined 'CHOOSE' | 'CANCEL' | undefined
>() >()
const [answerChoice, setAnswerChoice] = useState<string | undefined>() const [answerChoice, setAnswerChoice] = useState<string | undefined>()
useEffect(() => {
if (resolveOption !== 'CHOOSE' && answerChoice) setAnswerChoice(undefined)
}, [answerChoice, resolveOption])
return ( return (
<Col className="gap-3"> <Col className="gap-3">
{sortedAnswers.map((answer) => ( {sortedAnswers.map((answer) => (
@ -89,7 +93,6 @@ export function AnswersPanel(props: { contract: Contract; answers: Answer[] }) {
resolveOption={resolveOption} resolveOption={resolveOption}
setResolveOption={setResolveOption} setResolveOption={setResolveOption}
answer={answerChoice} answer={answerChoice}
clearAnswerChoice={() => setAnswerChoice(undefined)}
/> />
)} )}
</Col> </Col>
@ -421,18 +424,11 @@ function CreateAnswerInput(props: { contract: Contract }) {
function AnswerResolvePanel(props: { function AnswerResolvePanel(props: {
contract: Contract contract: Contract
resolveOption: 'CHOOSE' | 'NONE' | 'CANCEL' | undefined resolveOption: 'CHOOSE' | 'CANCEL' | undefined
setResolveOption: (option: 'CHOOSE' | 'NONE' | 'CANCEL' | undefined) => void setResolveOption: (option: 'CHOOSE' | 'CANCEL' | undefined) => void
answer: string | undefined answer: string | undefined
clearAnswerChoice: () => void
}) { }) {
const { const { contract, resolveOption, setResolveOption, answer } = props
contract,
resolveOption,
setResolveOption,
answer,
clearAnswerChoice,
} = props
const [isSubmitting, setIsSubmitting] = useState(false) const [isSubmitting, setIsSubmitting] = useState(false)
const [error, setError] = useState<string | undefined>(undefined) const [error, setError] = useState<string | undefined>(undefined)
@ -443,12 +439,7 @@ function AnswerResolvePanel(props: {
setIsSubmitting(true) setIsSubmitting(true)
const result = await resolveMarket({ const result = await resolveMarket({
outcome: outcome: resolveOption === 'CHOOSE' ? (answer as string) : 'CANCEL',
resolveOption === 'CHOOSE'
? (answer as string)
: resolveOption === 'NONE'
? '0'
: 'CANCEL',
contractId: contract.id, contractId: contract.id,
}).then((r) => r.data as any) }).then((r) => r.data as any)
@ -458,15 +449,12 @@ function AnswerResolvePanel(props: {
setError(result?.error || 'Error resolving market') setError(result?.error || 'Error resolving market')
} }
setResolveOption(undefined) setResolveOption(undefined)
clearAnswerChoice()
setIsSubmitting(false) setIsSubmitting(false)
} }
const resolutionButtonClass = const resolutionButtonClass =
resolveOption === 'CANCEL' resolveOption === 'CANCEL'
? 'bg-yellow-400 hover:bg-yellow-500' ? 'bg-yellow-400 hover:bg-yellow-500'
: resolveOption === 'NONE'
? 'bg-red-400 hover:bg-red-500'
: resolveOption === 'CHOOSE' && answer : resolveOption === 'CHOOSE' && answer
? 'btn-primary' ? 'btn-primary'
: 'btn-disabled' : 'btn-disabled'
@ -475,7 +463,7 @@ function AnswerResolvePanel(props: {
<Col className="gap-4 p-4 bg-gray-50 rounded"> <Col className="gap-4 p-4 bg-gray-50 rounded">
<div>Resolve your market</div> <div>Resolve your market</div>
<Col className="sm:flex-row sm:items-center gap-4"> <Col className="sm:flex-row sm:items-center gap-4">
<ChooseNoneCancelSelector <ChooseCancelSelector
className="sm:!flex-row sm:items-center" className="sm:!flex-row sm:items-center"
selected={resolveOption} selected={resolveOption}
onSelect={setResolveOption} onSelect={setResolveOption}
@ -492,7 +480,6 @@ function AnswerResolvePanel(props: {
className="btn btn-ghost" className="btn btn-ghost"
onClick={() => { onClick={() => {
setResolveOption(undefined) setResolveOption(undefined)
clearAnswerChoice()
}} }}
> >
Clear Clear

View File

@ -76,7 +76,6 @@ export function ResolutionOrChance(props: {
NO: 'text-red-400', NO: 'text-red-400',
MKT: 'text-blue-400', MKT: 'text-blue-400',
CANCEL: 'text-yellow-400', CANCEL: 'text-yellow-400',
'0': 'text-red-400',
'': '', // Empty if unresolved '': '', // Empty if unresolved
}[resolution || ''] ?? 'text-primary' }[resolution || ''] ?? 'text-primary'
@ -88,7 +87,6 @@ export function ResolutionOrChance(props: {
NO: 'NO', NO: 'NO',
MKT: getBinaryProbPercent(contract), MKT: getBinaryProbPercent(contract),
CANCEL: 'N/A', CANCEL: 'N/A',
'0': 'NONE',
'': '', '': '',
}[resolution || ''] ?? `#${resolution}` }[resolution || ''] ?? `#${resolution}`

View File

@ -27,7 +27,5 @@ export function ProbLabel() {
} }
export function AnswerNumberLabel(props: { number: string }) { export function AnswerNumberLabel(props: { number: string }) {
if (props.number == '0') return <span className="text-red-400">NONE</span>
return <span className="text-primary">#{props.number}</span> return <span className="text-primary">#{props.number}</span>
} }

View File

@ -90,9 +90,9 @@ export function YesNoCancelSelector(props: {
) )
} }
export function ChooseNoneCancelSelector(props: { export function ChooseCancelSelector(props: {
selected: 'CHOOSE' | 'NONE' | 'CANCEL' | undefined selected: 'CHOOSE' | 'CANCEL' | undefined
onSelect: (selected: 'CHOOSE' | 'NONE' | 'CANCEL') => void onSelect: (selected: 'CHOOSE' | 'CANCEL') => void
className?: string className?: string
btnClassName?: string btnClassName?: string
}) { }) {
@ -110,14 +110,6 @@ export function ChooseNoneCancelSelector(props: {
Choose an answer Choose an answer
</Button> </Button>
<Button
color={selected === 'NONE' ? 'red' : 'gray'}
onClick={() => onSelect('NONE')}
className={clsx('whitespace-nowrap', btnClassName)}
>
None
</Button>
<Button <Button
color={selected === 'CANCEL' ? 'yellow' : 'gray'} color={selected === 'CANCEL' ? 'yellow' : 'gray'}
onClick={() => onSelect('CANCEL')} onClick={() => onSelect('CANCEL')}