mirror of
https://github.com/usatiuk/writer.git
synced 2025-10-28 16:07:49 +01:00
33 lines
860 B
TypeScript
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;
|
|
}
|
|
};
|