| 12345678910111213141516171819202122232425 |
- import { createContext, FC, useContext, useMemo } from 'react'
- import getMeta from '../../utils/meta'
- import { LoggedOutUser, User } from '../../../../types/user'
- export const UserContext = createContext<User | LoggedOutUser | undefined>(
- undefined
- )
- export const UserProvider: FC<React.PropsWithChildren> = ({ children }) => {
- const user = useMemo(() => getMeta('ol-user'), [])
- return <UserContext.Provider value={user}>{children}</UserContext.Provider>
- }
- export function useUserContext() {
- const context = useContext(UserContext)
- if (!context) {
- throw new Error(
- 'useUserContext is only available inside UserContext, or `ol-user` meta is not defined'
- )
- }
- return context
- }
|