@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
69 lines • 2.88 kB
JavaScript
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