From 613c4d93744147fc974c90de2faf40f7db42b464 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Tue, 14 Jun 2022 16:32:07 -0500 Subject: [PATCH] Restrict bet panel / bet row to only CPMMBinaryContracts (all binary DPM are resolved) --- web/components/bet-panel.tsx | 68 ++++++------------- web/components/bet-row.tsx | 4 +- web/components/contract/contract-overview.tsx | 6 +- web/components/feed/feed-items.tsx | 7 +- web/pages/[username]/[contractSlug].tsx | 6 +- web/pages/embed/[username]/[contractSlug].tsx | 9 +-- 6 files changed, 42 insertions(+), 58 deletions(-) diff --git a/web/components/bet-panel.tsx b/web/components/bet-panel.tsx index adaa9b19..42d40a25 100644 --- a/web/components/bet-panel.tsx +++ b/web/components/bet-panel.tsx @@ -4,7 +4,7 @@ import { partition, sumBy } from 'lodash' import { SwitchHorizontalIcon } from '@heroicons/react/solid' import { useUser } from 'web/hooks/use-user' -import { BinaryContract, CPMMBinaryContract } from 'common/contract' +import { CPMMBinaryContract } from 'common/contract' import { Col } from './layout/col' import { Row } from './layout/row' import { Spacer } from './layout/spacer' @@ -42,7 +42,7 @@ import { isIOS } from 'web/lib/util/device' import { ProbabilityInput } from './probability-input' export function BetPanel(props: { - contract: BinaryContract + contract: CPMMBinaryContract className?: string }) { const { contract, className } = props @@ -91,7 +91,7 @@ export function BetPanel(props: { } export function BetPanelSwitcher(props: { - contract: BinaryContract + contract: CPMMBinaryContract className?: string title?: string // Set if BetPanel is on a feed modal selected?: 'YES' | 'NO' @@ -170,19 +170,16 @@ export function BetPanelSwitcher(props: { text={tradeType === 'BUY' ? title ?? 'Place a trade' : 'Sell shares'} /> - {tradeType === 'SELL' && - mechanism == 'cpmm-1' && - user && - sharesOutcome && ( - - )} + {tradeType === 'SELL' && user && sharesOutcome && ( + + )} {tradeType === 'BUY' && (
- {contract.mechanism === 'dpm-2' ? ( - <> - Estimated -
payout if{' '} - - - ) : ( - <> - Payout if - - )} + Payout if
- - {cpmmFees !== false && ( - - )} - - {dpmTooltip && } +
diff --git a/web/components/bet-row.tsx b/web/components/bet-row.tsx index 9621f7a9..92dd0c38 100644 --- a/web/components/bet-row.tsx +++ b/web/components/bet-row.tsx @@ -3,7 +3,7 @@ import clsx from 'clsx' import { BetPanelSwitcher } from './bet-panel' import { YesNoSelector } from './yes-no-selector' -import { BinaryContract } from 'common/contract' +import { CPMMBinaryContract } from 'common/contract' import { Modal } from './layout/modal' import { SellButton } from './sell-button' import { useUser } from 'web/hooks/use-user' @@ -12,7 +12,7 @@ import { useSaveShares } from './use-save-shares' // Inline version of a bet panel. Opens BetPanel in a new modal. export default function BetRow(props: { - contract: BinaryContract + contract: CPMMBinaryContract className?: string btnClassName?: string betPanelClassName?: string diff --git a/web/components/contract/contract-overview.tsx b/web/components/contract/contract-overview.tsx index a8608ae6..617452e2 100644 --- a/web/components/contract/contract-overview.tsx +++ b/web/components/contract/contract-overview.tsx @@ -16,7 +16,7 @@ import { Bet } from 'common/bet' import { Comment } from 'common/comment' import BetRow from '../bet-row' import { AnswersGraph } from '../answers/answers-graph' -import { Contract } from 'common/contract' +import { Contract, CPMMBinaryContract } from 'common/contract' import { ContractDescription } from './contract-description' import { ContractDetails } from './contract-details' import { ShareMarket } from '../share-market' @@ -63,7 +63,9 @@ export const ContractOverview = (props: { - {tradingAllowed(contract) && } + {tradingAllowed(contract) && ( + + )} ) : ( outcomeType === 'FREE_RESPONSE' && diff --git a/web/components/feed/feed-items.tsx b/web/components/feed/feed-items.tsx index 2a53b3a7..887279c8 100644 --- a/web/components/feed/feed-items.tsx +++ b/web/components/feed/feed-items.tsx @@ -35,7 +35,7 @@ import { TruncatedComment, } from 'web/components/feed/feed-comments' import { FeedBet, FeedBetGroup } from 'web/components/feed/feed-bets' -import { NumericContract } from 'common/contract' +import { CPMMBinaryContract, NumericContract } from 'common/contract' export function FeedItems(props: { contract: Contract @@ -68,7 +68,10 @@ export function FeedItems(props: { ))}
{outcomeType === 'BINARY' && tradingAllowed(contract) && ( - + )} ) diff --git a/web/pages/[username]/[contractSlug].tsx b/web/pages/[username]/[contractSlug].tsx index c8f3bdb6..c52bc46f 100644 --- a/web/pages/[username]/[contractSlug].tsx +++ b/web/pages/[username]/[contractSlug].tsx @@ -39,6 +39,7 @@ import { FeedBet } from 'web/components/feed/feed-bets' import { useIsIframe } from 'web/hooks/use-is-iframe' import ContractEmbedPage from '../embed/[username]/[contractSlug]' import { useBets } from 'web/hooks/use-bets' +import { CPMMBinaryContract } from 'common/contract' export const getStaticProps = fromPropz(getStaticPropz) export async function getStaticPropz(props: { @@ -142,7 +143,10 @@ export function ContractPageContent( (isNumeric ? ( ) : ( - + ))} {allowResolve && (isNumeric ? ( diff --git a/web/pages/embed/[username]/[contractSlug].tsx b/web/pages/embed/[username]/[contractSlug].tsx index 98bf37b2..8581926d 100644 --- a/web/pages/embed/[username]/[contractSlug].tsx +++ b/web/pages/embed/[username]/[contractSlug].tsx @@ -1,5 +1,5 @@ import { Bet } from 'common/bet' -import { Contract } from 'common/contract' +import { Contract, CPMMBinaryContract } from 'common/contract' import { DOMAIN } from 'common/envs/constants' import { AnswersGraph } from 'web/components/answers/answers-graph' import BetRow from 'web/components/bet-row' @@ -110,9 +110,10 @@ function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { {isBinary && ( - {/* this fails typechecking, but it doesn't explode because we will - never */} - + )}