@onepercentio/one-ui 0.13.5 → 0.13.6

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.
@@ -2,8 +2,11 @@ import { RefObject } from "react";
2
2
  /**
3
3
  * This hook handles the display of pagination controls for the user to move to another page
4
4
  */
5
- export default function usePaginationControls(containerRef: RefObject<HTMLDivElement>, { snapToPage, }?: {
5
+ export default function usePaginationControls(containerRef: RefObject<HTMLDivElement>, { snapToPage, baseWidth, snapToCutElement, }?: {
6
6
  snapToPage?: boolean;
7
+ baseWidth?: number;
8
+ /** This will scroll only until the partially visible element is at the border, instead of scrolling all the container */
9
+ snapToCutElement?: boolean;
7
10
  }): {
8
11
  controls: JSX.Element[];
9
12
  checkControlsRequirement: () => void;
@@ -35,26 +35,48 @@ const usePaginationControls_module_scss_1 = __importDefault(require("./usePagina
35
35
  /**
36
36
  * This hook handles the display of pagination controls for the user to move to another page
37
37
  */
38
- function usePaginationControls(containerRef, { snapToPage, } = {}) {
38
+ function usePaginationControls(containerRef, { snapToPage, baseWidth, snapToCutElement, } = {}) {
39
39
  const [[leftControl, rightControl], setControls] = (0, react_1.useState)([false, false]);
40
40
  const LeftControl = (0, OneUIProvider_1.useOneUIConfig)("hook.ui.usePaginationControls.LeftControl");
41
41
  const RightControl = (0, OneUIProvider_1.useOneUIConfig)("hook.ui.usePaginationControls.RightControl");
42
42
  const className = (0, OneUIProvider_1.useOneUIConfig)("hook.ui.usePaginationControls.className", "");
43
43
  function move(direction) {
44
44
  return () => {
45
- const rest = containerRef.current.scrollLeft % containerRef.current.clientWidth;
46
- const snapOffset = snapToPage
47
- ? direction === "l"
48
- ? rest
49
- ? containerRef.current.clientWidth - rest
50
- : 0
51
- : rest
52
- : 0;
53
- containerRef.current.scrollBy({
54
- left: (containerRef.current.clientWidth - snapOffset) *
55
- (direction === "l" ? -1 : 1),
56
- behavior: "smooth",
57
- });
45
+ if (snapToCutElement !== null && snapToCutElement !== void 0 ? snapToCutElement : false) {
46
+ const childBaseWidth = baseWidth || containerRef.current.firstElementChild.clientWidth;
47
+ const howMuchDoesTheScrollAddsUpTo = containerRef.current.scrollLeft / childBaseWidth -
48
+ Math.floor(containerRef.current.scrollLeft / childBaseWidth);
49
+ const howMuchElementsFitOnAPage = containerRef.current.clientWidth / childBaseWidth;
50
+ const howMuchElementsFullyFitOnAPage = Math.floor(howMuchElementsFitOnAPage);
51
+ const directionScale = direction === "l"
52
+ ? 1 - howMuchDoesTheScrollAddsUpTo
53
+ : howMuchDoesTheScrollAddsUpTo;
54
+ const howMuchOfTheRemainingElementIsShown = howMuchElementsFitOnAPage +
55
+ directionScale -
56
+ howMuchElementsFullyFitOnAPage;
57
+ const howMuchToScroll = (containerRef.current.clientWidth -
58
+ childBaseWidth * howMuchOfTheRemainingElementIsShown) *
59
+ (direction === "l" ? -1 : 1);
60
+ containerRef.current.scrollBy({
61
+ left: howMuchToScroll,
62
+ behavior: "smooth",
63
+ });
64
+ }
65
+ else {
66
+ const rest = containerRef.current.scrollLeft % containerRef.current.clientWidth;
67
+ const snapOffset = snapToPage
68
+ ? direction === "l"
69
+ ? rest
70
+ ? containerRef.current.clientWidth - rest
71
+ : 0
72
+ : rest
73
+ : 0;
74
+ containerRef.current.scrollBy({
75
+ left: (containerRef.current.clientWidth - snapOffset) *
76
+ (direction === "l" ? -1 : 1),
77
+ behavior: "smooth",
78
+ });
79
+ }
58
80
  };
59
81
  }
60
82
  function checkControlsRequirement() {
@@ -1 +1 @@
1
- {"version":3,"file":"usePaginationControls.js","sourceRoot":"","sources":["../../../src/hooks/ui/usePaginationControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePaginationControls.js","sourceRoot":"","sources":["../../../src/hooks/ui/usePaginationControls.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onepercentio/one-ui",
3
- "version": "0.13.5",
3
+ "version": "0.13.6",
4
4
  "description": "A set of reusable components created through the development of Onepercent projects",
5
5
  "repository": "git@github.com:onepercentio/one-ui.git",
6
6
  "author": "Murilo Oliveira de Araujo <murilo.araujo@onepercent.io>",