Newer
Older
CrypticOreWallet / src / store / reducers / SettingsReducer.ts
@Drew Lemmy Drew Lemmy on 5 Mar 2021 797 bytes refactor: import aliases
// 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 } from "typesafe-actions";
import { loadSettings, SettingsState } from "@utils/settings";
import { setBooleanSetting, setIntegerSetting } from "@actions/SettingsActions";

export type State = SettingsState;

export function getInitialSettingsState(): State {
  return loadSettings();
}

export const SettingsReducer = createReducer({} as State)
  .handleAction(setBooleanSetting, (state, action) => ({
    ...state,
    [action.payload.settingName]: action.payload.value
  }))
  .handleAction(setIntegerSetting, (state, action) => ({
    ...state,
    [action.payload.settingName]: action.payload.value
  }));