aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/content/actions/operation.ts17
-rw-r--r--src/content/components/common/mark.ts9
-rw-r--r--src/content/components/top-content/index.ts5
-rw-r--r--src/content/presenters/FindPresenter.ts7
-rw-r--r--src/content/presenters/ScrollPresenter.ts (renamed from src/content/scrolls.ts)133
5 files changed, 89 insertions, 82 deletions
diff --git a/src/content/actions/operation.ts b/src/content/actions/operation.ts
index f65d0bd..b264e36 100644
--- a/src/content/actions/operation.ts
+++ b/src/content/actions/operation.ts
@@ -1,7 +1,6 @@
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';
@@ -10,9 +9,11 @@ import * as markActions from './mark';
import AddonEnabledUseCase from '../usecases/AddonEnabledUseCase';
import { SettingRepositoryImpl } from '../repositories/SettingRepository';
+import { ScrollPresenterImpl } from '../presenters/ScrollPresenter';
let addonEnabledUseCase = new AddonEnabledUseCase();
let settingRepository = new SettingRepositoryImpl();
+let scrollPresenter = new ScrollPresenterImpl();
// eslint-disable-next-line complexity, max-lines-per-function
const exec = async(
@@ -41,25 +42,25 @@ const exec = async(
}), '*');
break;
case operations.SCROLL_VERTICALLY:
- scrolls.scrollVertically(operation.count, smoothscroll);
+ scrollPresenter.scrollVertically(operation.count, smoothscroll);
break;
case operations.SCROLL_HORIZONALLY:
- scrolls.scrollHorizonally(operation.count, smoothscroll);
+ scrollPresenter.scrollHorizonally(operation.count, smoothscroll);
break;
case operations.SCROLL_PAGES:
- scrolls.scrollPages(operation.count, smoothscroll);
+ scrollPresenter.scrollPages(operation.count, smoothscroll);
break;
case operations.SCROLL_TOP:
- scrolls.scrollToTop(smoothscroll);
+ scrollPresenter.scrollToTop(smoothscroll);
break;
case operations.SCROLL_BOTTOM:
- scrolls.scrollToBottom(smoothscroll);
+ scrollPresenter.scrollToBottom(smoothscroll);
break;
case operations.SCROLL_HOME:
- scrolls.scrollToHome(smoothscroll);
+ scrollPresenter.scrollToHome(smoothscroll);
break;
case operations.SCROLL_END:
- scrolls.scrollToEnd(smoothscroll);
+ scrollPresenter.scrollToEnd(smoothscroll);
break;
case operations.FOLLOW_START:
window.top.postMessage(JSON.stringify({
diff --git a/src/content/components/common/mark.ts b/src/content/components/common/mark.ts
index 77aa15d..ddd1a38 100644
--- a/src/content/components/common/mark.ts
+++ b/src/content/components/common/mark.ts
@@ -1,12 +1,13 @@
import * as markActions from '../../actions/mark';
-import * as scrolls from '../..//scrolls';
import * as consoleFrames from '../..//console-frames';
import * as keyUtils from '../../../shared/utils/keys';
import Mark from '../../Mark';
import { SettingRepositoryImpl } from '../../repositories/SettingRepository';
+import { ScrollPresenterImpl } from '../../presenters/ScrollPresenter';
let settingRepository = new SettingRepositoryImpl();
+let scrollPresenter = new ScrollPresenterImpl();
const cancelKey = (key: keyUtils.Key): boolean => {
return key.key === 'Esc' || key.key === '[' && Boolean(key.ctrlKey);
@@ -54,7 +55,7 @@ export default class MarkComponent {
}
doSet(key: keyUtils.Key) {
- let { x, y } = scrolls.getScroll();
+ let { x, y } = scrollPresenter.getScroll();
this.store.dispatch(markActions.setLocal(key.key, x, y));
}
@@ -69,11 +70,11 @@ export default class MarkComponent {
}
let { x, y } = marks[key.key];
- scrolls.scrollTo(x, y, smoothscroll);
+ scrollPresenter.scrollTo(x, y, smoothscroll);
}
doSetGlobal(key: keyUtils.Key) {
- let { x, y } = scrolls.getScroll();
+ let { x, y } = scrollPresenter.getScroll();
this.store.dispatch(markActions.setGlobal(key.key, x, y));
}
diff --git a/src/content/components/top-content/index.ts b/src/content/components/top-content/index.ts
index b9ef2dd..de14b3f 100644
--- a/src/content/components/top-content/index.ts
+++ b/src/content/components/top-content/index.ts
@@ -4,10 +4,11 @@ import FindComponent from './find';
import * as consoleFrames from '../../console-frames';
import * as messages from '../../../shared/messages';
import MessageListener from '../../MessageListener';
-import * as scrolls from '../../scrolls';
import AddonEnabledUseCase from '../../usecases/AddonEnabledUseCase';
+import { ScrollPresenterImpl } from '../../presenters/ScrollPresenter';
let addonEnabledUseCase = new AddonEnabledUseCase();
+let scrollPresenter = new ScrollPresenterImpl();
export default class TopContent {
private win: Window;
@@ -42,7 +43,7 @@ export default class TopContent {
case messages.ADDON_ENABLED_QUERY:
return Promise.resolve(addonEnabled);
case messages.TAB_SCROLL_TO:
- return scrolls.scrollTo(message.x, message.y, false);
+ return scrollPresenter.scrollTo(message.x, message.y, false);
}
}
}
diff --git a/src/content/presenters/FindPresenter.ts b/src/content/presenters/FindPresenter.ts
index 6dd03f8..d9bc835 100644
--- a/src/content/presenters/FindPresenter.ts
+++ b/src/content/presenters/FindPresenter.ts
@@ -1,4 +1,3 @@
-import ConsoleClient, { ConsoleClientImpl } from '../client/ConsoleClient';
export default interface FindPresenter {
find(keyword: string, backwards: boolean): boolean;
@@ -28,12 +27,6 @@ interface MyWindow extends Window {
declare var window: MyWindow;
export class FindPresenterImpl implements FindPresenter {
- private consoleClient: ConsoleClient;
-
- constructor({ consoleClient = new ConsoleClientImpl() } = {}) {
- this.consoleClient = consoleClient;
- }
-
find(keyword: string, backwards: boolean): boolean {
let caseSensitive = false;
let wrapScan = true;
diff --git a/src/content/scrolls.ts b/src/content/presenters/ScrollPresenter.ts
index 6a35315..9f47394 100644
--- a/src/content/scrolls.ts
+++ b/src/content/presenters/ScrollPresenter.ts
@@ -1,4 +1,4 @@
-import * as doms from '../shared/utils/dom';
+import * as doms from '../../shared/utils/dom';
const SCROLL_DELTA_X = 64;
const SCROLL_DELTA_Y = 64;
@@ -94,75 +94,86 @@ class Scroller {
}
}
-const getScroll = () => {
- let target = scrollTarget();
- return { x: target.scrollLeft, y: target.scrollTop };
-};
+type Point = { x: number, y: number };
+
+export default interface ScrollPresenter {
+ getScroll(): Point;
+ scrollVertically(amount: number, smooth: boolean): void;
+ scrollHorizonally(amount: number, smooth: boolean): void;
+ scrollPages(amount: number, smooth: boolean): void;
+ scrollTo(x: number, y: number, smooth: boolean): void;
+ scrollToTop(smooth: boolean): void;
+ scrollToBottom(smooth: boolean): void;
+ scrollToHome(smooth: boolean): void;
+ scrollToEnd(smooth: boolean): void;
+
+ // eslint-disable-next-line semi
+}
-const scrollVertically = (count: number, smooth: boolean): void => {
- let target = scrollTarget();
- let delta = SCROLL_DELTA_Y * count;
- if (scrolling) {
- delta = SCROLL_DELTA_Y * count * 4;
+export class ScrollPresenterImpl {
+ getScroll(): Point {
+ let target = scrollTarget();
+ return { x: target.scrollLeft, y: target.scrollTop };
}
- new Scroller(target, smooth).scrollBy(0, delta);
-};
-const scrollHorizonally = (count: number, smooth: boolean): void => {
- let target = scrollTarget();
- let delta = SCROLL_DELTA_X * count;
- if (scrolling) {
- delta = SCROLL_DELTA_X * count * 4;
+ scrollVertically(count: number, smooth: boolean): void {
+ let target = scrollTarget();
+ let delta = SCROLL_DELTA_Y * count;
+ if (scrolling) {
+ delta = SCROLL_DELTA_Y * count * 4;
+ }
+ new Scroller(target, smooth).scrollBy(0, delta);
}
- new Scroller(target, smooth).scrollBy(delta, 0);
-};
-const scrollPages = (count: number, smooth: boolean): void => {
- let target = scrollTarget();
- let height = target.clientHeight;
- let delta = height * count;
- if (scrolling) {
- delta = height * count;
+ scrollHorizonally(count: number, smooth: boolean): void {
+ let target = scrollTarget();
+ let delta = SCROLL_DELTA_X * count;
+ if (scrolling) {
+ delta = SCROLL_DELTA_X * count * 4;
+ }
+ new Scroller(target, smooth).scrollBy(delta, 0);
}
- new Scroller(target, smooth).scrollBy(0, delta);
-};
-const scrollTo = (x: number, y: number, smooth: boolean): void => {
- let target = scrollTarget();
- new Scroller(target, smooth).scrollTo(x, y);
-};
+ scrollPages(count: number, smooth: boolean): void {
+ let target = scrollTarget();
+ let height = target.clientHeight;
+ let delta = height * count;
+ if (scrolling) {
+ delta = height * count;
+ }
+ new Scroller(target, smooth).scrollBy(0, delta);
+ }
-const scrollToTop = (smooth: boolean): void => {
- let target = scrollTarget();
- let x = target.scrollLeft;
- let y = 0;
- new Scroller(target, smooth).scrollTo(x, y);
-};
+ scrollTo(x: number, y: number, smooth: boolean): void {
+ let target = scrollTarget();
+ new Scroller(target, smooth).scrollTo(x, y);
+ }
-const scrollToBottom = (smooth: boolean): void => {
- let target = scrollTarget();
- let x = target.scrollLeft;
- let y = target.scrollHeight;
- new Scroller(target, smooth).scrollTo(x, y);
-};
+ scrollToTop(smooth: boolean): void {
+ let target = scrollTarget();
+ let x = target.scrollLeft;
+ let y = 0;
+ new Scroller(target, smooth).scrollTo(x, y);
+ }
-const scrollToHome = (smooth: boolean): void => {
- let target = scrollTarget();
- let x = 0;
- let y = target.scrollTop;
- new Scroller(target, smooth).scrollTo(x, y);
-};
+ scrollToBottom(smooth: boolean): void {
+ let target = scrollTarget();
+ let x = target.scrollLeft;
+ let y = target.scrollHeight;
+ new Scroller(target, smooth).scrollTo(x, y);
+ }
-const scrollToEnd = (smooth: boolean): void => {
- let target = scrollTarget();
- let x = target.scrollWidth;
- let y = target.scrollTop;
- new Scroller(target, smooth).scrollTo(x, y);
-};
+ scrollToHome(smooth: boolean): void {
+ let target = scrollTarget();
+ let x = 0;
+ let y = target.scrollTop;
+ new Scroller(target, smooth).scrollTo(x, y);
+ }
-export {
- getScroll,
- scrollVertically, scrollHorizonally, scrollPages,
- scrollTo,
- scrollToTop, scrollToBottom, scrollToHome, scrollToEnd
-};
+ scrollToEnd(smooth: boolean): void {
+ let target = scrollTarget();
+ let x = target.scrollWidth;
+ let y = target.scrollTop;
+ new Scroller(target, smooth).scrollTo(x, y);
+ }
+}