From 3c67cc0a002aded07e88ea25acc881ff080d1ae4 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Sun, 10 Sep 2017 09:20:54 +0900 Subject: completion as action/reducer --- src/reducers/background.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/reducers/background.js (limited to 'src/reducers') diff --git a/src/reducers/background.js b/src/reducers/background.js new file mode 100644 index 0000000..eccc8ca --- /dev/null +++ b/src/reducers/background.js @@ -0,0 +1,38 @@ +import * as tabs from '../background/tabs'; +import * as consoleActions from '../actions/console'; +import actions from '../actions'; + +const doCompletion = (command, keywords, sendto) => { + if (command === 'buffer') { + return tabs.getCompletions(keywords).then((tabs) => { + let items = tabs.map((tab) => { + return { + caption: tab.title, + content: tab.title, + url: tab.url, + icon: tab.favIconUrl + } + }); + let completions = { + name: "Buffers", + items: items + }; + return browser.tabs.sendMessage( + sendto, + consoleActions.setCompletions([completions])); + }); + } + return Promise.resolve(); +}; + + + +export default function reducer(state, action = {}, sendto) { + // TODO hide sendto object + switch (action.type) { + case actions.BACKGROUND_REQUEST_COMPLETIONS: + return doCompletion(action.command, action.keywords, sendto); + default: + return Promise.resolve(); + } +} -- cgit v1.2.3