@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.
- package/dist/components/Form.js +7 -30
- package/dist/components/LazyBackground.js +2 -3
- package/dist/components/hooks/useLazyBackground.js +8 -26
- package/dist/constants/index.js +1 -1
- package/dist/constants/regex.js +10 -10
- package/dist/hooks/debounce.js +16 -47
- package/dist/hooks/form.js +26 -65
- package/dist/hooks/router.js +49 -89
- package/dist/hooks/sectionObserver.js +7 -25
- package/dist/hooks/slider.js +36 -55
- package/dist/utils/api.js +261 -434
- package/dist/utils/cookie.js +18 -19
- package/dist/utils/error-provider.js +30 -55
- package/dist/utils/file.js +27 -31
- package/dist/utils/general.d.ts +10 -0
- package/dist/utils/general.js +24 -11
- package/dist/utils/local.js +10 -10
- package/dist/utils/useApi.js +188 -315
- package/package.json +11 -1
package/dist/hooks/slider.js
CHANGED
|
@@ -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(
|
|
29
|
-
|
|
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(
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
+
const moveSlide = (param) => {
|
|
83
65
|
if (mobileOnly && window.innerWidth >= (mobileBound || MOBILE_BOUND))
|
|
84
66
|
return;
|
|
85
|
-
|
|
86
|
-
|
|
67
|
+
const diff = slider(param) - startRef.current;
|
|
68
|
+
const move = param.mobile && Math.abs(diff) <= 24 ? 0 : diff;
|
|
87
69
|
if (!onNext || !onBack) {
|
|
88
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
93
|
+
const next = () => {
|
|
113
94
|
if (disableRightArrow && !infiniteSlide)
|
|
114
95
|
return;
|
|
115
|
-
throttle(
|
|
96
|
+
throttle(() => {
|
|
116
97
|
if (disableRightArrow) {
|
|
117
98
|
setCurrentSlide(0);
|
|
118
99
|
return;
|
|
119
100
|
}
|
|
120
|
-
setCurrentSlide(
|
|
101
|
+
setCurrentSlide(prev => prev + 1);
|
|
121
102
|
});
|
|
122
103
|
};
|
|
123
104
|
/**
|
|
124
105
|
* Navigates to the previous slide if possible.
|
|
125
106
|
*/
|
|
126
|
-
|
|
107
|
+
const back = () => {
|
|
127
108
|
if (disableLeftArrow && !infiniteSlide)
|
|
128
109
|
return;
|
|
129
|
-
throttle(
|
|
110
|
+
throttle(() => {
|
|
130
111
|
if (disableLeftArrow) {
|
|
131
112
|
setCurrentSlide(data.length - 1);
|
|
132
113
|
return;
|
|
133
114
|
}
|
|
134
|
-
setCurrentSlide(
|
|
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
|
-
|
|
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
|
|
156
|
-
movement
|
|
157
|
-
grab
|
|
158
|
-
disableLeftArrow
|
|
159
|
-
disableRightArrow
|
|
160
|
-
setCurrentSlide
|
|
161
|
-
startSlide
|
|
162
|
-
moveSlide
|
|
163
|
-
endSlide
|
|
164
|
-
next
|
|
165
|
-
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
|
}
|