diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-05-07 21:16:47 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-07 21:16:47 +0900 |
commit | 05ef6a8ca35aaa801c11eb6b4896caa3690058af (patch) | |
tree | 2c7708ca91ac2b462cc86aa28612e3d3943496f3 /src/settings/reducers | |
parent | 457d954e08923b4accd28a919c72d0b61db1bb98 (diff) | |
parent | 27d0a7f37d24a0ad68a8ccb7dee18fc1d00eea58 (diff) |
Merge pull request #578 from ueokande/move-to-typescript
Move to TypeScript
Diffstat (limited to 'src/settings/reducers')
-rw-r--r-- | src/settings/reducers/setting.ts (renamed from src/settings/reducers/setting.js) | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/settings/reducers/setting.js b/src/settings/reducers/setting.ts index 54033aa..c4a21c7 100644 --- a/src/settings/reducers/setting.js +++ b/src/settings/reducers/setting.ts @@ -1,13 +1,25 @@ -import actions from 'settings/actions'; +import * as actions from '../actions'; +import { + JSONSettings, FormSettings, SettingSource, +} from '../../shared/SettingData'; -const defaultState = { - source: '', - json: '', - form: null, +export interface State { + source: SettingSource; + json?: JSONSettings; + form?: FormSettings; + error: string; +} + +const defaultState: State = { + source: SettingSource.JSON, + json: JSONSettings.valueOf(''), error: '', }; -export default function reducer(state = defaultState, action = {}) { +export default function reducer( + state = defaultState, + action: actions.SettingAction, +): State { switch (action.type) { case actions.SETTING_SET_SETTINGS: return { ...state, @@ -22,12 +34,12 @@ export default function reducer(state = defaultState, action = {}) { case actions.SETTING_SWITCH_TO_FORM: return { ...state, error: '', - source: 'form', + source: SettingSource.Form, form: action.form, }; case actions.SETTING_SWITCH_TO_JSON: return { ...state, error: '', - source: 'json', + source: SettingSource.JSON, json: action.json, }; default: return state; |