configuration of auto resolution on market creation
This commit is contained in:
parent
60739c7853
commit
e1591fd0a9
|
@ -89,16 +89,16 @@ export function NewContract(props: { question: string; tag?: string }) {
|
|||
// const [anteError, setAnteError] = useState<string | undefined>()
|
||||
// By default, close the market a week from today
|
||||
const [closeDate, setCloseDate] = useState<undefined | string>(weekFrom(dayjs()))
|
||||
const [resolutionDate, setResolutionDate] = useState<undefined | string>(weekFrom(closeDate))
|
||||
const [closeHoursMinutes, setCloseHoursMinutes] = useState<string>('23:59')
|
||||
const [resolutionDate, setResolutionDate] = useState<undefined | string>(weekFrom(closeDate))
|
||||
const [resolutionHoursMinutes, setResolutionHoursMinutes] = useState<string>('23:59')
|
||||
const [probErrorText, setProbErrorText] = useState('')
|
||||
const [marketInfoText, setMarketInfoText] = useState('')
|
||||
const [resolutionInfoText, setResolutionInfoText] = useState('')
|
||||
const [isSubmitting, setIsSubmitting] = useState(false)
|
||||
|
||||
const closeTime = closeDate
|
||||
? dayjs(`${closeDate}T${closeHoursMinutes}`).valueOf()
|
||||
: undefined
|
||||
const automaticResolutionTime = resolutionDate ? dayjs(resolutionDate).valueOf() : undefined
|
||||
const closeTime = closeDate ? dayjs(`${closeDate}T${closeHoursMinutes}`).valueOf() : undefined
|
||||
const automaticResolutionTime = resolutionDate ? dayjs(`${resolutionDate}TT${resolutionHoursMinutes}`).valueOf() : undefined
|
||||
|
||||
const balance = creator?.balance || 0
|
||||
|
||||
|
@ -376,80 +376,76 @@ export function NewContract(props: { question: string; tag?: string }) {
|
|||
</div>
|
||||
|
||||
{outcomeType === 'BINARY' && (
|
||||
<div>
|
||||
<div className="form-control mb-1 items-start">
|
||||
<Spacer h={4} />
|
||||
<div className="form-control mb-1 items-start">
|
||||
<label className="label mt-1 gap-2">
|
||||
<span>Resolution type</span>
|
||||
<InfoTooltip text="Combined markets can be resolved manually but will be resolved automatically under given conditions." />
|
||||
</label>
|
||||
<Row className="form-control gap-2">
|
||||
<label className="label cursor-pointer gap-2">
|
||||
<input
|
||||
className="radio"
|
||||
type="radio"
|
||||
name="res"
|
||||
checked={resolutionType === 'MANUAL'}
|
||||
value="MANUAL"
|
||||
onChange={() => setResolutionType('MANUAL')}
|
||||
disabled={isSubmitting}
|
||||
/>
|
||||
<span className="label-text">Manual</span>
|
||||
</label>
|
||||
|
||||
<label className="label cursor-pointer gap-2">
|
||||
<input
|
||||
className="radio"
|
||||
type="radio"
|
||||
name="res"
|
||||
checked={resolutionType === 'COMBINED'}
|
||||
value="COMBINED"
|
||||
onChange={() => setResolutionType('COMBINED')}
|
||||
disabled={isSubmitting}
|
||||
/>
|
||||
<span className="label-text">Combined (experimental)</span>
|
||||
</label>
|
||||
</Row>
|
||||
</div>
|
||||
<label className="label mb-1 gap-2">
|
||||
<span>Resolution type</span>
|
||||
<InfoTooltip text="Combined markets can be resolved manually but will be resolved automatically under given conditions." />
|
||||
</label>
|
||||
<ChoicesToggleGroup
|
||||
currentChoice={resolutionType}
|
||||
setChoice={(choice) => {
|
||||
setResolutionInfoText((choice === 'COMBINED' ? 'Automatic resolution is still experimental.' : ''))
|
||||
setResolutionType(choice as resolutionType)
|
||||
}}
|
||||
choicesMap={{
|
||||
'Manual': 'MANUAL',
|
||||
'Combined': 'COMBINED',
|
||||
}}
|
||||
isSubmitting={isSubmitting}
|
||||
className={'col-span-4 sm:col-span-3'}
|
||||
/>
|
||||
{resolutionInfoText && (
|
||||
<div className="mt-2 ml-1 text-sm text-indigo-700">
|
||||
{resolutionInfoText}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{resolutionType === 'COMBINED' && (
|
||||
<div className="form-control">
|
||||
<Row className="label justify-start">
|
||||
<span>Question resolves automatically as:</span>
|
||||
<div className="form-control mb-1 items-start">
|
||||
<Spacer h={4} />
|
||||
<label className="label mb-1 gap-2">
|
||||
<span>Question resolves automatically as:</span>
|
||||
<InfoTooltip text="The market will be resolved automatically on this date (local timezone)." />
|
||||
</Row>
|
||||
<Row className={'justify-start'}>
|
||||
<ChoicesToggleGroup
|
||||
currentChoice={automaticResolution}
|
||||
setChoice={(choice) => setAutomaticResolution(choice as resolution)}
|
||||
choicesMap={{
|
||||
'YES': 'YES',
|
||||
'NO': 'NO',
|
||||
'MKT': 'PROB',
|
||||
'CANCEL': 'N/A',
|
||||
}}
|
||||
isSubmitting={isSubmitting}
|
||||
className={'col-span-4 sm:col-span-3'}
|
||||
/>
|
||||
</Row>
|
||||
</label>
|
||||
<ChoicesToggleGroup
|
||||
currentChoice={automaticResolution}
|
||||
setChoice={(choice) => setAutomaticResolution(choice as resolution)}
|
||||
choicesMap={{
|
||||
'YES': 'YES',
|
||||
'NO': 'NO',
|
||||
'MKT': 'PROB',
|
||||
'CANCEL': 'N/A',
|
||||
}}
|
||||
isSubmitting={isSubmitting}
|
||||
className={'col-span-4 sm:col-span-3'}
|
||||
/>
|
||||
<Row>
|
||||
<input
|
||||
type={'date'}
|
||||
className="input input-bordered mt-4"
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
onChange={(e) =>
|
||||
setResolutionDate(
|
||||
dayjs(e.target.value).format('YYYY-MM-DDT23:59') || ''
|
||||
)
|
||||
setResolutionDate(dayjs(e.target.value).format('YYYY-MM-DDT23:59') || '')
|
||||
}
|
||||
min={Date.parse(closeDate??"")} // TODO: Fix: Market can be created with dates in the past
|
||||
disabled={isSubmitting}
|
||||
value={dayjs(resolutionDate).format('YYYY-MM-DD')}
|
||||
/>
|
||||
<input
|
||||
type={'time'}
|
||||
className="input input-bordered mt-4 ml-2"
|
||||
onClick={(e) => e.stopPropagation()}
|
||||
onChange={(e) => setResolutionHoursMinutes(e.target.value)}
|
||||
min={'00:00'}
|
||||
disabled={isSubmitting}
|
||||
value={closeHoursMinutes}
|
||||
/>
|
||||
</Row>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<Spacer h={4} />
|
||||
|
||||
<div className="form-control mb-1 items-start">
|
||||
|
|
Loading…
Reference in New Issue
Block a user