From be37c42d28e4d32609b5972ee937a269d18c0f67 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Mon, 6 Nov 2017 20:13:15 +0900 Subject: show find in console --- src/background/actions/operation.js | 4 ++++ src/console/actions/console.js | 8 +++++++- src/console/actions/index.js | 1 + src/console/components/console.js | 6 ++++-- src/console/index.js | 2 ++ src/console/reducers/index.js | 13 +++++++++---- src/shared/default-settings.js | 3 +++ src/shared/messages.js | 1 + src/shared/operations.js | 5 +++++ 9 files changed, 36 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js index 9876940..1e4990c 100644 --- a/src/background/actions/operation.js +++ b/src/background/actions/operation.js @@ -65,6 +65,10 @@ const exec = (operation, tab) => { return sendConsoleShowCommand(tab, 'winopen '); case operations.COMMAND_SHOW_BUFFER: return sendConsoleShowCommand(tab, 'buffer '); + case operations.FIND_START: + return browser.tabs.sendMessage(tab.id, { + type: messages.CONSOLE_SHOW_FIND + }); default: return Promise.resolve(); } diff --git a/src/console/actions/console.js b/src/console/actions/console.js index 0d891bb..dd12e24 100644 --- a/src/console/actions/console.js +++ b/src/console/actions/console.js @@ -7,6 +7,12 @@ const showCommand = (text) => { }; }; +const showFind = () => { + return { + type: actions.CONSOLE_SHOW_FIND, + }; +}; + const showError = (text) => { return { type: actions.CONSOLE_SHOW_ERROR, @@ -47,6 +53,6 @@ const completionPrev = () => { }; export { - showCommand, showError, showInfo, hideCommand, + showCommand, showFind, showError, showInfo, hideCommand, setCompletions, completionNext, completionPrev }; diff --git a/src/console/actions/index.js b/src/console/actions/index.js index c4f88cd..15903be 100644 --- a/src/console/actions/index.js +++ b/src/console/actions/index.js @@ -7,4 +7,5 @@ export default { CONSOLE_SET_COMPLETIONS: 'console.set.completions', CONSOLE_COMPLETION_NEXT: 'console.completion.next', CONSOLE_COMPLETION_PREV: 'console.completion.prev', + CONSOLE_SHOW_FIND: 'console.show.find', }; diff --git a/src/console/components/console.js b/src/console/components/console.js index 7997f24..d09e252 100644 --- a/src/console/components/console.js +++ b/src/console/components/console.js @@ -68,8 +68,10 @@ export default class ConsoleComponent { update() { let state = this.store.getState(); if (this.prevState.mode !== 'command' && state.mode === 'command') { - this.showCommand(state.commandText); - } else if (state.mode !== 'command') { + this.showCommand(state.consoleText); + } else if (this.prevState.mode !== 'find' && state.mode === 'find') { + this.showFind(); + } else if (state.mode !== 'command' && state.mode !== 'find') { this.hideCommand(); } diff --git a/src/console/index.js b/src/console/index.js index 36473fe..f886520 100644 --- a/src/console/index.js +++ b/src/console/index.js @@ -18,6 +18,8 @@ const onMessage = (message) => { switch (message.type) { case messages.CONSOLE_SHOW_COMMAND: return store.dispatch(consoleActions.showCommand(message.command)); + case messages.CONSOLE_SHOW_FIND: + return store.dispatch(consoleActions.showFind()); case messages.CONSOLE_SHOW_ERROR: return store.dispatch(consoleActions.showError(message.text)); case messages.CONSOLE_SHOW_INFO: diff --git a/src/console/reducers/index.js b/src/console/reducers/index.js index d4affa7..d94662b 100644 --- a/src/console/reducers/index.js +++ b/src/console/reducers/index.js @@ -3,7 +3,7 @@ import actions from 'console/actions'; const defaultState = { mode: '', messageText: '', - commandText: '', + consoleText: '', completions: [], groupSelection: -1, itemSelection: -1, @@ -48,8 +48,13 @@ export default function reducer(state = defaultState, action = {}) { case actions.CONSOLE_SHOW_COMMAND: return Object.assign({}, state, { mode: 'command', - commandText: action.text, - errorShown: false, + consoleText: action.text, + completions: [] + }); + case actions.CONSOLE_SHOW_FIND: + return Object.assign({}, state, { + mode: 'find', + consoleText: '', completions: [] }); case actions.CONSOLE_SHOW_ERROR: @@ -64,7 +69,7 @@ export default function reducer(state = defaultState, action = {}) { }); case actions.CONSOLE_HIDE_COMMAND: return Object.assign({}, state, { - mode: state.mode === 'command' ? '' : state.mode, + mode: state.mode === 'command' || state.mode === 'find' ? '' : state.mode, }); case actions.CONSOLE_SET_COMPLETIONS: return Object.assign({}, state, { diff --git a/src/shared/default-settings.js b/src/shared/default-settings.js index 14f48be..608890b 100644 --- a/src/shared/default-settings.js +++ b/src/shared/default-settings.js @@ -46,6 +46,9 @@ export default { "gu": { "type": "navigate.parent" }, "gU": { "type": "navigate.root" }, "y": { "type": "urls.yank" }, + "/": { "type": "find.start" }, + "n": { "type": "find.next" }, + "N": { "type": "find.prev" }, "": { "type": "addon.toggle.enabled" } }, "search": { diff --git a/src/shared/messages.js b/src/shared/messages.js index dc497b6..f859e93 100644 --- a/src/shared/messages.js +++ b/src/shared/messages.js @@ -31,6 +31,7 @@ export default { CONSOLE_SHOW_ERROR: 'console.show.error', CONSOLE_SHOW_INFO: 'console.show.info', CONSOLE_HIDE_COMMAND: 'console.hide.command', + CONSOLE_SHOW_FIND: 'console.show.find', FOLLOW_START: 'follow.start', FOLLOW_REQUEST_COUNT_TARGETS: 'follow.request.count.targets', diff --git a/src/shared/operations.js b/src/shared/operations.js index f63f7ca..4c221ba 100644 --- a/src/shared/operations.js +++ b/src/shared/operations.js @@ -51,4 +51,9 @@ export default { // Url yank URLS_YANK: 'urls.yank', + + // Find + FIND_START: 'find.start', + FIND_NEXT: 'find.next', + FIND_PREV: 'find.prev', }; -- cgit v1.2.3