mobile betting in embeds
This commit is contained in:
		
							parent
							
								
									17d1b8575c
								
							
						
					
					
						commit
						161c7ee699
					
				|  | @ -79,11 +79,21 @@ export default function BetButton(props: { | |||
|   ) | ||||
| } | ||||
| 
 | ||||
| export function BinaryMobileBetting(props: { contract: BinaryContract }) { | ||||
|   const { contract } = props | ||||
| export function BinaryMobileBetting(props: { | ||||
|   contract: BinaryContract | ||||
|   hideSellRow?: boolean | ||||
| }) { | ||||
|   const { contract, hideSellRow } = props | ||||
|   const user = useUser() | ||||
| 
 | ||||
|   if (user) { | ||||
|     return <SignedInBinaryMobileBetting contract={contract} user={user} /> | ||||
|     return ( | ||||
|       <SignedInBinaryMobileBetting | ||||
|         contract={contract} | ||||
|         user={user} | ||||
|         hideSellRow={hideSellRow} | ||||
|       /> | ||||
|     ) | ||||
|   } else { | ||||
|     return <BetSignUpPrompt className="w-full" /> | ||||
|   } | ||||
|  | @ -92,8 +102,9 @@ export function BinaryMobileBetting(props: { contract: BinaryContract }) { | |||
| export function SignedInBinaryMobileBetting(props: { | ||||
|   contract: BinaryContract | ||||
|   user: User | ||||
|   hideSellRow?: boolean | ||||
| }) { | ||||
|   const { contract, user } = props | ||||
|   const { contract, user, hideSellRow } = props | ||||
|   const unfilledBets = useUnfilledBets(contract.id) ?? [] | ||||
| 
 | ||||
|   return ( | ||||
|  | @ -108,13 +119,16 @@ export function SignedInBinaryMobileBetting(props: { | |||
|             mobileView={true} | ||||
|           /> | ||||
|         </Col> | ||||
|         <SellRow | ||||
|           contract={contract} | ||||
|           user={user} | ||||
|           className={ | ||||
|             'border-greyscale-3 bg-greyscale-1 rounded-md border-2 px-4 py-2' | ||||
|           } | ||||
|         /> | ||||
| 
 | ||||
|         {!hideSellRow && ( | ||||
|           <SellRow | ||||
|             contract={contract} | ||||
|             user={user} | ||||
|             className={ | ||||
|               'border-greyscale-3 bg-greyscale-1 rounded-md border-2 px-4 py-2' | ||||
|             } | ||||
|           /> | ||||
|         )} | ||||
|       </Col> | ||||
|     </> | ||||
|   ) | ||||
|  |  | |||
|  | @ -1,9 +1,6 @@ | |||
| import { Bet } from 'common/bet' | ||||
| import { Contract } from 'common/contract' | ||||
| import { DOMAIN } from 'common/envs/constants' | ||||
| import { useState } from 'react' | ||||
| import { BetInline } from 'web/components/bet-inline' | ||||
| import { Button } from 'web/components/button' | ||||
| import { | ||||
|   BinaryResolutionOrChance, | ||||
|   FreeResponseResolutionOrChance, | ||||
|  | @ -27,6 +24,7 @@ import { | |||
|   tradingAllowed, | ||||
| } from 'web/lib/firebase/contracts' | ||||
| import Custom404 from '../../404' | ||||
| import { BinaryMobileBetting } from 'web/components/bet-button' | ||||
| 
 | ||||
| export const getStaticProps = fromPropz(getStaticPropz) | ||||
| export async function getStaticPropz(props: { | ||||
|  | @ -81,19 +79,13 @@ export function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { | |||
| 
 | ||||
|   const { setElem, height: graphHeight } = useMeasureSize() | ||||
| 
 | ||||
|   const [betPanelOpen, setBetPanelOpen] = useState(false) | ||||
| 
 | ||||
|   const [probAfter, setProbAfter] = useState<number>() | ||||
| 
 | ||||
|   return ( | ||||
|     <Col className="h-[100vh] w-full bg-white"> | ||||
|       <Row className="justify-between gap-4 px-2"> | ||||
|       <Row className="mt-1 justify-between gap-4 px-2"> | ||||
|         <div className="text-xl text-indigo-700 md:text-2xl"> | ||||
|           <SiteLink href={href}>{question}</SiteLink> | ||||
|         </div> | ||||
|         {isBinary && ( | ||||
|           <BinaryResolutionOrChance contract={contract} probAfter={probAfter} /> | ||||
|         )} | ||||
|         {isBinary && <BinaryResolutionOrChance contract={contract} />} | ||||
| 
 | ||||
|         {isPseudoNumeric && ( | ||||
|           <PseudoNumericResolutionOrExpectation contract={contract} /> | ||||
|  | @ -107,33 +99,21 @@ export function ContractEmbed(props: { contract: Contract; bets: Bet[] }) { | |||
|           <NumericResolutionOrExpectation contract={contract} /> | ||||
|         )} | ||||
|       </Row> | ||||
|       <Spacer h={3} /> | ||||
|       <Row className="items-center justify-between gap-4 px-2"> | ||||
|         <MarketSubheader contract={contract} disabled /> | ||||
| 
 | ||||
|         {(isBinary || isPseudoNumeric) && | ||||
|           tradingAllowed(contract) && | ||||
|           !betPanelOpen && ( | ||||
|             <Button color="gradient" onClick={() => setBetPanelOpen(true)}> | ||||
|               Predict | ||||
|             </Button> | ||||
|           )} | ||||
|       </Row> | ||||
| 
 | ||||
|       <Spacer h={2} /> | ||||
| 
 | ||||
|       {(isBinary || isPseudoNumeric) && betPanelOpen && ( | ||||
|         <BetInline | ||||
|           contract={contract as any} | ||||
|           setProbAfter={setProbAfter} | ||||
|           onClose={() => setBetPanelOpen(false)} | ||||
|           className="self-center" | ||||
|         /> | ||||
|       )} | ||||
| 
 | ||||
|       <div className="mx-1 mb-2 min-h-0 flex-1" ref={setElem}> | ||||
|         <ContractChart contract={contract} bets={bets} height={graphHeight} /> | ||||
|       </div> | ||||
| 
 | ||||
|       <Row className="mx-8 mb-2 items-center justify-between gap-4"> | ||||
|         {isBinary && tradingAllowed(contract) && ( | ||||
|           <BinaryMobileBetting contract={contract} hideSellRow /> | ||||
|         )} | ||||
|       </Row> | ||||
|     </Col> | ||||
|   ) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user