Skip to content

Commit

Permalink
🔥 wip: add namespace support
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
zcubbs committed Oct 24, 2023
1 parent c2a3a55 commit 8adfdf8
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
15 changes: 7 additions & 8 deletions cmd/server/web/src/components/ui/user-nav.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "./avatar";
import {Avatar, AvatarFallback, AvatarImage,} from "./avatar";
import {Button} from "./button";
import {
DropdownMenu,
Expand All @@ -15,17 +11,17 @@ import {
} from "./dropdown-menu";
import {useContext} from "react";
import AuthContext, {Auth} from "@/context/auth-provider.tsx";
import {useNavigate} from "react-router-dom";
import axios from "@/api/axios.ts";

export function UserNav() {
const {setAuth} = useContext(AuthContext);
const navigate = useNavigate();

const logout = async () => {
try {
const savedAuthData = localStorage.getItem('authData');
const authData: Auth = JSON.parse(savedAuthData);

// Check if savedAuthData is not null before parsing
const authData: Auth = savedAuthData ? JSON.parse(savedAuthData) : null;
const accessToken = authData ? authData.access_token : '';

const response = await axios.post('/api/v1/logout_user',
Expand All @@ -41,6 +37,9 @@ export function UserNav() {
if (response.status === 200) {
// Clearing auth data from localStorage and context
localStorage.removeItem('authData');
if (setAuth) {
setAuth(null);
}

// Redirect to the login page or another page as per your application flow
location.href = '/login';
Expand Down
9 changes: 5 additions & 4 deletions cmd/server/web/src/context/auth-provider.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {createContext, Dispatch, PropsWithChildren, SetStateAction, useMemo, useState} from "react";

interface AuthContextProps {
auth?: Auth;
setAuth?: Dispatch<SetStateAction<Auth>>;
auth?: Auth | null;
setAuth?: Dispatch<SetStateAction<Auth | null>>;
}

const AuthContext = createContext<AuthContextProps>({});
Expand All @@ -28,9 +28,10 @@ export type Auth = {
export const AuthProvider = ({ children }: PropsWithChildren<{}>) => {
// Loading auth data from localStorage
const savedAuthData = localStorage.getItem('authData');
const initialAuth: Auth = savedAuthData ? JSON.parse(savedAuthData) : undefined;
const initialAuth: Auth | null = savedAuthData ? JSON.parse(savedAuthData) : null;

const [auth, setAuth] = useState<Auth>(initialAuth);
// Allow the state to be Auth or null
const [auth, setAuth] = useState<Auth | null>(initialAuth);

const value = useMemo(() => ({ auth, setAuth }), [auth, setAuth]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export function UserRegisterForm({className, ...props}: UserRegisterFormProps) {
const [name, setName] = useState<string>("")
const [email, setEmail] = useState<string>("")
const [password, setPassword] = useState<string>("")
const {auth, setAuth} = useAuth();
const {auth} = useAuth();

async function onSubmit(event: React.SyntheticEvent) {
event.preventDefault()
Expand Down

0 comments on commit 8adfdf8

Please sign in to comment.