Improve group market selection UI
This commit is contained in:
parent
5735864fd1
commit
99bff6b794
|
@ -70,41 +70,14 @@ export function ContractCard(props: {
|
||||||
return (
|
return (
|
||||||
<Row
|
<Row
|
||||||
className={clsx(
|
className={clsx(
|
||||||
'relative gap-3 rounded-lg bg-white shadow-md hover:cursor-pointer hover:bg-gray-100',
|
'group relative gap-3 rounded-lg bg-white shadow-md hover:cursor-pointer hover:bg-gray-100',
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<Col className="group relative flex-1 gap-3 py-4 pb-12 pl-6">
|
<Col className="relative flex-1 gap-3 py-4 pb-12 pl-6">
|
||||||
{onClick ? (
|
|
||||||
<a
|
|
||||||
className="absolute top-0 left-0 right-0 bottom-0"
|
|
||||||
href={contractPath(contract)}
|
|
||||||
onClick={(e) => {
|
|
||||||
// Let the browser handle the link click (opens in new tab).
|
|
||||||
if (e.ctrlKey || e.metaKey) return
|
|
||||||
|
|
||||||
e.preventDefault()
|
|
||||||
track('click market card', {
|
|
||||||
slug: contract.slug,
|
|
||||||
contractId: contract.id,
|
|
||||||
})
|
|
||||||
onClick()
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<Link href={contractPath(contract)}>
|
|
||||||
<a
|
|
||||||
onClick={trackCallback('click market card', {
|
|
||||||
slug: contract.slug,
|
|
||||||
contractId: contract.id,
|
|
||||||
})}
|
|
||||||
className="absolute top-0 left-0 right-0 bottom-0"
|
|
||||||
/>
|
|
||||||
</Link>
|
|
||||||
)}
|
|
||||||
<AvatarDetails
|
<AvatarDetails
|
||||||
contract={contract}
|
contract={contract}
|
||||||
className={'hidden md:inline-flex'}
|
className={'z-10 hidden md:inline-flex'}
|
||||||
/>
|
/>
|
||||||
<p
|
<p
|
||||||
className={clsx(
|
className={clsx(
|
||||||
|
@ -128,7 +101,7 @@ export function ContractCard(props: {
|
||||||
))}
|
))}
|
||||||
</Col>
|
</Col>
|
||||||
{showQuickBet ? (
|
{showQuickBet ? (
|
||||||
<QuickBet contract={contract} user={user} />
|
<QuickBet contract={contract} user={user} className="z-10" />
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
{outcomeType === 'BINARY' && (
|
{outcomeType === 'BINARY' && (
|
||||||
|
@ -177,6 +150,35 @@ export function ContractCard(props: {
|
||||||
hideGroupLink={hideGroupLink}
|
hideGroupLink={hideGroupLink}
|
||||||
/>
|
/>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
|
{/* Add click layer */}
|
||||||
|
{onClick ? (
|
||||||
|
<a
|
||||||
|
className="absolute top-0 left-0 right-0 bottom-0"
|
||||||
|
href={contractPath(contract)}
|
||||||
|
onClick={(e) => {
|
||||||
|
// Let the browser handle the link click (opens in new tab).
|
||||||
|
if (e.ctrlKey || e.metaKey) return
|
||||||
|
|
||||||
|
e.preventDefault()
|
||||||
|
track('click market card', {
|
||||||
|
slug: contract.slug,
|
||||||
|
contractId: contract.id,
|
||||||
|
})
|
||||||
|
onClick()
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Link href={contractPath(contract)}>
|
||||||
|
<a
|
||||||
|
onClick={trackCallback('click market card', {
|
||||||
|
slug: contract.slug,
|
||||||
|
contractId: contract.id,
|
||||||
|
})}
|
||||||
|
className="absolute top-0 left-0 right-0 bottom-0"
|
||||||
|
/>
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
</Row>
|
</Row>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,9 @@ const BET_SIZE = 10
|
||||||
export function QuickBet(props: {
|
export function QuickBet(props: {
|
||||||
contract: BinaryContract | PseudoNumericContract
|
contract: BinaryContract | PseudoNumericContract
|
||||||
user: User
|
user: User
|
||||||
|
className?: string
|
||||||
}) {
|
}) {
|
||||||
const { contract, user } = props
|
const { contract, user, className } = props
|
||||||
const { mechanism, outcomeType } = contract
|
const { mechanism, outcomeType } = contract
|
||||||
const isCpmm = mechanism === 'cpmm-1'
|
const isCpmm = mechanism === 'cpmm-1'
|
||||||
|
|
||||||
|
@ -139,6 +140,7 @@ export function QuickBet(props: {
|
||||||
return (
|
return (
|
||||||
<Col
|
<Col
|
||||||
className={clsx(
|
className={clsx(
|
||||||
|
className,
|
||||||
'relative min-w-[5.5rem] justify-center gap-2 pr-5 pl-1 align-middle'
|
'relative min-w-[5.5rem] justify-center gap-2 pr-5 pl-1 align-middle'
|
||||||
// Use this for colored QuickBet panes
|
// Use this for colored QuickBet panes
|
||||||
// `bg-opacity-10 bg-${color}`
|
// `bg-opacity-10 bg-${color}`
|
||||||
|
|
|
@ -546,8 +546,13 @@ function AddContractButton(props: { group: Group; user: User }) {
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal open={open} setOpen={setOpen} className={'sm:p-0'} size={'lg'}>
|
<Modal
|
||||||
<Col className={' w-full gap-4 rounded-md bg-white'}>
|
open={open}
|
||||||
|
setOpen={setOpen}
|
||||||
|
className={'max-w-4xl sm:p-0'}
|
||||||
|
size={'xl'}
|
||||||
|
>
|
||||||
|
<Col className={'min-h-screen w-full gap-4 rounded-md bg-white'}>
|
||||||
<Col className="p-8 pb-0">
|
<Col className="p-8 pb-0">
|
||||||
<div className={'text-xl text-indigo-700'}>
|
<div className={'text-xl text-indigo-700'}>
|
||||||
Add a market to your group
|
Add a market to your group
|
||||||
|
|
Loading…
Reference in New Issue
Block a user