import { useState } from 'react'
import {
compute,
Contract,
deleteContract,
setContract,
} from '../lib/firebase/contracts'
import { Col } from './layout/col'
import { Spacer } from './layout/spacer'
import { ContractProbGraph } from './contract-prob-graph'
import router from 'next/router'
import { useUser } from '../hooks/use-user'
import { Row } from './layout/row'
import dayjs from 'dayjs'
import { Linkify } from './linkify'
import clsx from 'clsx'
import { ContractDetails, ResolutionOrChance } from './contract-card'
function ContractCloseTime(props: { contract: Contract }) {
const closeTime = props.contract.closeTime
if (!closeTime) {
return null
}
return (
Trading {closeTime > Date.now() ? 'closes' : 'closed'} at{' '}
{dayjs(closeTime).format('MMM D, h:mma')}
)
}
function ContractDescription(props: {
contract: Contract
isCreator: boolean
}) {
const { contract, isCreator } = props
const [editing, setEditing] = useState(false)
const editStatement = () => `${dayjs().format('MMM D, h:mma')}: `
const [description, setDescription] = useState(editStatement())
// Append the new description (after a newline)
async function saveDescription(e: any) {
e.preventDefault()
setEditing(false)
contract.description = `${contract.description}\n${description}`.trim()
await setContract(contract)
setDescription(editStatement())
}
return (
{isCreator &&
!contract.resolution &&
(editing ? (
) : (
))}
)
}
export const ContractOverview = (props: {
contract: Contract
className?: string
}) => {
const { contract, className } = props
const { resolution, creatorId } = contract
const { probPercent, truePool } = compute(contract)
const user = useUser()
const isCreator = user?.id === creatorId
return (
{((isCreator && !contract.resolution) || contract.description) && (
)}
{/* Show a delete button for contracts without any trading */}
{isCreator && truePool === 0 && (
<>
>
)}
)
}