@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
79 lines • 3.73 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.selectSignedToken = exports.selectInitialized = exports.selectIsAuthenticating = exports.selectLoadingInitial = exports.selectUser = exports.selectRefreshToken = exports.selectAccessToken = exports.setRefreshToken = exports.resetAuth = exports.setSignedToken = exports.setInitialized = exports.setAuthenticating = exports.setLoadingInitial = exports.setUser = exports.clearTokens = exports.setTokens = void 0;
var toolkit_1 = require("@reduxjs/toolkit");
var initialState = {
accessToken: null,
refreshToken: null,
user: null,
loadingInitial: true,
isAuthenticating: false,
initialized: false,
signedToken: null,
};
var authSlice = (0, toolkit_1.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;
},
},
});
exports.setTokens = (_a = authSlice.actions, _a.setTokens), exports.clearTokens = _a.clearTokens, exports.setUser = _a.setUser, exports.setLoadingInitial = _a.setLoadingInitial, exports.setAuthenticating = _a.setAuthenticating, exports.setInitialized = _a.setInitialized, exports.setSignedToken = _a.setSignedToken, exports.resetAuth = _a.resetAuth, exports.setRefreshToken = _a.setRefreshToken;
// Selectors
var selectAccessToken = function (state) { return state.auth.accessToken; };
exports.selectAccessToken = selectAccessToken;
var selectRefreshToken = function (state) { return state.auth.refreshToken; };
exports.selectRefreshToken = selectRefreshToken;
var selectUser = function (state) { return state.auth.user; };
exports.selectUser = selectUser;
var selectLoadingInitial = function (state) { return state.auth.loadingInitial; };
exports.selectLoadingInitial = selectLoadingInitial;
var selectIsAuthenticating = function (state) { return state.auth.isAuthenticating; };
exports.selectIsAuthenticating = selectIsAuthenticating;
var selectInitialized = function (state) { return state.auth.initialized; };
exports.selectInitialized = selectInitialized;
var selectSignedToken = function (state) { return state.auth.signedToken; };
exports.selectSignedToken = selectSignedToken;
exports.default = authSlice.reducer;
//# sourceMappingURL=authSlice.js.map