summaryrefslogtreecommitdiff
path: root/src/client/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-02-16 20:58:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-02-16 20:58:41 +0900
commita5b92e316c197b1dd4422b77525601fc014b1f13 (patch)
treeecf9cf4641ca7f3492fd0b1014279aadc698fbc6 /src/client/scripts
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-a5b92e316c197b1dd4422b77525601fc014b1f13.tar.gz
sharkey-a5b92e316c197b1dd4422b77525601fc014b1f13.tar.bz2
sharkey-a5b92e316c197b1dd4422b77525601fc014b1f13.zip
Refactor: Extract scroll utility functions
Diffstat (limited to 'src/client/scripts')
-rw-r--r--src/client/scripts/paging.ts29
-rw-r--r--src/client/scripts/scroll.ts27
2 files changed, 28 insertions, 28 deletions
diff --git a/src/client/scripts/paging.ts b/src/client/scripts/paging.ts
index f002c9f555..07eaf20ff3 100644
--- a/src/client/scripts/paging.ts
+++ b/src/client/scripts/paging.ts
@@ -1,32 +1,5 @@
import Vue from 'vue';
-
-function getScrollContainer(el: Element | null): Element | null {
- if (el == null || el.tagName === 'BODY') return null;
- const style = window.getComputedStyle(el);
- if (style.getPropertyValue('overflow') === 'auto') {
- return el;
- } else {
- return getScrollContainer(el.parentElement);
- }
-}
-
-function getScrollPosition(el: Element | null): number {
- const container = getScrollContainer(el);
- return container == null ? window.scrollY : container.scrollTop;
-}
-
-function onScrollTop(el, cb) {
- const container = getScrollContainer(el) || window;
- const onScroll = ev => {
- if (!document.body.contains(el)) return;
- const pos = getScrollPosition(el);
- if (pos === 0) {
- cb();
- container.removeEventListener('scroll', onscroll);
- }
- };
- container.addEventListener('scroll', onScroll, { passive: true });
-}
+import { getScrollPosition, onScrollTop } from './scroll';
const SECOND_FETCH_LIMIT = 30;
diff --git a/src/client/scripts/scroll.ts b/src/client/scripts/scroll.ts
new file mode 100644
index 0000000000..76881bbde1
--- /dev/null
+++ b/src/client/scripts/scroll.ts
@@ -0,0 +1,27 @@
+export function getScrollContainer(el: Element | null): Element | null {
+ if (el == null || el.tagName === 'BODY') return null;
+ const style = window.getComputedStyle(el);
+ if (style.getPropertyValue('overflow') === 'auto') {
+ return el;
+ } else {
+ return getScrollContainer(el.parentElement);
+ }
+}
+
+export function getScrollPosition(el: Element | null): number {
+ const container = getScrollContainer(el);
+ return container == null ? window.scrollY : container.scrollTop;
+}
+
+export function onScrollTop(el: Element, cb) {
+ const container = getScrollContainer(el) || window;
+ const onScroll = ev => {
+ if (!document.body.contains(el)) return;
+ const pos = getScrollPosition(el);
+ if (pos === 0) {
+ cb();
+ container.removeEventListener('scroll', onscroll);
+ }
+ };
+ container.addEventListener('scroll', onScroll, { passive: true });
+}