import * as actions from "../actions"; import { JSONTextSettings, FormSettings, SettingSource, } from "../../shared/SettingData"; import { DefaultSetting } from "../../shared/settings/Settings"; export interface State { source: SettingSource; json?: JSONTextSettings; form?: FormSettings; error: string; } const defaultState: State = { source: SettingSource.JSON, json: JSONTextSettings.fromText(""), form: FormSettings.fromSettings(DefaultSetting), error: "", }; export default function reducer( state = defaultState, action: actions.SettingAction ): State { switch (action.type) { case actions.SETTING_SET_SETTINGS: return { ...state, source: action.source, json: action.json, form: action.form, error: "", }; case actions.SETTING_SHOW_ERROR: return { ...state, error: action.error, json: action.json }; case actions.SETTING_SWITCH_TO_FORM: return { ...state, error: "", source: SettingSource.Form, form: action.form, }; case actions.SETTING_SWITCH_TO_JSON: return { ...state, error: "", source: SettingSource.JSON, json: action.json, }; default: return state; } }