Remove NONE resolution option
This commit is contained in:
parent
c1b6137e18
commit
445176fad2
|
@ -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
|
||||||
|
|
|
@ -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}`
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
}
|
}
|
||||||
|
|
|
@ -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')}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user