diff options
Diffstat (limited to 'src/content/reducers')
| -rw-r--r-- | src/content/reducers/addon.js | 15 | ||||
| -rw-r--r-- | src/content/reducers/addon.ts | 22 | ||||
| -rw-r--r-- | src/content/reducers/find.js | 17 | ||||
| -rw-r--r-- | src/content/reducers/find.ts | 25 | ||||
| -rw-r--r-- | src/content/reducers/follow-controller.ts (renamed from src/content/reducers/follow-controller.js) | 16 | ||||
| -rw-r--r-- | src/content/reducers/index.js | 11 | ||||
| -rw-r--r-- | src/content/reducers/index.ts | 21 | ||||
| -rw-r--r-- | src/content/reducers/input.js | 18 | ||||
| -rw-r--r-- | src/content/reducers/input.ts | 26 | ||||
| -rw-r--r-- | src/content/reducers/mark.ts (renamed from src/content/reducers/mark.js) | 16 | ||||
| -rw-r--r-- | src/content/reducers/setting.js | 16 | ||||
| -rw-r--r-- | src/content/reducers/setting.ts | 40 | 
12 files changed, 160 insertions, 83 deletions
diff --git a/src/content/reducers/addon.js b/src/content/reducers/addon.js deleted file mode 100644 index 0def55a..0000000 --- a/src/content/reducers/addon.js +++ /dev/null @@ -1,15 +0,0 @@ -import actions from 'content/actions'; - -const defaultState = { -  enabled: true, -}; - -export default function reducer(state = defaultState, action = {}) { -  switch (action.type) { -  case actions.ADDON_SET_ENABLED: -    return { ...state, -      enabled: action.enabled, }; -  default: -    return state; -  } -} diff --git a/src/content/reducers/addon.ts b/src/content/reducers/addon.ts new file mode 100644 index 0000000..2131228 --- /dev/null +++ b/src/content/reducers/addon.ts @@ -0,0 +1,22 @@ +import * as actions from '../actions'; + +export interface State { +  enabled: boolean; +} + +const defaultState: State = { +  enabled: true, +}; + +export default function reducer( +  state: State = defaultState, +  action: actions.AddonAction, +): State { +  switch (action.type) { +  case actions.ADDON_SET_ENABLED: +    return { ...state, +      enabled: action.enabled, }; +  default: +    return state; +  } +} diff --git a/src/content/reducers/find.js b/src/content/reducers/find.js deleted file mode 100644 index 4560e2c..0000000 --- a/src/content/reducers/find.js +++ /dev/null @@ -1,17 +0,0 @@ -import actions from 'content/actions'; - -const defaultState = { -  keyword: null, -  found: false, -}; - -export default function reducer(state = defaultState, action = {}) { -  switch (action.type) { -  case actions.FIND_SET_KEYWORD: -    return { ...state, -      keyword: action.keyword, -      found: action.found, }; -  default: -    return state; -  } -} diff --git a/src/content/reducers/find.ts b/src/content/reducers/find.ts new file mode 100644 index 0000000..8c3e637 --- /dev/null +++ b/src/content/reducers/find.ts @@ -0,0 +1,25 @@ +import * as actions from '../actions'; + +export interface State { +  keyword: string | null; +  found: boolean; +} + +const defaultState: State = { +  keyword: null, +  found: false, +}; + +export default function reducer( +  state: State = defaultState, +  action: actions.FindAction, +): State { +  switch (action.type) { +  case actions.FIND_SET_KEYWORD: +    return { ...state, +      keyword: action.keyword, +      found: action.found, }; +  default: +    return state; +  } +} diff --git a/src/content/reducers/follow-controller.js b/src/content/reducers/follow-controller.ts index 5869c47..6965704 100644 --- a/src/content/reducers/follow-controller.js +++ b/src/content/reducers/follow-controller.ts @@ -1,13 +1,23 @@ -import actions from 'content/actions'; +import * as actions from '../actions'; -const defaultState = { +export interface State { +  enabled: boolean; +  newTab: boolean; +  background: boolean; +  keys: string, +} + +const defaultState: State = {    enabled: false,    newTab: false,    background: false,    keys: '',  }; -export default function reducer(state = defaultState, action = {}) { +export default function reducer( +  state: State = defaultState, +  action: actions.FollowAction, +): State {    switch (action.type) {    case actions.FOLLOW_CONTROLLER_ENABLE:      return { ...state, diff --git a/src/content/reducers/index.js b/src/content/reducers/index.js deleted file mode 100644 index bf612a3..0000000 --- a/src/content/reducers/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import { combineReducers } from 'redux'; -import addon from './addon'; -import find from './find'; -import setting from './setting'; -import input from './input'; -import followController from './follow-controller'; -import mark from './mark'; - -export default combineReducers({ -  addon, find, setting, input, followController, mark, -}); diff --git a/src/content/reducers/index.ts b/src/content/reducers/index.ts new file mode 100644 index 0000000..fb5eb84 --- /dev/null +++ b/src/content/reducers/index.ts @@ -0,0 +1,21 @@ +import { combineReducers } from 'redux'; +import addon, { State as AddonState } from './addon'; +import find, { State as FindState } from './find'; +import setting, { State as SettingState } from './setting'; +import input, { State as InputState } from './input'; +import followController, { State as FollowControllerState } +  from './follow-controller'; +import mark, { State as MarkState } from './mark'; + +export interface State { +  addon: AddonState; +  find: FindState; +  setting: SettingState; +  input: InputState; +  followController: FollowControllerState; +  mark: MarkState; +} + +export default combineReducers({ +  addon, find, setting, input, followController, mark, +}); diff --git a/src/content/reducers/input.js b/src/content/reducers/input.js deleted file mode 100644 index 23e7dd2..0000000 --- a/src/content/reducers/input.js +++ /dev/null @@ -1,18 +0,0 @@ -import actions from 'content/actions'; - -const defaultState = { -  keys: [] -}; - -export default function reducer(state = defaultState, action = {}) { -  switch (action.type) { -  case actions.INPUT_KEY_PRESS: -    return { ...state, -      keys: state.keys.concat([action.key]), }; -  case actions.INPUT_CLEAR_KEYS: -    return { ...state, -      keys: [], }; -  default: -    return state; -  } -} diff --git a/src/content/reducers/input.ts b/src/content/reducers/input.ts new file mode 100644 index 0000000..35b9075 --- /dev/null +++ b/src/content/reducers/input.ts @@ -0,0 +1,26 @@ +import * as actions from '../actions'; +import * as keyUtils from '../../shared/utils/keys'; + +export interface State { +  keys: keyUtils.Key[], +} + +const defaultState: State = { +  keys: [] +}; + +export default function reducer( +  state: State = defaultState, +  action: actions.InputAction, +): State { +  switch (action.type) { +  case actions.INPUT_KEY_PRESS: +    return { ...state, +      keys: state.keys.concat([action.key]), }; +  case actions.INPUT_CLEAR_KEYS: +    return { ...state, +      keys: [], }; +  default: +    return state; +  } +} diff --git a/src/content/reducers/mark.js b/src/content/reducers/mark.ts index 2c96cc5..7409938 100644 --- a/src/content/reducers/mark.js +++ b/src/content/reducers/mark.ts @@ -1,12 +1,22 @@ -import actions from 'content/actions'; +import Mark from '../Mark'; +import * as actions from '../actions'; -const defaultState = { +export interface State { +  setMode: boolean; +  jumpMode: boolean; +  marks: { [key: string]: Mark }; +} + +const defaultState: State = {    setMode: false,    jumpMode: false,    marks: {},  }; -export default function reducer(state = defaultState, action = {}) { +export default function reducer( +  state: State = defaultState, +  action: actions.MarkAction, +): State {    switch (action.type) {    case actions.MARK_START_SET:      return { ...state, setMode: true }; diff --git a/src/content/reducers/setting.js b/src/content/reducers/setting.js deleted file mode 100644 index a49db6d..0000000 --- a/src/content/reducers/setting.js +++ /dev/null @@ -1,16 +0,0 @@ -import actions from 'content/actions'; - -const defaultState = { -  // keymaps is and arrays of key-binding pairs, which is entries of Map -  keymaps: [], -}; - -export default function reducer(state = defaultState, action = {}) { -  switch (action.type) { -  case actions.SETTING_SET: -    return { ...action.value }; -  default: -    return state; -  } -} - diff --git a/src/content/reducers/setting.ts b/src/content/reducers/setting.ts new file mode 100644 index 0000000..9ca1380 --- /dev/null +++ b/src/content/reducers/setting.ts @@ -0,0 +1,40 @@ +import * as actions from '../actions'; +import * as keyUtils from '../../shared/utils/keys'; +import * as operations from '../../shared/operations'; +import { Search, Properties, DefaultSetting } from '../../shared/Settings'; + +export interface State { +  keymaps: { key: keyUtils.Key[], op: operations.Operation }[]; +  search: Search; +  properties: Properties; +} + +// defaultState does not refer due to the state is load from +// background on load. +const defaultState: State = { +  keymaps: [], +  search: DefaultSetting.search, +  properties: DefaultSetting.properties, +}; + +export default function reducer( +  state: State = defaultState, +  action: actions.SettingAction, +): State { +  switch (action.type) { +  case actions.SETTING_SET: +    return { +      keymaps: Object.entries(action.settings.keymaps).map((entry) => { +        return { +          key: keyUtils.fromMapKeys(entry[0]), +          op: entry[1], +        }; +      }), +      properties: action.settings.properties, +      search: action.settings.search, +    }; +  default: +    return state; +  } +} +  | 
