Tidy up props a bit
This commit is contained in:
parent
790c0b336b
commit
2551c41902
|
@ -8,7 +8,7 @@ import { FeedCommentThread, ContractCommentInput } from '../feed/feed-comments'
|
|||
import { groupBy, sortBy } from 'lodash'
|
||||
import { Bet } from 'common/bet'
|
||||
import { Contract } from 'common/contract'
|
||||
import { PAST_BETS, User } from 'common/user'
|
||||
import { PAST_BETS } from 'common/user'
|
||||
import { ContractBetsTable, BetsSummary } from '../bets-list'
|
||||
import { Spacer } from '../layout/spacer'
|
||||
import { Tabs } from '../layout/tabs'
|
||||
|
@ -17,6 +17,7 @@ import { LoadingIndicator } from 'web/components/loading-indicator'
|
|||
import { useComments } from 'web/hooks/use-comments'
|
||||
import { useLiquidity } from 'web/hooks/use-liquidity'
|
||||
import { useTipTxns } from 'web/hooks/use-tip-txns'
|
||||
import { useUser } from 'web/hooks/use-user'
|
||||
import { capitalize } from 'lodash'
|
||||
import {
|
||||
DEV_HOUSE_LIQUIDITY_PROVIDER_ID,
|
||||
|
@ -24,15 +25,11 @@ import {
|
|||
} from 'common/antes'
|
||||
import { useIsMobile } from 'web/hooks/use-is-mobile'
|
||||
|
||||
export function ContractTabs(props: {
|
||||
contract: Contract
|
||||
user: User | null | undefined
|
||||
bets: Bet[]
|
||||
}) {
|
||||
const { contract, user, bets } = props
|
||||
export function ContractTabs(props: { contract: Contract; bets: Bet[] }) {
|
||||
const { contract, bets } = props
|
||||
|
||||
const isMobile = useIsMobile()
|
||||
|
||||
const user = useUser()
|
||||
const userBets =
|
||||
user && bets.filter((bet) => !bet.isAnte && bet.userId === user.id)
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ import { CPMMBinaryContract } from 'common/contract'
|
|||
import { AlertBox } from 'web/components/alert-box'
|
||||
import { useTracking } from 'web/hooks/use-tracking'
|
||||
import { useSaveReferral } from 'web/hooks/use-save-referral'
|
||||
import { User } from 'common/user'
|
||||
import { getOpenGraphProps } from 'common/contract-details'
|
||||
import { ContractDescription } from 'web/components/contract/contract-description'
|
||||
import {
|
||||
|
@ -73,12 +72,8 @@ export default function ContractPage(props: {
|
|||
bets: Bet[]
|
||||
backToHome?: () => void
|
||||
}) {
|
||||
props = usePropz(props, getStaticPropz) ?? {
|
||||
contract: null,
|
||||
bets: [],
|
||||
}
|
||||
props = usePropz(props, getStaticPropz) ?? { contract: null, bets: [] }
|
||||
|
||||
const user = useUser()
|
||||
const inIframe = useIsIframe()
|
||||
if (inIframe) {
|
||||
return <ContractEmbedPage {...props} />
|
||||
|
@ -90,9 +85,7 @@ export default function ContractPage(props: {
|
|||
return <Custom404 />
|
||||
}
|
||||
|
||||
return (
|
||||
<ContractPageContent key={contract.id} {...{ ...props, contract, user }} />
|
||||
)
|
||||
return <ContractPageContent key={contract.id} {...{ ...props, contract }} />
|
||||
}
|
||||
|
||||
// requires an admin to resolve a week after market closes
|
||||
|
@ -100,12 +93,10 @@ export function needsAdminToResolve(contract: Contract) {
|
|||
return !contract.isResolved && dayjs().diff(contract.closeTime, 'day') > 7
|
||||
}
|
||||
|
||||
export function ContractPageSidebar(props: {
|
||||
user: User | null | undefined
|
||||
contract: Contract
|
||||
}) {
|
||||
const { contract, user } = props
|
||||
export function ContractPageSidebar(props: { contract: Contract }) {
|
||||
const { contract } = props
|
||||
const { creatorId, isResolved, outcomeType } = contract
|
||||
const user = useUser()
|
||||
const isCreator = user?.id === creatorId
|
||||
const isBinary = outcomeType === 'BINARY'
|
||||
const isPseudoNumeric = outcomeType === 'PSEUDO_NUMERIC'
|
||||
|
@ -154,11 +145,11 @@ export function ContractPageSidebar(props: {
|
|||
export function ContractPageContent(
|
||||
props: Parameters<typeof ContractPage>[0] & {
|
||||
contract: Contract
|
||||
user?: User | null
|
||||
}
|
||||
) {
|
||||
const { backToHome, user } = props
|
||||
const { backToHome } = props
|
||||
const contract = useContractWithPreload(props.contract) ?? props.contract
|
||||
const user = useUser()
|
||||
usePrefetch(user?.id)
|
||||
useTracking(
|
||||
'view market',
|
||||
|
@ -198,9 +189,8 @@ export function ContractPageContent(
|
|||
contractId: contract.id,
|
||||
})
|
||||
|
||||
const rightSidebar = <ContractPageSidebar user={user} contract={contract} />
|
||||
return (
|
||||
<Page rightSidebar={rightSidebar}>
|
||||
<Page rightSidebar={<ContractPageSidebar contract={contract} />}>
|
||||
{showConfetti && (
|
||||
<FullscreenConfetti recycle={false} numberOfPieces={300} />
|
||||
)}
|
||||
|
@ -258,7 +248,7 @@ export function ContractPageContent(
|
|||
</>
|
||||
)}
|
||||
|
||||
<ContractTabs contract={contract} user={user} bets={bets} />
|
||||
<ContractTabs contract={contract} bets={bets} />
|
||||
{!user ? (
|
||||
<Col className="mt-4 max-w-sm items-center xl:hidden">
|
||||
<BetSignUpPrompt />
|
||||
|
|
|
@ -54,10 +54,7 @@ export default function ContractEmbedPage(props: {
|
|||
contract: Contract | null
|
||||
bets: Bet[]
|
||||
}) {
|
||||
props = usePropz(props, getStaticPropz) ?? {
|
||||
contract: null,
|
||||
bets: [],
|
||||
}
|
||||
props = usePropz(props, getStaticPropz) ?? { contract: null, bets: [] }
|
||||
|
||||
const contract = useContractWithPreload(props.contract)
|
||||
const { bets } = props
|
||||
|
|
Loading…
Reference in New Issue
Block a user