use mode in console message

This commit is contained in:
Shin'ya Ueoka 2017-10-08 18:41:44 +09:00
parent f6996a2274
commit b0d2b53281
11 changed files with 36 additions and 43 deletions

View file

@ -48,7 +48,7 @@ export default class BackgroundComponent {
tabActions.openToTab(message.url, sender.tab), sender);
case messages.CONSOLE_BLURRED:
return browser.tabs.sendMessage(sender.tab.id, {
type: messages.CONSOLE_HIDE,
type: messages.CONSOLE_HIDE_COMMAND,
});
case messages.CONSOLE_ENTERED:
return commands.exec(message.text, this.settings).catch((e) => {

View file

@ -14,9 +14,9 @@ const showError = (text) => {
};
};
const hide = () => {
const hideCommand = () => {
return {
type: actions.CONSOLE_HIDE
type: actions.CONSOLE_HIDE_COMMAND,
};
};
@ -40,5 +40,6 @@ const completionPrev = () => {
};
export {
showCommand, showError, hide, setCompletions, completionNext, completionPrev
showCommand, showError, hideCommand,
setCompletions, completionNext, completionPrev
};

View file

@ -3,7 +3,7 @@ export default {
CONSOLE_SHOW_COMMAND: 'console.show.command',
CONSOLE_SET_COMPLETIONS: 'console.set.completions',
CONSOLE_SHOW_ERROR: 'console.show.error',
CONSOLE_HIDE: 'console.hide',
CONSOLE_HIDE_COMMAND: 'console.hide.command',
CONSOLE_COMPLETION_NEXT: 'console.completion.next',
CONSOLE_COMPLETION_PREV: 'console.completion.prev',
};

View file

@ -72,14 +72,14 @@ export default class ConsoleComponent {
update() {
let state = this.store.getState();
if (!this.prevState.commandShown && state.commandShown) {
if (this.prevState.mode !== 'command' && state.mode === 'command') {
this.showCommand(state.commandText);
} else if (!state.commandShown) {
} else if (state.mode !== 'command') {
this.hideCommand();
}
if (state.errorShown) {
this.setErrorText(state.errorText);
if (state.mode === 'error') {
this.setErrorText(state.messageText);
this.showError();
} else {
this.hideError();

View file

@ -28,7 +28,7 @@ browser.runtime.onMessage.addListener((action) => {
return store.dispatch(consoleActions.showCommand(action.command));
case messages.CONSOLE_SHOW_ERROR:
return store.dispatch(consoleActions.showError(action.text));
case messages.CONSOLE_HIDE:
return store.dispatch(consoleActions.hide(action.command));
case messages.CONSOLE_HIDE_COMMAND:
return store.dispatch(consoleActions.hideCommand());
}
});

View file

@ -1,9 +1,8 @@
import actions from 'console/actions';
const defaultState = {
errorShown: false,
errorText: '',
commandShown: false,
mode: '',
messageText: '',
commandText: '',
completions: [],
groupSelection: -1,
@ -48,25 +47,19 @@ export default function reducer(state = defaultState, action = {}) {
switch (action.type) {
case actions.CONSOLE_SHOW_COMMAND:
return Object.assign({}, state, {
commandShown: true,
mode: 'command',
commandText: action.text,
errorShown: false,
completions: []
});
case actions.CONSOLE_SHOW_ERROR:
return Object.assign({}, state, {
errorText: action.text,
errorShown: true,
commandShown: false,
mode: 'error',
messageText: action.text,
});
case actions.CONSOLE_HIDE:
if (state.errorShown) {
// keep error message if shown
return state;
}
case actions.CONSOLE_HIDE_COMMAND:
return Object.assign({}, state, {
errorShown: false,
commandShown: false
mode: state.mode === 'command' ? '' : state.mode,
});
case actions.CONSOLE_SET_COMPLETIONS:
return Object.assign({}, state, {

View file

@ -40,7 +40,7 @@ const reloadSettings = () => {
browser.runtime.onMessage.addListener((action) => {
switch (action.type) {
case messages.CONSOLE_HIDE:
case messages.CONSOLE_HIDE_COMMAND:
window.focus();
consoleFrames.blur(window.document);
return Promise.resolve();

View file

@ -8,7 +8,7 @@ export default {
CONSOLE_QUERY_COMPLETIONS: 'console.query.completions',
CONSOLE_SHOW_COMMAND: 'console.show.command',
CONSOLE_SHOW_ERROR: 'console.show.error',
CONSOLE_HIDE: 'console.hide',
CONSOLE_HIDE_COMMAND: 'console.hide.command',
OPEN_URL: 'open.url',