mirror of
https://github.com/usatiuk/photos.git
synced 2025-10-28 23:37:48 +01:00
33 lines
883 B
TypeScript
33 lines
883 B
TypeScript
import { Reducer } from "react";
|
|
import { UserAction, UserTypes } from "~src/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,
|
|
): ILocalSettingsState => {
|
|
const { darkMode } = state;
|
|
switch (action.type) {
|
|
case LocalSettingsTypes.TOGGLE_DARK_MODE:
|
|
return { ...state, darkMode: !darkMode };
|
|
case UserTypes.USER_LOGOUT:
|
|
return defaultLocalSettingsState;
|
|
default:
|
|
return state;
|
|
break;
|
|
}
|
|
return state;
|
|
};
|