UNPKG

expo-router-redux-template

Version:

An expo template featuring expo-router, reduxjs-toolkit, react-native-reanimated, and redux-persist for cross-platform mobile app development.

38 lines (32 loc) 1.14 kB
import AsyncStorage from '@react-native-async-storage/async-storage'; import { combineReducers } from '@reduxjs/toolkit'; import { persistReducer } from 'redux-persist'; import tempReducer from '@/features/other/tempSlice'; import authReducer from '@/features/auth/authSlice'; import settingsReducer from '@/features/settings/settingsSlice'; // Configuration for persisting the root state const rootPersistConfig = { key: 'root', storage: AsyncStorage, blacklist: ['temp'], }; // Combine individual reducers into a single rootReducer const combinedReducer = combineReducers({ temp: tempReducer, auth: authReducer, settings: settingsReducer, }); type MainReducer = ReturnType<typeof combinedReducer>; // Create a persisted reducer const persistedReducer = persistReducer<MainReducer>( rootPersistConfig, combinedReducer ); // Define the root reducer for the Redux store export default function reducer(state: any, action: any) { // Reset the store if the action type is 'RESET_STORE' if (action.type === 'RESET_STORE') { state = undefined; } return persistedReducer(state, action); }