command as action/reducer

This commit is contained in:
Shin'ya Ueoka 2017-09-11 21:07:02 +09:00
parent 14d13e2c3a
commit bf890a6d9d
5 changed files with 71 additions and 50 deletions

24
src/reducers/command.js Normal file
View file

@ -0,0 +1,24 @@
import * as tabs from '../background/tabs';
import actions from '../actions';
const cmdBuffer = (sender, arg) => {
if (isNaN(arg)) {
return tabs.selectByKeyword(sender.tab, arg);
} else {
let index = parseInt(arg, 10) - 1;
return tabs.selectAt(index);
}
}
export default function reducer(state, action, sender) {
switch (action.type) {
case actions.COMMAND_OPEN_URL:
return browser.tabs.update(sender.tab.id, { url: action.url });
case actions.COMMAND_TABOPEN_URL:
return browser.tabs.create({ url: action.url });
case actions.COMMAND_BUFFER:
return cmdBuffer(sender, action.keywords);
default:
return Promise.resolve();
}
}