diff options
| author | Max Nanis | 2026-09-11 18:16:06 -0700 |
|---|---|---|
| committer | Max Nanis | 2026-09-11 18:16:06 -0700 |
| commit | 11d63b171501b9c29398133b795c3bcc1ae85a1b (patch) | |
| tree | 9ef60f1723357889f8bd72420a0c6f7ae5153fa1 /jb-ui/src/AuthContext.tsx | |
| parent | edff9381275d90d7be5f078430554ae592a27f5d (diff) | |
| download | amt-jb-11d63b171501b9c29398133b795c3bcc1ae85a1b.tar.gz amt-jb-11d63b171501b9c29398133b795c3bcc1ae85a1b.zip | |
using RTK with session login. start of magic token request
Diffstat (limited to 'jb-ui/src/AuthContext.tsx')
| -rw-r--r-- | jb-ui/src/AuthContext.tsx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/jb-ui/src/AuthContext.tsx b/jb-ui/src/AuthContext.tsx new file mode 100644 index 0000000..85bcdb0 --- /dev/null +++ b/jb-ui/src/AuthContext.tsx @@ -0,0 +1,28 @@ +// AuthContext.jsx +import { createContext, useContext, useEffect, useState } from "react"; + +const AuthContext = createContext(null); + +export function AuthProvider({ children }) { + const [user, setUser] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + fetch("/api/me", { credentials: "include" }) + .then((res) => (res.ok ? res.json() : null)) + .then(setUser) + .finally(() => setLoading(false)); + }, []); + + return ( + <AuthContext.Provider + value={{ user, isLoggedIn: !!user, loading, setUser }} + > + {children} + </AuthContext.Provider> + ); +} + +export function useAuth() { + return useContext(AuthContext); +} |
