aboutsummaryrefslogtreecommitdiff
path: root/jb-ui/src/AuthContext.tsx
diff options
context:
space:
mode:
authorMax Nanis2026-09-11 18:16:06 -0700
committerMax Nanis2026-09-11 18:16:06 -0700
commit11d63b171501b9c29398133b795c3bcc1ae85a1b (patch)
tree9ef60f1723357889f8bd72420a0c6f7ae5153fa1 /jb-ui/src/AuthContext.tsx
parentedff9381275d90d7be5f078430554ae592a27f5d (diff)
downloadamt-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.tsx28
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);
+}