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.

32 lines (23 loc) 770 B
// Import necessary module from Redux Toolkit import { createSlice } from '@reduxjs/toolkit'; // Define the possible themes as 'dark', 'light', or 'auto' export type Theme = 'dark' | 'light' | 'auto'; export type SettingsState = { theme: Theme; }; export const themes: Theme[] = ['auto', 'dark', 'light']; const initialState: SettingsState = { theme: themes[0], // Default theme is 'auto' }; const slice = createSlice({ name: 'settings', initialState, reducers: { updateTheme(state, { payload }: { payload: Theme }) { state.theme = payload; // Update the theme based on the provided payload }, }, }); const settingsReducer = slice.reducer; export const { updateTheme } = slice.actions; export default settingsReducer;