Untitled
unknown
plain_text
a year ago
861 B
15
Indexable
// src/store/userStore.ts
import { create } from "zustand";
import { persist } from "zustand/middleware";
export type User = {
id: number;
name: string;
role: string;
};
export type UserState = {
user: User | null;
setUser: (user: User | null) => void;
clearUser: () => void;
};
export const useUserStore = create<UserState>()(
persist(
(set) => ({
user: null,
setUser: (user) => {
if (user) {
// role normalize → "Admin", " admin " vs. hep "admin"
const normalized = user.role?.toString().trim().toLowerCase() || "user";
set({ user: { ...user, role: normalized } });
} else {
set({ user: null });
}
},
clearUser: () => set({ user: null }),
}),
{
name: "user-store", // localStorage key
}
)
);
Editor is loading...
Leave a Comment