useRedirectAfterSignup
This commit is contained in:
parent
2e95ac449d
commit
50279bd864
|
@ -13,6 +13,7 @@ import { createUser } from 'web/lib/firebase/api'
|
|||
import { randomString } from 'common/util/random'
|
||||
import { identifyUser, setUserProperty } from 'web/lib/service/analytics'
|
||||
import { useStateCheckEquality } from 'web/hooks/use-state-check-equality'
|
||||
import { handleRedirectAfterSignup } from 'web/hooks/use-redirect-after-signup'
|
||||
|
||||
// Either we haven't looked up the logged in user yet (undefined), or we know
|
||||
// the user is not logged in (null), or we know the user is logged in.
|
||||
|
@ -62,11 +63,13 @@ export function AuthProvider(props: {
|
|||
// Note: Cap on localStorage size is ~5mb
|
||||
localStorage.setItem(CACHED_USER_KEY, JSON.stringify(current))
|
||||
setCachedReferralInfoForUser(current.user)
|
||||
handleRedirectAfterSignup(current.user)
|
||||
} else {
|
||||
// User logged out; reset to null
|
||||
deleteTokenCookies()
|
||||
setAuthUser(null)
|
||||
localStorage.removeItem(CACHED_USER_KEY)
|
||||
handleRedirectAfterSignup(null)
|
||||
}
|
||||
})
|
||||
}, [setAuthUser])
|
||||
|
|
30
web/hooks/use-redirect-after-signup.ts
Normal file
30
web/hooks/use-redirect-after-signup.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { User } from 'common/user'
|
||||
import dayjs from 'dayjs'
|
||||
import { useEffect } from 'react'
|
||||
|
||||
import { safeLocalStorage } from 'web/lib/util/local'
|
||||
|
||||
type page_redirects = 'twitch'
|
||||
|
||||
const key = 'redirect-after-signup'
|
||||
|
||||
export const useRedirectAfterSignup = (page: page_redirects) => {
|
||||
useEffect(() => {
|
||||
safeLocalStorage()?.setItem(key, page)
|
||||
}, [page])
|
||||
}
|
||||
|
||||
export const handleRedirectAfterSignup = (user: User | null) => {
|
||||
const redirect = safeLocalStorage()?.getItem(key)
|
||||
safeLocalStorage()?.removeItem(key)
|
||||
|
||||
if (!user || !redirect) return
|
||||
|
||||
const now = dayjs().utc()
|
||||
const userCreatedTime = dayjs(user.createdTime)
|
||||
if (now.diff(userCreatedTime, 'minute') > 5) return
|
||||
|
||||
if (redirect === 'twitch') {
|
||||
// TODO: actual Twitch redirect
|
||||
}
|
||||
}
|
|
@ -9,8 +9,10 @@ import { withTracking } from 'web/lib/service/analytics'
|
|||
import { Row } from 'web/components/layout/row'
|
||||
import { Button } from 'web/components/button'
|
||||
import { useTracking } from 'web/hooks/use-tracking'
|
||||
import { useRedirectAfterSignup } from 'web/hooks/use-redirect-after-signup'
|
||||
|
||||
export default function TwitchLandingPage() {
|
||||
useRedirectAfterSignup('twitch')
|
||||
useSaveReferral()
|
||||
useTracking('view twitch landing page')
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user