From c2dd2e89b3106d4909d9051d7c1fff4549f7f3e0 Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Thu, 3 Apr 2025 11:11:44 +0300 Subject: [PATCH] feat: initial auth provider --- src/providers/AuthProvider.tsx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/providers/AuthProvider.tsx diff --git a/src/providers/AuthProvider.tsx b/src/providers/AuthProvider.tsx new file mode 100644 index 0000000..60a2d18 --- /dev/null +++ b/src/providers/AuthProvider.tsx @@ -0,0 +1,29 @@ +import { signal, Signal } from "@preact/signals"; +import { createContext, JSX } from "preact"; +import { useContext } from "preact/hooks"; + +interface AppContextValue { + isLoggedIn: Signal; +} + +const AppContext = createContext({ + isLoggedIn: signal(false), +}); + +const AppProvider = ({ children }: { children: JSX.Element }) => { + const value: AppContextValue = { + isLoggedIn: signal(false), + }; + + return {children}; +}; + +const useAppContext = () => { + const context = useContext(AppContext); + if (!context) { + throw new Error("useAppContext must be used within AppProvider"); + } + return context; +}; + +export { AppProvider, useAppContext };