completion as action/reducer
This commit is contained in:
parent
7e35d11f65
commit
3c67cc0a00
8 changed files with 75 additions and 47 deletions
38
src/reducers/background.js
Normal file
38
src/reducers/background.js
Normal file
|
@ -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();
|
||||
}
|
||||
}
|
Reference in a new issue