overleaf/services/web/frontend/js/shared/context/user-context.tsx
Alf Eaton 0cde5be165 Merge pull request #14709 from overleaf/ae-context-typescript
Convert React context providers to TypeScript [don't squash!]

GitOrigin-RevId: d92a91798286978410956ab791d73c17c5086d86
2024-01-29 09:03:04 +00:00

23 lines
620 B
TypeScript

import { createContext, FC, useContext } from 'react'
import getMeta from '../../utils/meta'
import { User } from '../../../../types/user'
export const UserContext = createContext<User | undefined>(undefined)
export const UserProvider: FC = ({ children }) => {
const user = 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
}