Pass page props user to auth provider if present
This commit is contained in:
parent
fd308151b3
commit
235bc9db28
|
@ -1,4 +1,4 @@
|
||||||
import { createContext, useEffect } from 'react'
|
import { ReactNode, createContext, useEffect } from 'react'
|
||||||
import { User } from 'common/user'
|
import { User } from 'common/user'
|
||||||
import { onIdTokenChanged } from 'firebase/auth'
|
import { onIdTokenChanged } from 'firebase/auth'
|
||||||
import {
|
import {
|
||||||
|
@ -28,11 +28,11 @@ const ensureDeviceToken = () => {
|
||||||
return deviceToken
|
return deviceToken
|
||||||
}
|
}
|
||||||
|
|
||||||
export const AuthContext = createContext<AuthUser>(null)
|
export const AuthContext = createContext<AuthUser>(undefined)
|
||||||
|
|
||||||
export function AuthProvider({ children }: any) {
|
|
||||||
const [authUser, setAuthUser] = useStateCheckEquality<AuthUser>(undefined)
|
|
||||||
|
|
||||||
|
export function AuthProvider(props: { children: ReactNode; user?: AuthUser }) {
|
||||||
|
const { children, user } = props
|
||||||
|
const [authUser, setAuthUser] = useStateCheckEquality<AuthUser>(user)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const cachedUser = localStorage.getItem(CACHED_USER_KEY)
|
const cachedUser = localStorage.getItem(CACHED_USER_KEY)
|
||||||
setAuthUser(cachedUser && JSON.parse(cachedUser))
|
setAuthUser(cachedUser && JSON.parse(cachedUser))
|
||||||
|
|
|
@ -79,7 +79,7 @@ function MyApp({ Component, pageProps }: AppProps) {
|
||||||
content="width=device-width, initial-scale=1, maximum-scale=1"
|
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||||
/>
|
/>
|
||||||
</Head>
|
</Head>
|
||||||
<AuthProvider>
|
<AuthProvider user={pageProps.user}>
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<Welcome {...pageProps} />
|
<Welcome {...pageProps} />
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
|
|
Loading…
Reference in New Issue
Block a user