(undefined)
+
+ const resolve = async () => {
+ if (!outcome) return
+
+ let outcomeChoice = outcome
+ if (outcome !== 'CANCEL') {
+ const bucket = getMappedBucket(+outcome, contract)
+ outcomeChoice = `${bucket}`
+ }
+
+ setIsSubmitting(true)
+
+ const result = await resolveMarket({
+ outcome: outcomeChoice,
+ contractId: contract.id,
+ }).then((r) => r.data)
+
+ console.log('resolved', outcome, 'result:', result)
+
+ if (result?.status !== 'success') {
+ setError(result?.message || 'Error resolving market')
+ }
+ setIsSubmitting(false)
+ }
+
+ const submitButtonClass =
+ outcome === 'CANCEL'
+ ? 'bg-yellow-400 hover:bg-yellow-500'
+ : outcome
+ ? 'btn-primary'
+ : 'btn-disabled'
+
+ console.log('outcome', outcome)
+
+ return (
+
+ Resolve market
+
+ Outcome
+
+
+
+
+
+
+
+ {outcomeMode === 'NUMBER' && (
+
+ )}
+
+
+ {outcome === 'CANCEL' ? (
+ <>All trades will be returned with no fees.>
+ ) : (
+ <>Resolving this market will immediately pay out traders.>
+ )}
+
+
+
+
+ {!!error && {error}
}
+
+
+
+ )
+}
diff --git a/web/components/resolution-panel.tsx b/web/components/resolution-panel.tsx
index 9c82b03c..1aaabcfd 100644
--- a/web/components/resolution-panel.tsx
+++ b/web/components/resolution-panel.tsx
@@ -3,23 +3,15 @@ import React, { useEffect, useState } from 'react'
import { Col } from './layout/col'
import { User } from 'web/lib/firebase/users'
-import { NumberCancelSelector, YesNoCancelSelector } from './yes-no-selector'
+import { YesNoCancelSelector } from './yes-no-selector'
import { Spacer } from './layout/spacer'
import { ResolveConfirmationButton } from './confirmation-button'
import { resolveMarket } from 'web/lib/firebase/api-call'
import { ProbabilitySelector } from './probability-selector'
import { DPM_CREATOR_FEE } from 'common/fees'
import { getProbability } from 'common/calculate'
-import {
- Binary,
- CPMM,
- DPM,
- FullContract,
- NumericContract,
-} from 'common/contract'
+import { Binary, CPMM, DPM, FullContract } from 'common/contract'
import { formatMoney } from 'common/util/format'
-import { BucketAmountInput } from './amount-input'
-import { getMappedBucket } from 'common/calculate-dpm'
export function ResolutionPanel(props: {
creator: User
@@ -136,109 +128,3 @@ export function ResolutionPanel(props: {
)
}
-
-export function NumericResolutionPanel(props: {
- creator: User
- contract: NumericContract
- className?: string
-}) {
- useEffect(() => {
- // warm up cloud function
- resolveMarket({} as any).catch()
- }, [])
-
- const { contract, className } = props
- const { bucketCount, min, max } = contract
-
- const [outcomeMode, setOutcomeMode] = useState<
- 'NUMBER' | 'CANCEL' | undefined
- >()
- const [outcome, setOutcome] = useState()
-
- const [isSubmitting, setIsSubmitting] = useState(false)
- const [valueError, setValueError] = useState()
- const [error, setError] = useState(undefined)
-
- const resolve = async () => {
- if (!outcome) return
-
- let outcomeChoice = outcome
- if (outcome !== 'CANCEL') {
- const bucket = getMappedBucket(+outcome, contract)
- outcomeChoice = `${bucket}`
- }
-
- setIsSubmitting(true)
-
- const result = await resolveMarket({
- outcome: outcomeChoice,
- contractId: contract.id,
- }).then((r) => r.data)
-
- console.log('resolved', outcome, 'result:', result)
-
- if (result?.status !== 'success') {
- setError(result?.message || 'Error resolving market')
- }
- setIsSubmitting(false)
- }
-
- const submitButtonClass =
- outcome === 'CANCEL'
- ? 'bg-yellow-400 hover:bg-yellow-500'
- : outcome
- ? 'btn-primary'
- : 'btn-disabled'
-
- console.log('outcome', outcome)
-
- return (
-
- Resolve market
-
- Outcome
-
-
-
-
-
-
-
- {outcomeMode === 'NUMBER' && (
- <>
-
- setOutcome(outcome ? `${outcome}` : undefined)
- }
- error={valueError}
- setError={setValueError}
- disabled={isSubmitting}
- />
- >
- )}
-
-
- {outcome === 'CANCEL' ? (
- <>All trades will be returned with no fees.>
- ) : (
- <>Resolving this market will immediately pay out traders.>
- )}
-
-
-
-
- {!!error && {error}
}
-
-
-
- )
-}
diff --git a/web/pages/[username]/[contractSlug].tsx b/web/pages/[username]/[contractSlug].tsx
index fb87043c..9e6ed4f3 100644
--- a/web/pages/[username]/[contractSlug].tsx
+++ b/web/pages/[username]/[contractSlug].tsx
@@ -7,10 +7,7 @@ import { ContractOverview } from 'web/components/contract/contract-overview'
import { BetPanel } from 'web/components/bet-panel'
import { Col } from 'web/components/layout/col'
import { useUser } from 'web/hooks/use-user'
-import {
- NumericResolutionPanel,
- ResolutionPanel,
-} from 'web/components/resolution-panel'
+import { ResolutionPanel } from 'web/components/resolution-panel'
import { Title } from 'web/components/title'
import { Spacer } from 'web/components/layout/spacer'
import { listUsers, User } from 'web/lib/firebase/users'
@@ -45,6 +42,7 @@ import { contractTextDetails } from 'web/components/contract/contract-details'
import { useWindowSize } from 'web/hooks/use-window-size'
import Confetti from 'react-confetti'
import { NumericBetPanel } from '../../components/numeric-bet-panel'
+import { NumericResolutionPanel } from '../../components/numeric-resolution-panel'
export const getStaticProps = fromPropz(getStaticPropz)
export async function getStaticPropz(props: {