implement o/O command
This commit is contained in:
parent
9a808f45ed
commit
36680ed8fe
5 changed files with 39 additions and 18 deletions
|
@ -36,7 +36,11 @@ const doBackgroundAction = (sender, action) => {
|
|||
}
|
||||
|
||||
const normalizeUrl = (string) => {
|
||||
try {
|
||||
return new URL(string).href
|
||||
} catch (e) {
|
||||
return 'http://' + string;
|
||||
}
|
||||
}
|
||||
|
||||
const cmdEnterHandle = (request, sender) => {
|
||||
|
|
|
@ -3,6 +3,8 @@ import * as actions from '../shared/actions';
|
|||
|
||||
const DEFAULT_KEYMAP = [
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_SEMICOLON, shift: true }], action: [ actions.CMD_OPEN ]},
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_O }], action: [ actions.CMD_TABS_OPEN, false ]},
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_O, shift: true }], action: [ actions.CMD_TABS_OPEN, true ]},
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_K }], action: [ actions.SCROLL_UP, 1 ]},
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_J }], action: [ actions.SCROLL_DOWN, 1 ]},
|
||||
{ keys: [{ code: KeyboardEvent.DOM_VK_G }, { code: KeyboardEvent.DOM_VK_G }], action: [ actions.SCROLL_TOP ]},
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import './footer-line.css';
|
||||
|
||||
export default class FooterLine {
|
||||
constructor(doc) {
|
||||
constructor(doc, initial = '') {
|
||||
this.initUi(doc);
|
||||
|
||||
this.enteredCallback = () => {}
|
||||
|
@ -10,6 +10,7 @@ export default class FooterLine {
|
|||
this.input.addEventListener('blur', this.handleBlur.bind(this));
|
||||
this.input.addEventListener('keydown', this.handleKeydown.bind(this));
|
||||
this.input.addEventListener('keyup', this.handleKeyup.bind(this));
|
||||
this.input.value = initial;
|
||||
}
|
||||
|
||||
initUi(doc) {
|
||||
|
|
|
@ -4,14 +4,8 @@ import * as actions from '../shared/actions';
|
|||
|
||||
var footer = null;
|
||||
|
||||
const invokeEvent = (action) => {
|
||||
if (typeof action === 'undefined' || action === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (action[0]) {
|
||||
case actions.CMD_OPEN:
|
||||
footer = new FooterLine(document);
|
||||
const createFooterLine = (initial = '') => {
|
||||
footer = new FooterLine(document, initial);
|
||||
footer.onPromptChange((e) => {
|
||||
let request = {
|
||||
type: 'event.cmd.suggest',
|
||||
|
@ -27,6 +21,24 @@ const invokeEvent = (action) => {
|
|||
browser.runtime.sendMessage(request);
|
||||
});
|
||||
footer.focus();
|
||||
}
|
||||
|
||||
const invokeEvent = (action) => {
|
||||
if (typeof action === 'undefined' || action === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (action[0]) {
|
||||
case actions.CMD_OPEN:
|
||||
createFooterLine();
|
||||
break;
|
||||
case actions.CMD_TABS_OPEN:
|
||||
if (action[1] || false) {
|
||||
// alter url
|
||||
createFooterLine('open ' + window.location.href);
|
||||
} else {
|
||||
createFooterLine('open ');
|
||||
}
|
||||
break;
|
||||
case actions.SCROLL_UP:
|
||||
scrolls.scrollUp(window, action[1] || 1);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
export const CMD_OPEN = 'cmd.open';
|
||||
export const CMD_TABS_OPEN = 'cmd.tabs.open';
|
||||
export const TABS_PREV = 'tabs.prev';
|
||||
export const TABS_NEXT = 'tabs.next';
|
||||
export const SCROLL_UP = 'scroll.up';
|
||||
|
@ -13,6 +14,7 @@ const BACKGROUND_ACTION_SET = new Set([
|
|||
|
||||
const CONTENT_ACTION_SET = new Set([
|
||||
CMD_OPEN,
|
||||
CMD_TABS_OPEN,
|
||||
SCROLL_UP,
|
||||
SCROLL_DOWN,
|
||||
SCROLL_TOP,
|
||||
|
|
Reference in a new issue