aboutsummaryrefslogtreecommitdiff
path: root/src/settings/reducers
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-07 21:16:47 +0900
committerGitHub <noreply@github.com>2019-05-07 21:16:47 +0900
commit05ef6a8ca35aaa801c11eb6b4896caa3690058af (patch)
tree2c7708ca91ac2b462cc86aa28612e3d3943496f3 /src/settings/reducers
parent457d954e08923b4accd28a919c72d0b61db1bb98 (diff)
parent27d0a7f37d24a0ad68a8ccb7dee18fc1d00eea58 (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;