Files
App/components/provider.tsx
Violet Caulfield b24d082de8 fix build?
2025-01-20 09:56:30 -06:00

49 lines
1.1 KiB
TypeScript

import Client from "../api/client";
import { isUndefined } from "lodash";
import { createContext, ReactNode, useContext, useState } from "react";
interface JellifyContext {
loggedIn: boolean;
setLoggedIn: React.Dispatch<React.SetStateAction<boolean>>;
}
const JellifyContextInitializer = () => {
const [loggedIn, setLoggedIn] = useState<boolean>(
!isUndefined(Client.api) &&
!isUndefined(Client.user) &&
!isUndefined(Client.server)
);
return {
loggedIn,
setLoggedIn,
}
}
const JellifyContext = createContext<JellifyContext>({
loggedIn: false,
setLoggedIn: () => {}
});
export const JellifyProvider: ({ children }: {
children: ReactNode
}) => React.JSX.Element = ({ children }: { children: ReactNode }) => {
const {
loggedIn,
setLoggedIn
} = JellifyContextInitializer();
return (
<JellifyContext.Provider
value={{
loggedIn,
setLoggedIn
}}
>
{children}
</JellifyContext.Provider>
)
}
export const useJellifyContext = () => useContext(JellifyContext);