Merge branch 'main' into localstorage

This commit is contained in:
Austin Chen 2022-08-28 22:38:01 -07:00
commit 4a6177d674
5 changed files with 46 additions and 29 deletions

View File

@ -55,8 +55,9 @@ export function AuthProvider(props: {
}, [setAuthUser, serverUser]) }, [setAuthUser, serverUser])
useEffect(() => { useEffect(() => {
return onIdTokenChanged(auth, async (fbUser) => { return onIdTokenChanged(
console.log('onIdTokenChanged', fbUser) auth,
async (fbUser) => {
if (fbUser) { if (fbUser) {
setTokenCookies({ setTokenCookies({
id: await fbUser.getIdToken(), id: await fbUser.getIdToken(),
@ -68,7 +69,7 @@ export function AuthProvider(props: {
current = (await createUser({ deviceToken })) as UserAndPrivateUser current = (await createUser({ deviceToken })) as UserAndPrivateUser
} }
setAuthUser(current) setAuthUser(current)
// Persist to localStorage, to reduce login blink next time. // Persist to local storage, to reduce login blink next time.
// Note: Cap on localStorage size is ~5mb // Note: Cap on localStorage size is ~5mb
localStorage.setItem(CACHED_USER_KEY, JSON.stringify(current)) localStorage.setItem(CACHED_USER_KEY, JSON.stringify(current))
setCachedReferralInfoForUser(current.user) setCachedReferralInfoForUser(current.user)
@ -78,7 +79,11 @@ export function AuthProvider(props: {
setAuthUser(null) setAuthUser(null)
localStorage.removeItem(CACHED_USER_KEY) localStorage.removeItem(CACHED_USER_KEY)
} }
}) },
(e) => {
console.error(e)
}
)
}, [setAuthUser]) }, [setAuthUser])
const uid = authUser?.user.id const uid = authUser?.user.id

View File

@ -43,6 +43,7 @@ export function ContractCard(props: {
onClick?: () => void onClick?: () => void
hideQuickBet?: boolean hideQuickBet?: boolean
hideGroupLink?: boolean hideGroupLink?: boolean
trackingPostfix?: string
}) { }) {
const { const {
showHotVolume, showHotVolume,
@ -52,6 +53,7 @@ export function ContractCard(props: {
onClick, onClick,
hideQuickBet, hideQuickBet,
hideGroupLink, hideGroupLink,
trackingPostfix,
} = props } = props
const contract = useContractWithPreload(props.contract) ?? props.contract const contract = useContractWithPreload(props.contract) ?? props.contract
const { question, outcomeType } = contract const { question, outcomeType } = contract
@ -166,7 +168,7 @@ export function ContractCard(props: {
if (e.ctrlKey || e.metaKey) return if (e.ctrlKey || e.metaKey) return
e.preventDefault() e.preventDefault()
track('click market card', { track('click market card' + (trackingPostfix ?? ''), {
slug: contract.slug, slug: contract.slug,
contractId: contract.id, contractId: contract.id,
}) })
@ -176,10 +178,13 @@ export function ContractCard(props: {
) : ( ) : (
<Link href={contractPath(contract)}> <Link href={contractPath(contract)}>
<a <a
onClick={trackCallback('click market card', { onClick={trackCallback(
'click market card' + (trackingPostfix ?? ''),
{
slug: contract.slug, slug: contract.slug,
contractId: contract.id, contractId: contract.id,
})} }
)}
className="absolute top-0 left-0 right-0 bottom-0" className="absolute top-0 left-0 right-0 bottom-0"
/> />
</Link> </Link>

View File

@ -26,6 +26,7 @@ export function ContractsGrid(props: {
hideGroupLink?: boolean hideGroupLink?: boolean
} }
highlightOptions?: ContractHighlightOptions highlightOptions?: ContractHighlightOptions
trackingPostfix?: string
}) { }) {
const { const {
contracts, contracts,
@ -34,6 +35,7 @@ export function ContractsGrid(props: {
onContractClick, onContractClick,
cardHideOptions, cardHideOptions,
highlightOptions, highlightOptions,
trackingPostfix,
} = props } = props
const { hideQuickBet, hideGroupLink } = cardHideOptions || {} const { hideQuickBet, hideGroupLink } = cardHideOptions || {}
const { contractIds, highlightClassName } = highlightOptions || {} const { contractIds, highlightClassName } = highlightOptions || {}
@ -79,6 +81,7 @@ export function ContractsGrid(props: {
} }
hideQuickBet={hideQuickBet} hideQuickBet={hideQuickBet}
hideGroupLink={hideGroupLink} hideGroupLink={hideGroupLink}
trackingPostfix={trackingPostfix}
className={clsx( className={clsx(
'mb-4 break-inside-avoid-column overflow-hidden', // prevent content from wrapping (needs overflow on firefox) 'mb-4 break-inside-avoid-column overflow-hidden', // prevent content from wrapping (needs overflow on firefox)
contractIds?.includes(contract.id) && highlightClassName contractIds?.includes(contract.id) && highlightClassName

View File

@ -285,7 +285,10 @@ export function ContractPageContent(
{recommendedContracts.length > 0 && ( {recommendedContracts.length > 0 && (
<Col className="mt-2 gap-2 px-2 sm:px-0"> <Col className="mt-2 gap-2 px-2 sm:px-0">
<Title className="text-gray-700" text="Recommended" /> <Title className="text-gray-700" text="Recommended" />
<ContractsGrid contracts={recommendedContracts} /> <ContractsGrid
contracts={recommendedContracts}
trackingPostfix=" recommended"
/>
</Col> </Col>
)} )}
</Page> </Page>

View File

@ -213,8 +213,9 @@ function Section(props: {
<ContractCard <ContractCard
contract={m} contract={m}
hideGroupLink hideGroupLink
className="max-h-[200px] w-96 shrink-0" className="mb-2 max-h-[200px] w-96 shrink-0"
questionClass="line-clamp-3" questionClass="line-clamp-3"
trackingPostfix=" tournament"
/> />
)) ))
) : ( ) : (