analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
105 lines (102 loc) • 2.99 kB
JavaScript
;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