// Copyright (c) 2020-2021 Drew Lemmy // This file is part of TenebraWeb 2 under AGPL-3.0. // Full details: https://github.com/tmpim/TenebraWeb2/blob/master/LICENSE.txt import { createReducer } from "typesafe-actions"; import { incrementNameTableLock, decrementNameTableLock, setTip } from "@actions/MiscActions"; export interface State { readonly nameTableLock: number; readonly tip: number; } const initialState: State = { nameTableLock: 0, tip: localStorage.getItem("tip") !== null ? parseInt(localStorage.getItem("tip")!) : -1 }; export const MiscReducer = createReducer(initialState) .handleAction(incrementNameTableLock, (state, _) => ({ ...state, nameTableLock: state.nameTableLock + 1 })) .handleAction(decrementNameTableLock, (state, _) => ({ ...state, nameTableLock: state.nameTableLock - 1 })) .handleAction(setTip, (state, { payload }) => ({ ...state, tip: payload }));