@fajarmaulana/komerce-lp-helper 0.2.2 → 0.3.1

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.
@@ -1,19 +1,3 @@
1
- var __read = (this && this.__read) || function (o, n) {
2
- var m = typeof Symbol === "function" && o[Symbol.iterator];
3
- if (!m) return o;
4
- var i = m.call(o), r, ar = [], e;
5
- try {
6
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
- }
8
- catch (error) { e = { error: error }; }
9
- finally {
10
- try {
11
- if (r && !r.done && (m = i["return"])) m.call(i);
12
- }
13
- finally { if (e) throw e.error; }
14
- }
15
- return ar;
16
- };
17
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
18
2
  import { useMemo, useRef, useState } from 'react';
19
3
  import { MOBILE_BOUND } from '../constants';
@@ -25,9 +9,8 @@ import { MOBILE_BOUND } from '../constants';
25
9
  * @param axis - The axis to get position from, either 'X' or 'Y' (default: 'X').
26
10
  * @returns The page X or Y coordinate from the event.
27
11
  */
28
- export function slider(_a) {
29
- var e = _a.e, mobile = _a.mobile, axis = _a.axis;
30
- return mobile ? e.changedTouches[0]["page".concat(axis)] : e["page".concat(axis)];
12
+ export function slider({ e, mobile, axis }) {
13
+ return mobile ? e.changedTouches[0][`page${axis}`] : e[`page${axis}`];
31
14
  }
32
15
  /**
33
16
  * useSlider is a custom hook to manage the logic for the slider component.
@@ -41,24 +24,23 @@ export function slider(_a) {
41
24
  * @param onBack - Emited method to override the back function.
42
25
  * @returns An object containing state values and handlers for slider control and interaction.
43
26
  */
44
- export function useSlider(_a) {
45
- var data = _a.data, mobileOnly = _a.mobileOnly, infiniteSlide = _a.infiniteSlide, isLoading = _a.isLoading, mobileBound = _a.mobileBound, onBack = _a.onBack, onNext = _a.onNext;
46
- var _b = __read(useState(0), 2), currentSlide = _b[0], setCurrentSlide = _b[1];
47
- var _c = __read(useState(0), 2), movement = _c[0], setMovement = _c[1];
48
- var _d = __read(useState(false), 2), grab = _d[0], setGrab = _d[1];
49
- var startRef = useRef(0);
50
- var endRef = useRef(0);
51
- var throttleRef = useRef(false);
27
+ export function useSlider({ data, mobileOnly, infiniteSlide, isLoading, mobileBound, onBack, onNext }) {
28
+ const [currentSlide, setCurrentSlide] = useState(0);
29
+ const [movement, setMovement] = useState(0);
30
+ const [grab, setGrab] = useState(false);
31
+ const startRef = useRef(0);
32
+ const endRef = useRef(0);
33
+ const throttleRef = useRef(false);
52
34
  /**
53
35
  * Determines whether the left navigation arrow should be disabled.
54
36
  */
55
- var disableLeftArrow = useMemo(function () {
37
+ const disableLeftArrow = useMemo(() => {
56
38
  return currentSlide === 0 || data.length === 0 || isLoading;
57
39
  }, [currentSlide, data, isLoading]);
58
40
  /**
59
41
  * Determines whether the right navigation arrow should be disabled.
60
42
  */
61
- var disableRightArrow = useMemo(function () {
43
+ const disableRightArrow = useMemo(() => {
62
44
  return currentSlide === data.length - 1 || data.length === 0 || isLoading;
63
45
  }, [currentSlide, data, isLoading]);
64
46
  /**
@@ -67,7 +49,7 @@ export function useSlider(_a) {
67
49
  * @param e - Mouse or touch event.
68
50
  * @param param - Optional parameter to indicate a mobile event. Defaults to `true`.
69
51
  */
70
- var startSlide = function (param) {
52
+ const startSlide = (param) => {
71
53
  if (mobileOnly && window.innerWidth >= (mobileBound || MOBILE_BOUND))
72
54
  return;
73
55
  startRef.current = slider(param);
@@ -79,13 +61,13 @@ export function useSlider(_a) {
79
61
  * @param e - Mouse or touch event.
80
62
  * @param param - Optional parameter to indicate a mobile event.
81
63
  */
82
- var moveSlide = function (param) {
64
+ const moveSlide = (param) => {
83
65
  if (mobileOnly && window.innerWidth >= (mobileBound || MOBILE_BOUND))
84
66
  return;
85
- var diff = slider(param) - startRef.current;
86
- var move = param.mobile && Math.abs(diff) <= 24 ? 0 : diff;
67
+ const diff = slider(param) - startRef.current;
68
+ const move = param.mobile && Math.abs(diff) <= 24 ? 0 : diff;
87
69
  if (!onNext || !onBack) {
88
- var len = data.length - 1;
70
+ const len = data.length - 1;
89
71
  if (currentSlide === 0 && move > 0)
90
72
  setCurrentSlide(0);
91
73
  if (currentSlide === len && move < 0)
@@ -96,42 +78,41 @@ export function useSlider(_a) {
96
78
  /**
97
79
  * Throttle call of next and back function.
98
80
  */
99
- var throttle = function (callback, delay) {
100
- if (delay === void 0) { delay = 100; }
81
+ const throttle = (callback, delay = 100) => {
101
82
  if (throttleRef.current)
102
83
  return;
103
84
  throttleRef.current = true;
104
85
  callback();
105
- setTimeout(function () {
86
+ setTimeout(() => {
106
87
  throttleRef.current = false;
107
88
  }, delay);
108
89
  };
109
90
  /**
110
91
  * Navigates to the next slide if possible.
111
92
  */
112
- var next = function () {
93
+ const next = () => {
113
94
  if (disableRightArrow && !infiniteSlide)
114
95
  return;
115
- throttle(function () {
96
+ throttle(() => {
116
97
  if (disableRightArrow) {
117
98
  setCurrentSlide(0);
118
99
  return;
119
100
  }
120
- setCurrentSlide(function (prev) { return prev + 1; });
101
+ setCurrentSlide(prev => prev + 1);
121
102
  });
122
103
  };
123
104
  /**
124
105
  * Navigates to the previous slide if possible.
125
106
  */
126
- var back = function () {
107
+ const back = () => {
127
108
  if (disableLeftArrow && !infiniteSlide)
128
109
  return;
129
- throttle(function () {
110
+ throttle(() => {
130
111
  if (disableLeftArrow) {
131
112
  setCurrentSlide(data.length - 1);
132
113
  return;
133
114
  }
134
- setCurrentSlide(function (prev) { return prev - 1; });
115
+ setCurrentSlide(prev => prev - 1);
135
116
  });
136
117
  };
137
118
  /**
@@ -140,7 +121,7 @@ export function useSlider(_a) {
140
121
  * @param e - Mouse or touch event.
141
122
  * @param param - Optional parameter to indicate a mobile event.
142
123
  */
143
- var endSlide = function (param) {
124
+ const endSlide = (param) => {
144
125
  if (mobileOnly && window.innerWidth >= (mobileBound || MOBILE_BOUND))
145
126
  return;
146
127
  setGrab(false);
@@ -152,16 +133,16 @@ export function useSlider(_a) {
152
133
  setMovement(0);
153
134
  };
154
135
  return {
155
- currentSlide: currentSlide,
156
- movement: movement,
157
- grab: grab,
158
- disableLeftArrow: disableLeftArrow,
159
- disableRightArrow: disableRightArrow,
160
- setCurrentSlide: setCurrentSlide,
161
- startSlide: startSlide,
162
- moveSlide: moveSlide,
163
- endSlide: endSlide,
164
- next: next,
165
- back: back,
136
+ currentSlide,
137
+ movement,
138
+ grab,
139
+ disableLeftArrow,
140
+ disableRightArrow,
141
+ setCurrentSlide,
142
+ startSlide,
143
+ moveSlide,
144
+ endSlide,
145
+ next,
146
+ back,
166
147
  };
167
148
  }