@tapcart/mobile-components 0.8.45 → 0.8.46
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../../components/ui/progress-bar.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;IACpD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;QAEX,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE;YACV,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,WAAW,CAAC,EAAE;YACZ,eAAe,CAAC,EAAE,MAAM,CAAA;YACxB,IAAI,CAAC,EAAE,MAAM,CAAA;SACd,CAAA;QACD,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,CAAA;CACF;AAID,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../../components/ui/progress-bar.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;IACpD;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;QAEX,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,SAAS,CAAC,EAAE;YACV,KAAK,CAAC,EAAE,MAAM,CAAA;YACd,QAAQ,CAAC,EAAE,MAAM,CAAA;YACjB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;QACD,WAAW,CAAC,EAAE;YACZ,eAAe,CAAC,EAAE,MAAM,CAAA;YACxB,IAAI,CAAC,EAAE,MAAM,CAAA;SACd,CAAA;QACD,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,CAAA;CACF;AAID,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8N3C,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useEffect, useState } from "react";
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
4
|
const NUM_MARKERS = 5;
|
|
5
5
|
const ProgressBar = ({ progress, borderStyle, emptyColor, corners, fillColor, animationDuration = 300, animationEasing = "easeInOut", height = 8, milestoneMarkers, }) => {
|
|
6
6
|
const [clampedProgress, setClampedProgress] = useState(0);
|
|
7
7
|
const [animatedMarkers, setAnimatedMarkers] = useState([]);
|
|
8
8
|
const [previousProgress, setPreviousProgress] = useState(0);
|
|
9
|
+
// Determine the number of markers to use
|
|
10
|
+
const markersCount = React.useMemo(() => {
|
|
11
|
+
if (milestoneMarkers &&
|
|
12
|
+
"start" in milestoneMarkers &&
|
|
13
|
+
"end" in milestoneMarkers &&
|
|
14
|
+
milestoneMarkers.end - milestoneMarkers.start < NUM_MARKERS) {
|
|
15
|
+
return milestoneMarkers.end - milestoneMarkers.start;
|
|
16
|
+
}
|
|
17
|
+
return NUM_MARKERS;
|
|
18
|
+
}, [milestoneMarkers]);
|
|
9
19
|
// Calculate the spacing between markers
|
|
10
|
-
const markerSpacing = 100 /
|
|
20
|
+
const markerSpacing = 100 / markersCount;
|
|
11
21
|
// Set beginning/end padding to half the distance between other markers
|
|
12
22
|
const beginningEndMarkerPadding = markerSpacing / 4;
|
|
13
23
|
useEffect(() => {
|
|
@@ -59,22 +69,22 @@ const ProgressBar = ({ progress, borderStyle, emptyColor, corners, fillColor, an
|
|
|
59
69
|
// Generate evenly spaced markers with evenly distributed values
|
|
60
70
|
const positions = [];
|
|
61
71
|
// Calculate the step between each marker value
|
|
62
|
-
const valueStep = (end - start) /
|
|
63
|
-
// Generate
|
|
64
|
-
for (let i = 0; i <=
|
|
72
|
+
const valueStep = (end - start) / markersCount;
|
|
73
|
+
// Generate markers (including start and end)
|
|
74
|
+
for (let i = 0; i <= markersCount; i++) {
|
|
65
75
|
// Apply padding of half the marker spacing to the first and last markers
|
|
66
76
|
let position;
|
|
67
77
|
if (i === 0) {
|
|
68
78
|
position = beginningEndMarkerPadding; // Half spacing padding from the start
|
|
69
79
|
}
|
|
70
|
-
else if (i ===
|
|
80
|
+
else if (i === markersCount) {
|
|
71
81
|
position = 100 - beginningEndMarkerPadding; // Half spacing padding from the end
|
|
72
82
|
}
|
|
73
83
|
else {
|
|
74
84
|
// Distribute the remaining markers evenly between the padded start and end
|
|
75
85
|
position =
|
|
76
86
|
beginningEndMarkerPadding +
|
|
77
|
-
((100 - 2 * beginningEndMarkerPadding) * i) /
|
|
87
|
+
((100 - 2 * beginningEndMarkerPadding) * i) / markersCount;
|
|
78
88
|
}
|
|
79
89
|
const value = start + valueStep * i;
|
|
80
90
|
positions.push({ value, position });
|