config/userStore.jsx

/**
 * @module Config
 * @category State
 */
import { create } from "zustand";

/**
 * @config
 * Store de Zustand para gestionar el estado del usuario.
 *
 * @typedef {Object} UserStore
 * @property {Object|null} user - Datos del usuario actual.
 * @property {function} setUser - Función para establecer el usuario actual.
 * @property {function} clearUser - Función para limpiar los datos del usuario actual.
 */

/**
 * Hook personalizado para acceder y modificar el estado del usuario.
 *
 * @type {import('zustand').UseStore<UserStore>}
 */
export const useUserStore = create((set) => ({
  user: null,
  error: null,
  /**
   * Establece los datos del usuario actual.
   * @param {Object} user - Datos del usuario.
   */
  setUser: (user) => set({ user, error: null }),
  setError: (error) => set({ error }),
  /**
   * Limpia los datos del usuario actual.
   */
  clearUser: () => set({ user: null }),
}));