UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

105 lines (102 loc) 2.99 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/store/authStore.ts var _zustand = require('zustand'); var _middleware = require('zustand/middleware'); var useAuthStore = _zustand.create.call(void 0, )( _middleware.persist.call(void 0, (set, get) => ({ user: null, tokens: null, isAuthenticated: false, profiles: [], selectedProfile: null, sessionInfo: null, /** * Set the current user * @param {User | null} user - The user object or null to clear * @returns {void} */ setUser: (user) => { set({ user, isAuthenticated: !!user }); }, /** * Set the authentication tokens * @param {AuthTokens | null} tokens - The authentication tokens or null to clear * @returns {void} */ setTokens: (tokens) => { set({ tokens }); }, /** * Set user profiles * @param {UserProfile[]} profiles - Array of user profiles * @returns {void} */ setProfiles: (profiles) => { set({ profiles }); }, /** * Set the selected profile * @param {UserProfile | null} profile - The selected profile or null to clear * @returns {void} */ setSelectedProfile: (profile) => { set({ selectedProfile: profile }); }, /** * Set the session info * @param {SessionInfo | null} sessionInfo - The session info or null to clear * @returns {void} */ setSessionInfo: (sessionInfo) => { set({ sessionInfo }); }, /** * Sign in user with complete auth data * @param {User} user - The user object * @param {AuthTokens} tokens - The authentication tokens * @param {UserProfile[]} profiles - Array of user profiles * @returns {void} */ signIn: (user, tokens, profiles) => { set({ user, tokens, profiles, isAuthenticated: true }); }, /** * Sign out user and clear all auth data * @returns {void} */ signOut: () => { set({ user: null, tokens: null, isAuthenticated: false, profiles: [], selectedProfile: null, sessionInfo: null }); }, /** * Update user session data (after login completion) * @param {Partial<User>} sessionData - Partial user data to update * @returns {void} */ updateUserSession: (sessionData) => { const { user } = get(); if (user) { const updatedUser = { ...user, ...sessionData }; set({ user: updatedUser }); } } }), { name: "@auth-storage:analytica:v2" /* AUTH_STORAGE */, storage: _middleware.createJSONStorage.call(void 0, () => localStorage) } ) ); exports.useAuthStore = useAuthStore; //# sourceMappingURL=chunk-DRIFBRUS.js.map