aboutsummaryrefslogtreecommitdiff
path: root/src/content/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/actions')
-rw-r--r--src/content/actions/addon.ts19
-rw-r--r--src/content/actions/find.ts100
-rw-r--r--src/content/actions/follow-controller.ts32
-rw-r--r--src/content/actions/index.ts122
-rw-r--r--src/content/actions/input.ts17
-rw-r--r--src/content/actions/mark.ts46
-rw-r--r--src/content/actions/operation.ts107
-rw-r--r--src/content/actions/setting.ts28
8 files changed, 0 insertions, 471 deletions
diff --git a/src/content/actions/addon.ts b/src/content/actions/addon.ts
deleted file mode 100644
index 8dedae0..0000000
--- a/src/content/actions/addon.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as messages from '../../shared/messages';
-import * as actions from './index';
-
-const enable = (): Promise<actions.AddonAction> => setEnabled(true);
-
-const disable = (): Promise<actions.AddonAction> => setEnabled(false);
-
-const setEnabled = async(enabled: boolean): Promise<actions.AddonAction> => {
- await browser.runtime.sendMessage({
- type: messages.ADDON_ENABLED_RESPONSE,
- enabled,
- });
- return {
- type: actions.ADDON_SET_ENABLED,
- enabled,
- };
-};
-
-export { enable, disable, setEnabled };
diff --git a/src/content/actions/find.ts b/src/content/actions/find.ts
deleted file mode 100644
index 53e03ae..0000000
--- a/src/content/actions/find.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// window.find(aString, aCaseSensitive, aBackwards, aWrapAround,
-// aWholeWord, aSearchInFrames);
-//
-// NOTE: window.find is not standard API
-// https://developer.mozilla.org/en-US/docs/Web/API/Window/find
-
-import * as messages from '../../shared/messages';
-import * as actions from './index';
-import * as consoleFrames from '../console-frames';
-
-interface MyWindow extends Window {
- find(
- aString: string,
- aCaseSensitive?: boolean,
- aBackwards?: boolean,
- aWrapAround?: boolean,
- aWholeWord?: boolean,
- aSearchInFrames?: boolean,
- aShowDialog?: boolean): boolean;
-}
-
-// eslint-disable-next-line no-var, vars-on-top, init-declarations
-declare var window: MyWindow;
-
-const find = (str: string, backwards: boolean): boolean => {
- let caseSensitive = false;
- let wrapScan = true;
-
-
- // NOTE: aWholeWord dows not implemented, and aSearchInFrames does not work
- // because of same origin policy
-
- // eslint-disable-next-line no-extra-parens
- let found = window.find(str, caseSensitive, backwards, wrapScan);
- if (found) {
- return found;
- }
- let sel = window.getSelection();
- if (sel) {
- sel.removeAllRanges();
- }
-
- // eslint-disable-next-line no-extra-parens
- return window.find(str, caseSensitive, backwards, wrapScan);
-};
-
-// eslint-disable-next-line max-statements
-const findNext = async(
- currentKeyword: string, reset: boolean, backwards: boolean,
-): Promise<actions.FindAction> => {
- if (reset) {
- let sel = window.getSelection();
- if (sel) {
- sel.removeAllRanges();
- }
- }
-
- let keyword = currentKeyword;
- if (currentKeyword) {
- browser.runtime.sendMessage({
- type: messages.FIND_SET_KEYWORD,
- keyword: currentKeyword,
- });
- } else {
- keyword = await browser.runtime.sendMessage({
- type: messages.FIND_GET_KEYWORD,
- });
- }
- if (!keyword) {
- await consoleFrames.postError('No previous search keywords');
- return { type: actions.NOOP };
- }
- let found = find(keyword, backwards);
- if (found) {
- consoleFrames.postInfo('Pattern found: ' + keyword);
- } else {
- consoleFrames.postError('Pattern not found: ' + keyword);
- }
-
- return {
- type: actions.FIND_SET_KEYWORD,
- keyword,
- found,
- };
-};
-
-const next = (
- currentKeyword: string, reset: boolean,
-): Promise<actions.FindAction> => {
- return findNext(currentKeyword, reset, false);
-};
-
-const prev = (
- currentKeyword: string, reset: boolean,
-): Promise<actions.FindAction> => {
- return findNext(currentKeyword, reset, true);
-};
-
-export { next, prev };
diff --git a/src/content/actions/follow-controller.ts b/src/content/actions/follow-controller.ts
deleted file mode 100644
index 115b3b6..0000000
--- a/src/content/actions/follow-controller.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import * as actions from './index';
-
-const enable = (
- newTab: boolean, background: boolean,
-): actions.FollowAction => {
- return {
- type: actions.FOLLOW_CONTROLLER_ENABLE,
- newTab,
- background,
- };
-};
-
-const disable = (): actions.FollowAction => {
- return {
- type: actions.FOLLOW_CONTROLLER_DISABLE,
- };
-};
-
-const keyPress = (key: string): actions.FollowAction => {
- return {
- type: actions.FOLLOW_CONTROLLER_KEY_PRESS,
- key: key
- };
-};
-
-const backspace = (): actions.FollowAction => {
- return {
- type: actions.FOLLOW_CONTROLLER_BACKSPACE,
- };
-};
-
-export { enable, disable, keyPress, backspace };
diff --git a/src/content/actions/index.ts b/src/content/actions/index.ts
deleted file mode 100644
index 8aa9c23..0000000
--- a/src/content/actions/index.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import Redux from 'redux';
-import Settings from '../../shared/Settings';
-import * as keyUtils from '../../shared/utils/keys';
-
-// Enable/disable
-export const ADDON_SET_ENABLED = 'addon.set.enabled';
-
-// Find
-export const FIND_SET_KEYWORD = 'find.set.keyword';
-
-// Settings
-export const SETTING_SET = 'setting.set';
-
-// User input
-export const INPUT_KEY_PRESS = 'input.key.press';
-export const INPUT_CLEAR_KEYS = 'input.clear.keys';
-
-// Completion
-export const COMPLETION_SET_ITEMS = 'completion.set.items';
-export const COMPLETION_SELECT_NEXT = 'completions.select.next';
-export const COMPLETION_SELECT_PREV = 'completions.select.prev';
-
-// Follow
-export const FOLLOW_CONTROLLER_ENABLE = 'follow.controller.enable';
-export const FOLLOW_CONTROLLER_DISABLE = 'follow.controller.disable';
-export const FOLLOW_CONTROLLER_KEY_PRESS = 'follow.controller.key.press';
-export const FOLLOW_CONTROLLER_BACKSPACE = 'follow.controller.backspace';
-
-// Mark
-export const MARK_START_SET = 'mark.start.set';
-export const MARK_START_JUMP = 'mark.start.jump';
-export const MARK_CANCEL = 'mark.cancel';
-export const MARK_SET_LOCAL = 'mark.set.local';
-
-export const NOOP = 'noop';
-
-export interface AddonSetEnabledAction extends Redux.Action {
- type: typeof ADDON_SET_ENABLED;
- enabled: boolean;
-}
-
-export interface FindSetKeywordAction extends Redux.Action {
- type: typeof FIND_SET_KEYWORD;
- keyword: string;
- found: boolean;
-}
-
-export interface SettingSetAction extends Redux.Action {
- type: typeof SETTING_SET;
- settings: Settings,
-}
-
-export interface InputKeyPressAction extends Redux.Action {
- type: typeof INPUT_KEY_PRESS;
- key: keyUtils.Key;
-}
-
-export interface InputClearKeysAction extends Redux.Action {
- type: typeof INPUT_CLEAR_KEYS;
-}
-
-export interface FollowControllerEnableAction extends Redux.Action {
- type: typeof FOLLOW_CONTROLLER_ENABLE;
- newTab: boolean;
- background: boolean;
-}
-
-export interface FollowControllerDisableAction extends Redux.Action {
- type: typeof FOLLOW_CONTROLLER_DISABLE;
-}
-
-export interface FollowControllerKeyPressAction extends Redux.Action {
- type: typeof FOLLOW_CONTROLLER_KEY_PRESS;
- key: string;
-}
-
-export interface FollowControllerBackspaceAction extends Redux.Action {
- type: typeof FOLLOW_CONTROLLER_BACKSPACE;
-}
-
-export interface MarkStartSetAction extends Redux.Action {
- type: typeof MARK_START_SET;
-}
-
-export interface MarkStartJumpAction extends Redux.Action {
- type: typeof MARK_START_JUMP;
-}
-
-export interface MarkCancelAction extends Redux.Action {
- type: typeof MARK_CANCEL;
-}
-
-export interface MarkSetLocalAction extends Redux.Action {
- type: typeof MARK_SET_LOCAL;
- key: string;
- x: number;
- y: number;
-}
-
-export interface NoopAction extends Redux.Action {
- type: typeof NOOP;
-}
-
-export type AddonAction = AddonSetEnabledAction;
-export type FindAction = FindSetKeywordAction | NoopAction;
-export type SettingAction = SettingSetAction;
-export type InputAction = InputKeyPressAction | InputClearKeysAction;
-export type FollowAction =
- FollowControllerEnableAction | FollowControllerDisableAction |
- FollowControllerKeyPressAction | FollowControllerBackspaceAction;
-export type MarkAction =
- MarkStartSetAction | MarkStartJumpAction |
- MarkCancelAction | MarkSetLocalAction | NoopAction;
-
-export type Action =
- AddonAction |
- FindAction |
- SettingAction |
- InputAction |
- FollowAction |
- MarkAction |
- NoopAction;
diff --git a/src/content/actions/input.ts b/src/content/actions/input.ts
deleted file mode 100644
index 1df6452..0000000
--- a/src/content/actions/input.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import * as actions from './index';
-import * as keyUtils from '../../shared/utils/keys';
-
-const keyPress = (key: keyUtils.Key): actions.InputAction => {
- return {
- type: actions.INPUT_KEY_PRESS,
- key,
- };
-};
-
-const clearKeys = (): actions.InputAction => {
- return {
- type: actions.INPUT_CLEAR_KEYS
- };
-};
-
-export { keyPress, clearKeys };
diff --git a/src/content/actions/mark.ts b/src/content/actions/mark.ts
deleted file mode 100644
index 5eb9554..0000000
--- a/src/content/actions/mark.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import * as actions from './index';
-import * as messages from '../../shared/messages';
-
-const startSet = (): actions.MarkAction => {
- return { type: actions.MARK_START_SET };
-};
-
-const startJump = (): actions.MarkAction => {
- return { type: actions.MARK_START_JUMP };
-};
-
-const cancel = (): actions.MarkAction => {
- return { type: actions.MARK_CANCEL };
-};
-
-const setLocal = (key: string, x: number, y: number): actions.MarkAction => {
- return {
- type: actions.MARK_SET_LOCAL,
- key,
- x,
- y,
- };
-};
-
-const setGlobal = (key: string, x: number, y: number): actions.MarkAction => {
- browser.runtime.sendMessage({
- type: messages.MARK_SET_GLOBAL,
- key,
- x,
- y,
- });
- return { type: actions.NOOP };
-};
-
-const jumpGlobal = (key: string): actions.MarkAction => {
- browser.runtime.sendMessage({
- type: messages.MARK_JUMP_GLOBAL,
- key,
- });
- return { type: actions.NOOP };
-};
-
-export {
- startSet, startJump, cancel, setLocal,
- setGlobal, jumpGlobal,
-};
diff --git a/src/content/actions/operation.ts b/src/content/actions/operation.ts
deleted file mode 100644
index 41e080b..0000000
--- a/src/content/actions/operation.ts
+++ /dev/null
@@ -1,107 +0,0 @@
-import * as operations from '../../shared/operations';
-import * as actions from './index';
-import * as messages from '../../shared/messages';
-import * as scrolls from '../scrolls';
-import * as navigates from '../navigates';
-import * as focuses from '../focuses';
-import * as urls from '../urls';
-import * as consoleFrames from '../console-frames';
-import * as addonActions from './addon';
-import * as markActions from './mark';
-
-// eslint-disable-next-line complexity, max-lines-per-function
-const exec = (
- operation: operations.Operation,
- settings: any,
- addonEnabled: boolean,
-): Promise<actions.Action> | actions.Action => {
- let smoothscroll = settings.properties.smoothscroll;
- switch (operation.type) {
- case operations.ADDON_ENABLE:
- return addonActions.enable();
- case operations.ADDON_DISABLE:
- return addonActions.disable();
- case operations.ADDON_TOGGLE_ENABLED:
- return addonActions.setEnabled(!addonEnabled);
- case operations.FIND_NEXT:
- window.top.postMessage(JSON.stringify({
- type: messages.FIND_NEXT,
- }), '*');
- break;
- case operations.FIND_PREV:
- window.top.postMessage(JSON.stringify({
- type: messages.FIND_PREV,
- }), '*');
- break;
- case operations.SCROLL_VERTICALLY:
- scrolls.scrollVertically(operation.count, smoothscroll);
- break;
- case operations.SCROLL_HORIZONALLY:
- scrolls.scrollHorizonally(operation.count, smoothscroll);
- break;
- case operations.SCROLL_PAGES:
- scrolls.scrollPages(operation.count, smoothscroll);
- break;
- case operations.SCROLL_TOP:
- scrolls.scrollToTop(smoothscroll);
- break;
- case operations.SCROLL_BOTTOM:
- scrolls.scrollToBottom(smoothscroll);
- break;
- case operations.SCROLL_HOME:
- scrolls.scrollToHome(smoothscroll);
- break;
- case operations.SCROLL_END:
- scrolls.scrollToEnd(smoothscroll);
- break;
- case operations.FOLLOW_START:
- window.top.postMessage(JSON.stringify({
- type: messages.FOLLOW_START,
- newTab: operation.newTab,
- background: operation.background,
- }), '*');
- break;
- case operations.MARK_SET_PREFIX:
- return markActions.startSet();
- case operations.MARK_JUMP_PREFIX:
- return markActions.startJump();
- case operations.NAVIGATE_HISTORY_PREV:
- navigates.historyPrev(window);
- break;
- case operations.NAVIGATE_HISTORY_NEXT:
- navigates.historyNext(window);
- break;
- case operations.NAVIGATE_LINK_PREV:
- navigates.linkPrev(window);
- break;
- case operations.NAVIGATE_LINK_NEXT:
- navigates.linkNext(window);
- break;
- case operations.NAVIGATE_PARENT:
- navigates.parent(window);
- break;
- case operations.NAVIGATE_ROOT:
- navigates.root(window);
- break;
- case operations.FOCUS_INPUT:
- focuses.focusInput();
- break;
- case operations.URLS_YANK:
- urls.yank(window);
- consoleFrames.postInfo('Yanked ' + window.location.href);
- break;
- case operations.URLS_PASTE:
- urls.paste(
- window, operation.newTab ? operation.newTab : false, settings.search
- );
- break;
- default:
- browser.runtime.sendMessage({
- type: messages.BACKGROUND_OPERATION,
- operation,
- });
- }
- return { type: actions.NOOP };
-};
-
-export { exec };
diff --git a/src/content/actions/setting.ts b/src/content/actions/setting.ts
deleted file mode 100644
index 92f8559..0000000
--- a/src/content/actions/setting.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import * as actions from './index';
-import * as operations from '../../shared/operations';
-import * as messages from '../../shared/messages';
-import Settings, { Keymaps } from '../../shared/Settings';
-
-const reservedKeymaps: Keymaps = {
- '<Esc>': { type: operations.CANCEL },
- '<C-[>': { type: operations.CANCEL },
-};
-
-const set = (settings: Settings): actions.SettingAction => {
- return {
- type: actions.SETTING_SET,
- settings: {
- ...settings,
- keymaps: { ...settings.keymaps, ...reservedKeymaps },
- }
- };
-};
-
-const load = async(): Promise<actions.SettingAction> => {
- let settings = await browser.runtime.sendMessage({
- type: messages.SETTINGS_QUERY,
- });
- return set(settings);
-};
-
-export { set, load };