redux-devtools/packages/redux-devtools-app-core/src/reducers/theme.ts
Matt Oakes 96ac1f291a
Move the logic from @redux-devtools/app into @redux-devtools/app-core (#1655)
This change splits out the main logic from the Redux Devtools App into a new
core package but keeps the socket connection management in @redux-devtools/app.
The aim is to allow for easier reuse of the rest of the app in other envioronments
with their own transport methods, such as React Native or Electron.
2024-06-12 09:18:46 -04:00

28 lines
652 B
TypeScript

import { SchemeName, ThemeName } from '@redux-devtools/ui';
import { CHANGE_THEME } from '../constants/actionTypes';
import { CoreStoreAction } from '../actions';
export interface ThemeState {
readonly theme: ThemeName;
readonly scheme: SchemeName;
readonly colorPreference: 'auto' | 'light' | 'dark';
}
export function theme(
state: ThemeState = {
theme: 'default',
scheme: 'default',
colorPreference: 'auto',
},
action: CoreStoreAction,
) {
if (action.type === CHANGE_THEME) {
return {
theme: action.theme,
scheme: action.scheme,
colorPreference: action.colorPreference,
};
}
return state;
}