UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

69 lines 2.88 kB
var _a; import { createSlice } from '@reduxjs/toolkit'; var initialState = { accessToken: null, refreshToken: null, user: null, loadingInitial: true, isAuthenticating: false, initialized: false, signedToken: null, }; var authSlice = createSlice({ name: 'auth', initialState: initialState, reducers: { // Token management setTokens: function (state, action) { state.accessToken = action.payload.accessToken; if (action.payload.refreshToken !== undefined) { state.refreshToken = action.payload.refreshToken; } }, clearTokens: function (state) { state.accessToken = null; state.refreshToken = null; }, // User management setUser: function (state, action) { state.user = action.payload; }, // Loading states setLoadingInitial: function (state, action) { state.loadingInitial = action.payload; }, setAuthenticating: function (state, action) { state.isAuthenticating = action.payload; }, // Initialization setInitialized: function (state, action) { state.initialized = action.payload; }, setSignedToken: function (state, action) { state.signedToken = action.payload; }, // Complete auth reset (for signout) resetAuth: function (state) { state.accessToken = null; state.refreshToken = null; state.user = null; state.isAuthenticating = false; // Keep loadingInitial and initialized as they are }, // Individual token setter for compatibility setRefreshToken: function (state, action) { state.refreshToken = action.payload; }, }, }); export var setTokens = (_a = authSlice.actions, _a.setTokens), clearTokens = _a.clearTokens, setUser = _a.setUser, setLoadingInitial = _a.setLoadingInitial, setAuthenticating = _a.setAuthenticating, setInitialized = _a.setInitialized, setSignedToken = _a.setSignedToken, resetAuth = _a.resetAuth, setRefreshToken = _a.setRefreshToken; // Selectors export var selectAccessToken = function (state) { return state.auth.accessToken; }; export var selectRefreshToken = function (state) { return state.auth.refreshToken; }; export var selectUser = function (state) { return state.auth.user; }; export var selectLoadingInitial = function (state) { return state.auth.loadingInitial; }; export var selectIsAuthenticating = function (state) { return state.auth.isAuthenticating; }; export var selectInitialized = function (state) { return state.auth.initialized; }; export var selectSignedToken = function (state) { return state.auth.signedToken; }; export default authSlice.reducer; //# sourceMappingURL=authSlice.js.map