diff --git a/frontend/features/AuthFlow/AuthFlowComponent.spec.tsx b/frontend/features/AuthFlow/AuthFlowComponent.spec.tsx
new file mode 100644
index 00000000..fe8f4b57
--- /dev/null
+++ b/frontend/features/AuthFlow/AuthFlowComponent.spec.tsx
@@ -0,0 +1,10 @@
+import React from "react";
+import { describe, it, expect } from "vitest";
+import { render, screen } from "@testing-library/react";
+import { AuthFlowComponent } from "./AuthFlowComponent";
+describe("AuthFlowComponent", () => {
+ it("renders correctly", () => {
+ render();
+ expect(screen.getByText("Please log in")).toBeDefined();
+ });
+});
diff --git a/frontend/features/AuthFlow/AuthFlowComponent.tsx b/frontend/features/AuthFlow/AuthFlowComponent.tsx
new file mode 100644
index 00000000..fbd84db5
--- /dev/null
+++ b/frontend/features/AuthFlow/AuthFlowComponent.tsx
@@ -0,0 +1,17 @@
+import React from "react";
+import { useAuthFlow } from "./useAuthFlow";
+export const AuthFlowComponent: React.FC = () => {
+ const { user, isAuthenticated, logout } = useAuthFlow();
+ if (!isAuthenticated) return
Please log in
;
+ return (
+
+
Welcome, {user?.email}
+
+
+ );
+};
diff --git a/frontend/features/AuthFlow/AuthFlowStore.ts b/frontend/features/AuthFlow/AuthFlowStore.ts
new file mode 100644
index 00000000..d183df6e
--- /dev/null
+++ b/frontend/features/AuthFlow/AuthFlowStore.ts
@@ -0,0 +1,7 @@
+import { createContext } from "react";
+import { AuthState, AuthUser } from "./AuthFlowTypes";
+export interface AuthStore extends AuthState {
+ login: (user: AuthUser) => void;
+ logout: () => void;
+}
+export const AuthFlowContext = createContext(undefined);
diff --git a/frontend/features/AuthFlow/AuthFlowTypes.ts b/frontend/features/AuthFlow/AuthFlowTypes.ts
new file mode 100644
index 00000000..3ef0ac3a
--- /dev/null
+++ b/frontend/features/AuthFlow/AuthFlowTypes.ts
@@ -0,0 +1,9 @@
+export interface AuthUser {
+ id: string;
+ email: string;
+ token: string;
+}
+export interface AuthState {
+ user: AuthUser | null;
+ isAuthenticated: boolean;
+}
diff --git a/frontend/features/AuthFlow/useAuthFlow.ts b/frontend/features/AuthFlow/useAuthFlow.ts
new file mode 100644
index 00000000..935063a8
--- /dev/null
+++ b/frontend/features/AuthFlow/useAuthFlow.ts
@@ -0,0 +1,8 @@
+import { useState } from "react";
+import { AuthUser } from "./AuthFlowTypes";
+export const useAuthFlow = () => {
+ const [user, setUser] = useState(null);
+ const login = (u: AuthUser) => setUser(u);
+ const logout = () => setUser(null);
+ return { user, isAuthenticated: !!user, login, logout };
+};