config/userStore.jsx

  1. /**
  2. * @module Config
  3. * @category State
  4. */
  5. import { create } from "zustand";
  6. /**
  7. * @config
  8. * Store de Zustand para gestionar el estado del usuario.
  9. *
  10. * @typedef {Object} UserStore
  11. * @property {Object|null} user - Datos del usuario actual.
  12. * @property {function} setUser - Función para establecer el usuario actual.
  13. * @property {function} clearUser - Función para limpiar los datos del usuario actual.
  14. */
  15. /**
  16. * Hook personalizado para acceder y modificar el estado del usuario.
  17. *
  18. * @type {import('zustand').UseStore<UserStore>}
  19. */
  20. export const useUserStore = create((set) => ({
  21. user: null,
  22. error: null,
  23. /**
  24. * Establece los datos del usuario actual.
  25. * @param {Object} user - Datos del usuario.
  26. */
  27. setUser: (user) => set({ user, error: null }),
  28. setError: (error) => set({ error }),
  29. /**
  30. * Limpia los datos del usuario actual.
  31. */
  32. clearUser: () => set({ user: null }),
  33. }));