use-scroller 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  ![node](https://img.shields.io/node/v/scroll-js)
3
3
  ![license](https://img.shields.io/npm/l/scroll-js)
4
4
 
5
- ## use-scroll
5
+ ## use-scroller
6
6
 
7
7
  A light-weight library that will allow you to scroll any html element using simple react hooks provided by the package.
8
8
  In addition to providing extra scrolling features, this library also return a number of callback that can triger scroll operation depending on the user needs.
@@ -16,4 +16,5 @@ export declare function useScroll<T extends HTMLElement>(props?: Partial<ScrollO
16
16
  scrollBottom: (offset?: number) => void;
17
17
  scrollTop: (offset?: number) => void;
18
18
  scrollCenter: () => void;
19
+ scroll: (from: number, to: number) => void;
19
20
  };
@@ -28,6 +28,11 @@ function useScroll(props) {
28
28
  isScrolledBottom: false,
29
29
  }); }), state = _a[0], setState = _a[1];
30
30
  var scrollOpt = __assign(__assign({}, utils_1.defaultScrollOptions), props);
31
+ var scroll = (0, react_1.useCallback)(function (from, to) {
32
+ var container = (0, utils_1.getElement)(ref);
33
+ var scrollContainer = (0, scroller_1.scroller)({ container: container, options: scrollOpt });
34
+ scrollContainer.scrollTo(from, to);
35
+ }, []);
31
36
  var scrollCenter = (0, react_1.useCallback)(function () {
32
37
  var container = (0, utils_1.getElement)(ref);
33
38
  var scrollContainer = (0, scroller_1.scroller)({ container: container, options: scrollOpt });
@@ -79,6 +84,7 @@ function useScroll(props) {
79
84
  scrollBottom: scrollBottom,
80
85
  scrollTop: scrollTop,
81
86
  scrollCenter: scrollCenter,
87
+ scroll: scroll,
82
88
  };
83
89
  }
84
90
  exports.useScroll = useScroll;
@@ -9,4 +9,5 @@ export declare function useWindowScroll(props?: Partial<Omit<ScrollOptions, 'dir
9
9
  scrollTop: (offset?: number | undefined) => void;
10
10
  scrollBottom: (offset?: number | undefined) => void;
11
11
  scrollToTarget: (currentTarget: HTMLElement) => void;
12
+ scroll: (from: number, to: number) => void;
12
13
  };
@@ -27,6 +27,10 @@ function useWindowScroll(props) {
27
27
  container: window,
28
28
  options: __assign(__assign({}, utils_1.defaultScrollOptions), props),
29
29
  };
30
+ var scroll = (0, react_1.useCallback)(function (from, to) {
31
+ var scrollContainer = (0, scroller_1.scroller)(scrollArgs);
32
+ scrollContainer.scrollTo(from, to);
33
+ }, []);
30
34
  var scrollToTarget = (0, react_1.useCallback)(function (currentTarget) {
31
35
  var scrollContainer = (0, scroller_1.scroller)(scrollArgs);
32
36
  scrollContainer.scrollToTarget(currentTarget);
@@ -51,6 +55,6 @@ function useWindowScroll(props) {
51
55
  window === null || window === void 0 ? void 0 : window.addEventListener('scroll', handleScroll);
52
56
  return function () { return window === null || window === void 0 ? void 0 : window.removeEventListener('scroll', handleScroll); };
53
57
  }, []);
54
- return { state: state, scrollTop: scrollTop, scrollBottom: scrollBottom, scrollToTarget: scrollToTarget };
58
+ return { state: state, scrollTop: scrollTop, scrollBottom: scrollBottom, scrollToTarget: scrollToTarget, scroll: scroll };
55
59
  }
56
60
  exports.useWindowScroll = useWindowScroll;
@@ -6,4 +6,5 @@ export declare function scroller({ container, options }: ScrollerProps): {
6
6
  scrollToBottom: (offset?: number) => void;
7
7
  scrollToTarget: (target: HTMLElement) => void;
8
8
  scrollToCenter: () => void;
9
+ scrollTo: (from: number, to: number, layout?: 'horizontal' | 'vertical') => void;
9
10
  };
@@ -16,6 +16,7 @@ function scroller(_a) {
16
16
  * @param {string} layout the scroll direction.
17
17
  */
18
18
  function scrollTo(from, to, layout) {
19
+ if (layout === void 0) { layout = direction; }
19
20
  var startTime = null;
20
21
  var requestId = 0;
21
22
  function loop(currentTime) {
@@ -90,6 +91,7 @@ function scroller(_a) {
90
91
  scrollToBottom: scrollToBottom,
91
92
  scrollToTarget: scrollToTarget,
92
93
  scrollToCenter: scrollToCenter,
94
+ scrollTo: scrollTo,
93
95
  };
94
96
  }
95
97
  exports.scroller = scroller;
@@ -16,4 +16,5 @@ export declare function useScroll<T extends HTMLElement>(props?: Partial<ScrollO
16
16
  scrollBottom: (offset?: number) => void;
17
17
  scrollTop: (offset?: number) => void;
18
18
  scrollCenter: () => void;
19
+ scroll: (from: number, to: number) => void;
19
20
  };
@@ -25,6 +25,11 @@ export function useScroll(props) {
25
25
  isScrolledBottom: false,
26
26
  }); }), state = _a[0], setState = _a[1];
27
27
  var scrollOpt = __assign(__assign({}, defaultScrollOptions), props);
28
+ var scroll = useCallback(function (from, to) {
29
+ var container = getElement(ref);
30
+ var scrollContainer = scroller({ container: container, options: scrollOpt });
31
+ scrollContainer.scrollTo(from, to);
32
+ }, []);
28
33
  var scrollCenter = useCallback(function () {
29
34
  var container = getElement(ref);
30
35
  var scrollContainer = scroller({ container: container, options: scrollOpt });
@@ -76,5 +81,6 @@ export function useScroll(props) {
76
81
  scrollBottom: scrollBottom,
77
82
  scrollTop: scrollTop,
78
83
  scrollCenter: scrollCenter,
84
+ scroll: scroll,
79
85
  };
80
86
  }
@@ -9,4 +9,5 @@ export declare function useWindowScroll(props?: Partial<Omit<ScrollOptions, 'dir
9
9
  scrollTop: (offset?: number | undefined) => void;
10
10
  scrollBottom: (offset?: number | undefined) => void;
11
11
  scrollToTarget: (currentTarget: HTMLElement) => void;
12
+ scroll: (from: number, to: number) => void;
12
13
  };
@@ -24,6 +24,10 @@ export function useWindowScroll(props) {
24
24
  container: window,
25
25
  options: __assign(__assign({}, defaultScrollOptions), props),
26
26
  };
27
+ var scroll = useCallback(function (from, to) {
28
+ var scrollContainer = scroller(scrollArgs);
29
+ scrollContainer.scrollTo(from, to);
30
+ }, []);
27
31
  var scrollToTarget = useCallback(function (currentTarget) {
28
32
  var scrollContainer = scroller(scrollArgs);
29
33
  scrollContainer.scrollToTarget(currentTarget);
@@ -48,5 +52,5 @@ export function useWindowScroll(props) {
48
52
  window === null || window === void 0 ? void 0 : window.addEventListener('scroll', handleScroll);
49
53
  return function () { return window === null || window === void 0 ? void 0 : window.removeEventListener('scroll', handleScroll); };
50
54
  }, []);
51
- return { state: state, scrollTop: scrollTop, scrollBottom: scrollBottom, scrollToTarget: scrollToTarget };
55
+ return { state: state, scrollTop: scrollTop, scrollBottom: scrollBottom, scrollToTarget: scrollToTarget, scroll: scroll };
52
56
  }
@@ -6,4 +6,5 @@ export declare function scroller({ container, options }: ScrollerProps): {
6
6
  scrollToBottom: (offset?: number) => void;
7
7
  scrollToTarget: (target: HTMLElement) => void;
8
8
  scrollToCenter: () => void;
9
+ scrollTo: (from: number, to: number, layout?: 'horizontal' | 'vertical') => void;
9
10
  };
@@ -13,6 +13,7 @@ export function scroller(_a) {
13
13
  * @param {string} layout the scroll direction.
14
14
  */
15
15
  function scrollTo(from, to, layout) {
16
+ if (layout === void 0) { layout = direction; }
16
17
  var startTime = null;
17
18
  var requestId = 0;
18
19
  function loop(currentTime) {
@@ -87,5 +88,6 @@ export function scroller(_a) {
87
88
  scrollToBottom: scrollToBottom,
88
89
  scrollToTarget: scrollToTarget,
89
90
  scrollToCenter: scrollToCenter,
91
+ scrollTo: scrollTo,
90
92
  };
91
93
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "use-scroller",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "author": "silvi lila",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/index.js",
@@ -10,6 +10,15 @@
10
10
  "dist",
11
11
  "src"
12
12
  ],
13
+ "keywords": [
14
+ "react",
15
+ "hook",
16
+ "scroll"
17
+ ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/silvi97lila/use-scroller.git"
21
+ },
13
22
  "scripts": {
14
23
  "build": "yarn clean && yarn build:esm && yarn build:cjs",
15
24
  "build:watch": "yarn build --watch",
@@ -18,6 +27,7 @@
18
27
  "clean": "rm -rf ./dist",
19
28
  "test": "jest",
20
29
  "lint": "lint ./src/*",
30
+ "bump": "changeset version",
21
31
  "release": "yarn build && changeset publish",
22
32
  "changeset": "changeset"
23
33
  },
@@ -17,6 +17,12 @@ export function useScroll<T extends HTMLElement>(props?: Partial<ScrollOptions>)
17
17
  }))
18
18
  const scrollOpt = { ...defaultScrollOptions, ...props }
19
19
 
20
+ const scroll = useCallback((from: number, to: number) => {
21
+ const container = getElement(ref)
22
+ const scrollContainer = scroller({ container, options: scrollOpt })
23
+ scrollContainer.scrollTo(from, to)
24
+ }, [])
25
+
20
26
  const scrollCenter = useCallback(() => {
21
27
  const container = getElement(ref)
22
28
  const scrollContainer = scroller({ container, options: scrollOpt })
@@ -84,5 +90,6 @@ export function useScroll<T extends HTMLElement>(props?: Partial<ScrollOptions>)
84
90
  scrollBottom,
85
91
  scrollTop,
86
92
  scrollCenter,
93
+ scroll,
87
94
  }
88
95
  }
@@ -16,6 +16,10 @@ export function useWindowScroll(props?: Partial<Omit<ScrollOptions, 'direction'>
16
16
  container: window,
17
17
  options: { ...defaultScrollOptions, ...props },
18
18
  }
19
+ const scroll = useCallback((from: number, to: number) => {
20
+ const scrollContainer = scroller(scrollArgs)
21
+ scrollContainer.scrollTo(from, to)
22
+ }, [])
19
23
 
20
24
  const scrollToTarget = useCallback((currentTarget: HTMLElement) => {
21
25
  const scrollContainer = scroller(scrollArgs)
@@ -52,5 +56,5 @@ export function useWindowScroll(props?: Partial<Omit<ScrollOptions, 'direction'>
52
56
  return () => window?.removeEventListener('scroll', handleScroll)
53
57
  }, [])
54
58
 
55
- return { state, scrollTop, scrollBottom, scrollToTarget }
59
+ return { state, scrollTop, scrollBottom, scrollToTarget, scroll }
56
60
  }
package/src/scroller.ts CHANGED
@@ -16,7 +16,7 @@ export function scroller({ container, options = defaultScrollOptions }: Scroller
16
16
  * @param {number} to the new position to scroll.
17
17
  * @param {string} layout the scroll direction.
18
18
  */
19
- function scrollTo(from: number, to: number, layout: 'horizontal' | 'vertical') {
19
+ function scrollTo(from: number, to: number, layout: 'horizontal' | 'vertical' = direction) {
20
20
  let startTime: number | null = null
21
21
  let requestId = 0
22
22
 
@@ -105,5 +105,6 @@ export function scroller({ container, options = defaultScrollOptions }: Scroller
105
105
  scrollToBottom,
106
106
  scrollToTarget,
107
107
  scrollToCenter,
108
+ scrollTo,
108
109
  }
109
110
  }