Untitled

 avatar
unknown
plain_text
10 months ago
861 B
14
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