mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-30 06:32:24 +00:00
- Integrated Redux state management into the Onboarding component by dispatching the setOnboarded action upon completion. - Updated authSlice to include isOnboarded state, allowing for tracking of onboarding status. - Modified the Redux store configuration to persist the onboarding status alongside the token, improving user experience and state consistency. These changes streamline the onboarding process and enhance state management for user authentication.
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { configureStore } from '@reduxjs/toolkit';
|
|
import { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';
|
|
import storage from 'redux-persist/lib/storage';
|
|
import authReducer from './authSlice';
|
|
import socketReducer from './socketSlice';
|
|
|
|
// Persist config for auth only
|
|
const authPersistConfig = {
|
|
key: 'auth',
|
|
storage,
|
|
// Persist token and onboarding status
|
|
whitelist: ['token', 'isOnboarded'],
|
|
};
|
|
|
|
const persistedAuthReducer = persistReducer(authPersistConfig, authReducer);
|
|
|
|
// Get logger only in dev mode
|
|
let loggerMiddleware: unknown = undefined;
|
|
if (import.meta.env.DEV) {
|
|
try {
|
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
const createLogger = require('redux-logger');
|
|
loggerMiddleware = createLogger.createLogger();
|
|
} catch {
|
|
// Logger not available, continue without it
|
|
}
|
|
}
|
|
|
|
export const store = configureStore({
|
|
reducer: {
|
|
auth: persistedAuthReducer,
|
|
socket: socketReducer,
|
|
},
|
|
middleware: (getDefaultMiddleware) => {
|
|
const middleware = getDefaultMiddleware({
|
|
serializableCheck: {
|
|
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
|
|
},
|
|
});
|
|
|
|
// Add redux-logger in development
|
|
if (loggerMiddleware) {
|
|
return middleware.concat(loggerMiddleware);
|
|
}
|
|
|
|
return middleware;
|
|
},
|
|
});
|
|
|
|
export const persistor = persistStore(store);
|
|
|
|
export type RootState = ReturnType<typeof store.getState>;
|
|
export type AppDispatch = typeof store.dispatch;
|