Initial commit
This commit is contained in:
37
resources/js/stores/userStore.tsx
Normal file
37
resources/js/stores/userStore.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
import { create } from 'zustand';
|
||||
import { persist } from 'zustand/middleware';
|
||||
|
||||
export type User = {
|
||||
id: number;
|
||||
name: string;
|
||||
email: string;
|
||||
is_admin?: boolean;
|
||||
is_active?: boolean;
|
||||
// případně další pole: roles, callsign, atd.
|
||||
};
|
||||
|
||||
type UserState = {
|
||||
user: User | null;
|
||||
setUser: (user: User | null) => void;
|
||||
clearUser: () => void;
|
||||
};
|
||||
|
||||
|
||||
|
||||
export const useUserStore = create<UserState>()(
|
||||
persist(
|
||||
(set) => ({
|
||||
user: null,
|
||||
setUser: (user) => set({ user }),
|
||||
clearUser: () => set({ user: null }),
|
||||
}),
|
||||
{ name: 'user-store' }
|
||||
)
|
||||
);
|
||||
|
||||
// použití:
|
||||
// import { useUserStore } from '@/stores/userStore';
|
||||
// const user = useUserStore((s) => s.user); // získání přihlášeného uživatele
|
||||
// const isAuthenticated = !!user;
|
||||
// const setUser = useUserStore((s) => s.setUser);
|
||||
// const clearUser = useUserStore((s) => s.clearUser);
|
||||
Reference in New Issue
Block a user