import { DuplicateIcon } from '@heroicons/react/outline' import clsx from 'clsx' import { Contract } from 'common/contract' import { getMappedValue } from 'common/pseudo-numeric' import { trackCallback } from 'web/lib/service/analytics' export function DuplicateContractButton(props: { contract: Contract className?: string }) { const { contract, className } = props return ( ) } // Pass along the Uri to create a new contract function duplicateContractHref(contract: Contract) { const descriptionString = JSON.stringify(contract.description) // Don't set a closeTime that's in the past const closeTime = (contract?.closeTime ?? 0) <= Date.now() ? 0 : contract.closeTime const params = { q: contract.question, closeTime, description: descriptionString, outcomeType: contract.outcomeType, visibility: contract.visibility, } as Record if (contract.outcomeType === 'PSEUDO_NUMERIC') { params.min = contract.min params.max = contract.max if (contract.isLogScale) { // Conditional, because `?isLogScale=false` evaluates to `true` params.isLogScale = true } params.initValue = getMappedValue(contract)(contract.initialProbability) } // TODO: Support multiple choice markets? if (contract.groupLinks && contract.groupLinks.length > 0) { params.groupId = contract.groupLinks[0].groupId } return ( `/create?` + Object.entries(params) .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) .join('&') ) }