// Copyright (c) 2020-2021 Drew Lemmy
// This file is part of KristWeb 2 under GPL-3.0.
// Full details: https://github.com/tmpim/KristWeb2/blob/master/LICENSE.txt
import { createReducer, ActionType } from "typesafe-actions";
import { loadSettings, SettingsState } from "../../utils/settings";
import { setBooleanSetting } from "../actions/SettingsActions";
export type State = SettingsState;
export function getInitialSettingsState(): State {
return loadSettings();
}
export const SettingsReducer = createReducer({} as State)
.handleAction(setBooleanSetting, (state: State, action: ActionType<typeof setBooleanSetting>) => ({
...state,
[action.payload.settingName]: action.payload.value
}));