Files
writer/frontend/src/redux/localSettings/reducer.ts

33 lines
860 B
TypeScript

import { Reducer } from "react";
import { UserAction, UserTypes } from "~redux/user/actions";
import { LocalSettingsAction, LocalSettingsTypes } from "./actions";
export interface ILocalSettingsState {
darkMode: boolean;
}
const defaultLocalSettingsState: ILocalSettingsState = {
darkMode: false,
};
export const localSettingsReducer: Reducer<
ILocalSettingsState,
LocalSettingsAction
> = (
state: ILocalSettingsState = defaultLocalSettingsState,
action: LocalSettingsAction | UserAction,
) => {
switch (action.type) {
case LocalSettingsTypes.TOGGLE_DARK_MODE: {
const { darkMode } = state;
return { ...state, darkMode: !darkMode };
}
case UserTypes.USER_LOGOUT:
return defaultLocalSettingsState;
default:
return state;
break;
}
};