refactor(old app): login migration to new app

This commit is contained in:
2025-10-21 20:22:21 -05:00
parent a2a8e0ef9f
commit eb3fa4dd52
28 changed files with 2273 additions and 2140 deletions

View File

@@ -1,43 +1,52 @@
import {User} from "@/types/users";
import axios from "axios";
import {create} from "zustand";
import { create } from "zustand";
import { User } from "@/types/users";
export type SessionState = {
user: User | null;
token: string | null;
setSession: (user: User | null, token: string | null) => void;
clearSession: () => void;
user: User | null;
token: string | null;
setSession: (user: User | null, token: string | null) => void;
clearSession: () => void;
};
export const useSessionStore = create<SessionState>((set) => {
// Initialize token from localStorage, but user remains in memory only
const storedToken = localStorage.getItem("auth_token");
// Initialize token from localStorage, but user remains in memory only
const storedToken = localStorage.getItem("auth_token");
return {
user: null, // User is NOT stored in localStorage
token: storedToken || null,
return {
user: null, // User is NOT stored in localStorage
token: storedToken || null,
setSession: async (user: any, token) => {
if (token) {
localStorage.setItem("auth_token", token);
const response = await axios.get("/api/auth/getuseraccess", {
headers: {Authorization: `Bearer ${token}`},
});
const data = response.data; //await response.json();
user = {...user, roles: data.data};
} else {
localStorage.removeItem("auth_token");
}
setSession: async (user: any, token) => {
if (token) {
localStorage.setItem("auth_token", token);
const response = await axios.get("/api/auth/session", {
withCredentials: true,
});
const userRoles = await axios.get("/api/auth/getuseraccess", {
withCredentials: true,
});
const data = response.data; //await response.json();
//console.log("Setting session:", {user, token});
set({user, token});
},
const rawUser = data.data.user;
// user.map((u: any) => ({
// ...u,
// roles: userRoles.data.data,
// }));
user = { ...rawUser, roles: userRoles.data.data };
} else {
localStorage.removeItem("auth_token");
}
clearSession: () => {
localStorage.removeItem("auth_token");
set({user: null, token: null});
},
};
//console.log("Setting session:", {user, token});
set({ user, token });
},
clearSession: () => {
localStorage.removeItem("auth_token");
set({ user: null, token: null });
},
};
});
export type SessionType = ReturnType<typeof useSessionStore>;

View File

@@ -0,0 +1,15 @@
import { create } from "zustand";
interface SettingState {
username: string;
password: string;
clearUser: () => void;
setUserInfo: (username: string, password: string) => void;
}
export const useAuthStore = create<SettingState>()((set) => ({
username: "",
password: "",
setUserInfo: (username, password) => set({ username, password }),
clearUser: () => set({ username: "", password: "" }),
}));

View File

@@ -1,38 +1,41 @@
import axios from "axios";
import { create } from "zustand";
import { Modules } from "@/types/modules";
import axios from "axios";
interface SettingState {
userRoles: Modules[];
userRoles: Modules[];
fetchUserRoles: () => Promise<void>;
setUserRoles: (userRoles: Modules[]) => void;
fetchUserRoles: () => Promise<void>;
setUserRoles: (userRoles: Modules[]) => void;
}
interface FetchModulesResponse {
data: Modules[];
data: Modules[];
}
export const useGetUserRoles = create<SettingState>()((set) => ({
userRoles: [],
setUserRoles: (userRoles) => set({ userRoles }),
fetchUserRoles: async () => {
try {
//const response = await axios.get<{data: Setting[]}>(`${process.env.NEXT_PUBLIC_URL}/api/settings/client`);
const token = localStorage.getItem("auth_token");
if (token) {
const response = await axios.get("/api/auth/getuseraccess", {
headers: { Authorization: `Bearer ${token}` },
});
const data: FetchModulesResponse = response.data; //await response.json();
userRoles: [],
setUserRoles: (userRoles) => set({ userRoles }),
fetchUserRoles: async () => {
try {
//const response = await axios.get<{data: Setting[]}>(`${process.env.NEXT_PUBLIC_URL}/api/settings/client`);
const token = localStorage.getItem("auth_token");
if (token) {
const response = await axios.get("/api/auth/getuseraccess", {
withCredentials: true,
});
const data: FetchModulesResponse = response?.data; //await response.json();
//console.log(data);
set({ userRoles: data.data });
} else {
//console.log(data);
set({ userRoles: [] });
}
} catch (error) {
console.error("Failed to fetch settings:", error);
}
},
if (response.status === 401) {
set({ userRoles: [] });
}
set({ userRoles: data?.data });
} else {
//console.log(data);
set({ userRoles: [] });
}
} catch (error) {
set({ userRoles: [] });
console.error("Failed to fetch settings:", error);
}
},
}));