aboutsummaryrefslogtreecommitdiff
path: root/src/console/reducers
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2020-05-02 17:25:56 +0900
committerGitHub <noreply@github.com>2020-05-02 17:25:56 +0900
commit5df0537bcf65a341e79852b1b30379c73318529c (patch)
treeaee5efe52412855f620cb514a13a2c14373f27b7 /src/console/reducers
parent685f2b7b69218b06b5bb676069e35f79c5048c9b (diff)
parent75abd90ecb8201ad845b266f96220d8adfe19b2d (diff)
Merge pull request #749 from ueokande/qa-0.28
QA 0.28
Diffstat (limited to 'src/console/reducers')
-rw-r--r--src/console/reducers/index.ts128
1 files changed, 68 insertions, 60 deletions
diff --git a/src/console/reducers/index.ts b/src/console/reducers/index.ts
index f1508bb..f2ffed7 100644
--- a/src/console/reducers/index.ts
+++ b/src/console/reducers/index.ts
@@ -1,4 +1,4 @@
-import * as actions from '../actions';
+import * as actions from "../actions";
import Completions from "../Completions";
import CompletionType from "../../shared/CompletionType";
@@ -14,11 +14,11 @@ export interface State {
}
const defaultState = {
- mode: '',
- messageText: '',
- consoleText: '',
+ mode: "",
+ messageText: "",
+ consoleText: "",
completionTypes: [],
- completionSource: '',
+ completionSource: "",
completions: [],
select: -1,
viewIndex: 0,
@@ -33,7 +33,7 @@ const nextSelection = (state: State): number => {
}
const length = state.completions
- .map(g => g.items.length)
+ .map((g) => g.items.length)
.reduce((x, y) => x + y);
if (state.select + 1 < length) {
return state.select + 1;
@@ -43,7 +43,7 @@ const nextSelection = (state: State): number => {
const prevSelection = (state: State): number => {
const length = state.completions
- .map(g => g.items.length)
+ .map((g) => g.items.length)
.reduce((x, y) => x + y);
if (state.select < 0) {
return length - 1;
@@ -55,66 +55,74 @@ const nextConsoleText = (completions: any[], select: number, defaults: any) => {
if (select < 0) {
return defaults;
}
- const items = completions.map(g => g.items).reduce((g1, g2) => g1.concat(g2));
+ const items = completions
+ .map((g) => g.items)
+ .reduce((g1, g2) => g1.concat(g2));
return items[select].content;
};
// eslint-disable-next-line max-lines-per-function
export default function reducer(
state: State = defaultState,
- action: actions.ConsoleAction,
+ action: actions.ConsoleAction
): State {
switch (action.type) {
- case actions.CONSOLE_HIDE:
- return { ...state,
- mode: '', };
- case actions.CONSOLE_SHOW_COMMAND:
- return { ...state,
- mode: 'command',
- consoleText: action.text,
- completionTypes: action.completionTypes,
- completions: []};
- case actions.CONSOLE_SHOW_FIND:
- return { ...state,
- mode: 'find',
- consoleText: '',
- completions: []};
- case actions.CONSOLE_SHOW_ERROR:
- return { ...state,
- mode: 'error',
- messageText: action.text, };
- case actions.CONSOLE_SHOW_INFO:
- return { ...state,
- mode: 'info',
- messageText: action.text, };
- case actions.CONSOLE_HIDE_COMMAND:
- return {
- ...state,
- mode: state.mode === 'command' || state.mode === 'find' ? '' : state.mode,
- };
- case actions.CONSOLE_SET_CONSOLE_TEXT:
- return { ...state,
- consoleText: action.consoleText, };
- case actions.CONSOLE_SET_COMPLETIONS:
- return { ...state,
- completions: action.completions,
- completionSource: action.completionSource,
- select: -1 };
- case actions.CONSOLE_COMPLETION_NEXT: {
- const select = nextSelection(state);
- return { ...state,
- select: select,
- consoleText: nextConsoleText(
- state.completions, select, state.completionSource) };
- }
- case actions.CONSOLE_COMPLETION_PREV: {
- const select = prevSelection(state);
- return { ...state,
- select: select,
- consoleText: nextConsoleText(
- state.completions, select, state.completionSource) };
- }
- default:
- return state;
+ case actions.CONSOLE_HIDE:
+ return { ...state, mode: "" };
+ case actions.CONSOLE_SHOW_COMMAND:
+ return {
+ ...state,
+ mode: "command",
+ consoleText: action.text,
+ completionTypes: action.completionTypes,
+ completions: [],
+ };
+ case actions.CONSOLE_SHOW_FIND:
+ return { ...state, mode: "find", consoleText: "", completions: [] };
+ case actions.CONSOLE_SHOW_ERROR:
+ return { ...state, mode: "error", messageText: action.text };
+ case actions.CONSOLE_SHOW_INFO:
+ return { ...state, mode: "info", messageText: action.text };
+ case actions.CONSOLE_HIDE_COMMAND:
+ return {
+ ...state,
+ mode:
+ state.mode === "command" || state.mode === "find" ? "" : state.mode,
+ };
+ case actions.CONSOLE_SET_CONSOLE_TEXT:
+ return { ...state, consoleText: action.consoleText };
+ case actions.CONSOLE_SET_COMPLETIONS:
+ return {
+ ...state,
+ completions: action.completions,
+ completionSource: action.completionSource,
+ select: -1,
+ };
+ case actions.CONSOLE_COMPLETION_NEXT: {
+ const select = nextSelection(state);
+ return {
+ ...state,
+ select: select,
+ consoleText: nextConsoleText(
+ state.completions,
+ select,
+ state.completionSource
+ ),
+ };
+ }
+ case actions.CONSOLE_COMPLETION_PREV: {
+ const select = prevSelection(state);
+ return {
+ ...state,
+ select: select,
+ consoleText: nextConsoleText(
+ state.completions,
+ select,
+ state.completionSource
+ ),
+ };
+ }
+ default:
+ return state;
}
}