UNPKG

@replyke/core

Version:

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

73 lines 3.27 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectSignedToken = exports.selectInitialized = exports.selectIsAuthenticating = exports.selectUser = exports.selectRefreshToken = exports.selectAccessToken = exports.setRefreshToken = exports.resetAuth = exports.setSignedToken = exports.setInitialized = exports.setAuthenticating = exports.setUser = exports.clearTokens = exports.setTokens = void 0; const toolkit_1 = require("@reduxjs/toolkit"); const initialState = { accessToken: null, refreshToken: null, user: null, isAuthenticating: false, initialized: false, signedToken: null, }; const authSlice = (0, toolkit_1.createSlice)({ name: 'auth', initialState, reducers: { // Token management setTokens: (state, action) => { state.accessToken = action.payload.accessToken; if (action.payload.refreshToken !== undefined) { state.refreshToken = action.payload.refreshToken; } }, clearTokens: (state) => { state.accessToken = null; state.refreshToken = null; }, // User management setUser: (state, action) => { state.user = action.payload; }, // Loading states setAuthenticating: (state, action) => { state.isAuthenticating = action.payload; }, // Initialization setInitialized: (state, action) => { state.initialized = action.payload; }, setSignedToken: (state, action) => { state.signedToken = action.payload; }, // Complete auth reset (for signout) resetAuth: (state) => { state.accessToken = null; state.refreshToken = null; state.user = null; state.isAuthenticating = false; // Keep initialized as it is }, // Individual token setter for compatibility setRefreshToken: (state, action) => { state.refreshToken = action.payload; }, }, }); _a = authSlice.actions, exports.setTokens = _a.setTokens, exports.clearTokens = _a.clearTokens, exports.setUser = _a.setUser, exports.setAuthenticating = _a.setAuthenticating, exports.setInitialized = _a.setInitialized, exports.setSignedToken = _a.setSignedToken, exports.resetAuth = _a.resetAuth, exports.setRefreshToken = _a.setRefreshToken; // Selectors - use namespaced state for dual-mode support const selectAccessToken = (state) => state.replyke.auth.accessToken; exports.selectAccessToken = selectAccessToken; const selectRefreshToken = (state) => state.replyke.auth.refreshToken; exports.selectRefreshToken = selectRefreshToken; const selectUser = (state) => state.replyke.auth.user; exports.selectUser = selectUser; const selectIsAuthenticating = (state) => state.replyke.auth.isAuthenticating; exports.selectIsAuthenticating = selectIsAuthenticating; const selectInitialized = (state) => state.replyke.auth.initialized; exports.selectInitialized = selectInitialized; const selectSignedToken = (state) => state.replyke.auth.signedToken; exports.selectSignedToken = selectSignedToken; exports.default = authSlice.reducer; //# sourceMappingURL=authSlice.js.map