related-ui-components 2.4.4 → 2.4.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.
- package/lib/module/app.js +17 -5
- package/lib/module/app.js.map +1 -1
- package/lib/module/components/CarouselCardStack/CarouselCardStack.js +5 -0
- package/lib/module/components/CarouselCardStack/CarouselCardStack.js.map +1 -1
- package/lib/module/components/ProgressBar/CircularProgressBar.js +80 -0
- package/lib/module/components/ProgressBar/CircularProgressBar.js.map +1 -0
- package/lib/module/components/ProgressBar/index.js +2 -0
- package/lib/module/components/ProgressBar/index.js.map +1 -1
- package/lib/typescript/src/components/CarouselCardStack/CarouselCardStack.d.ts.map +1 -1
- package/lib/typescript/src/components/ProgressBar/CircularProgressBar.d.ts +18 -0
- package/lib/typescript/src/components/ProgressBar/CircularProgressBar.d.ts.map +1 -0
- package/lib/typescript/src/components/ProgressBar/index.d.ts +4 -2
- package/lib/typescript/src/components/ProgressBar/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/app.tsx +17 -5
- package/src/components/CarouselCardStack/CarouselCardStack.tsx +1 -0
- package/src/components/ProgressBar/CircularProgressBar.tsx +119 -0
- package/src/components/ProgressBar/index.ts +5 -2
package/lib/module/app.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// import CarouselCardStack from "./components/CarouselCardStack/CarouselCardStack"; // Adjust path as needed
|
|
4
4
|
// import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
5
5
|
// import { CarRentalForm, DateRangePicker, FlightForm, FlightSummary, HotelForm, HotelSummary, Filters} from "./components";
|
|
6
|
-
// import { RelatedProvider, useTheme } from "./theme";
|
|
6
|
+
// import { lightTheme, RelatedProvider, useTheme } from "./theme";
|
|
7
|
+
// import CircularProgressBar from "./components/ProgressBar/CircularProgressBar";
|
|
7
8
|
|
|
8
9
|
// // Sample data - replace with your actual image URLs
|
|
9
10
|
// const DUMMY_DATA = [
|
|
@@ -45,13 +46,24 @@
|
|
|
45
46
|
// const [departureDate, setDepartureDate] = useState<string | undefined>(undefined);
|
|
46
47
|
// const [returnDate, setReturnDate] = useState<string | undefined>(undefined);
|
|
47
48
|
|
|
49
|
+
// const [progress, setProgress] = useState(25);
|
|
50
|
+
// const handleAnimate = () => {
|
|
51
|
+
// // Set progress to a new random value between 0 and 100
|
|
52
|
+
// const newProgress = Math.floor(Math.random() * 101);
|
|
53
|
+
// setProgress(newProgress);
|
|
54
|
+
// };
|
|
48
55
|
// return (
|
|
49
56
|
// <>
|
|
50
|
-
// <RelatedProvider>
|
|
57
|
+
// <RelatedProvider theme={lightTheme}>
|
|
51
58
|
// <GestureHandlerRootView style={{ flex: 1 }}>
|
|
52
59
|
// <StatusBar barStyle="light-content" />
|
|
53
60
|
// <SafeAreaView style={styles.appContainer}>
|
|
54
|
-
// <
|
|
61
|
+
// <CircularProgressBar
|
|
62
|
+
// progress={5}
|
|
63
|
+
// lineCap="round"
|
|
64
|
+
// textFont={""}
|
|
65
|
+
// />
|
|
66
|
+
// {/* <DateRangePicker
|
|
55
67
|
// onDatesChange={(t) => {
|
|
56
68
|
// setDepartureDate(t.departure);
|
|
57
69
|
// setReturnDate(t.return);
|
|
@@ -60,7 +72,7 @@
|
|
|
60
72
|
// // departureDisplayValue={departureDate}
|
|
61
73
|
// returnDate={returnDate}
|
|
62
74
|
// // returnDisplayValue={returnDate}
|
|
63
|
-
// ></DateRangePicker>
|
|
75
|
+
// ></DateRangePicker> */}
|
|
64
76
|
// {/* <Filters
|
|
65
77
|
// bottomSheetBackgroundStyle={{
|
|
66
78
|
// borderTopRightRadius: 30,
|
|
@@ -91,7 +103,7 @@
|
|
|
91
103
|
// {/* <HotelForm></HotelForm> */}
|
|
92
104
|
// {/* <DateRangePicker onDatesChange={()=>{}} labelContainerStyle={{backgroundColor:"red"}}></DateRangePicker> */}
|
|
93
105
|
// {/* <CarRentalForm onSelectionChange={console.log}></CarRentalForm> */}
|
|
94
|
-
//
|
|
106
|
+
// <CarouselCardStack data={DUMMY_DATA} />
|
|
95
107
|
// </SafeAreaView>
|
|
96
108
|
// </GestureHandlerRootView>
|
|
97
109
|
// </RelatedProvider>
|
package/lib/module/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA","ignoreList":[]}
|
|
@@ -23,6 +23,11 @@ const SPRING_CONFIG = {
|
|
|
23
23
|
stiffness: 120,
|
|
24
24
|
mass: 0.6
|
|
25
25
|
};
|
|
26
|
+
const FADE_SPRING_CONFIG = {
|
|
27
|
+
damping: 35,
|
|
28
|
+
stiffness: 50,
|
|
29
|
+
mass: 1.2
|
|
30
|
+
};
|
|
26
31
|
const SIDE_CARD_ROTATION_DEGREES = 7;
|
|
27
32
|
const createVirtualData = originalData => {
|
|
28
33
|
if (!originalData || originalData.length === 0) return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","View","StyleSheet","Image","Dimensions","Text","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","withSpring","interpolate","useDerivedValue","Extrapolation","useTheme","jsx","_jsx","jsxs","_jsxs","width","SCREEN_WIDTH","get","CARD_WIDTH_FACTOR","CARD_ASPECT_RATIO","SIDE_CARD_SCALE_FACTOR","CARD_WIDTH","CARD_HEIGHT","MAX_X_FACTOR","SIDE_CARD_TRANSLATE_X_FACTOR","Math","min","SIDE_CARD_TRANSLATE_X","ACTIVE_CARD_SCALE","SPRING_CONFIG","damping","stiffness","mass","SIDE_CARD_ROTATION_DEGREES","createVirtualData","originalData","length","prefixItems","items","segmentPrefix","map","item","idx","uniqueId","id","prevSegment","currSegment","nextSegment","CarouselCardStack","data","cardHeight","cardWidth","backgroundColor","theme","N_original","virtualData","activeIndex","gestureTranslateX","contextX","value","handleLoopReset","currentValue","round","panGesture","Pan","activeOffsetX","onBegin","onUpdate","event","translationX","onEnd","threshold","newTargetVirtualIndex","max","finished","activeDotIndex","currentVal","style","styles","container","height","children","emptyText","gesture","cardContainer","index","animatedStyle","currentCardDragOffset","displayOffset","scale","CLAMP","translateX","rotation","opacity","abs","snappedDisplayOffset","zIndex","transform","rotateZ","card","source","uri","image","cardImage","title","titleContainer","cardTitle","paginationContainer","_","i","isActiveDot","dotStyle","borderRadius","primary","marginHorizontal","create","alignItems","justifyContent","position","overflow","resizeMode","bottom","left","right","padding","color","fontSize","fontWeight","flexDirection","marginTop","marginBottom"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CarouselCardStack/CarouselCardStack.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","View","StyleSheet","Image","Dimensions","Text","Gesture","GestureDetector","Animated","useSharedValue","useAnimatedStyle","withSpring","interpolate","useDerivedValue","Extrapolation","useTheme","jsx","_jsx","jsxs","_jsxs","width","SCREEN_WIDTH","get","CARD_WIDTH_FACTOR","CARD_ASPECT_RATIO","SIDE_CARD_SCALE_FACTOR","CARD_WIDTH","CARD_HEIGHT","MAX_X_FACTOR","SIDE_CARD_TRANSLATE_X_FACTOR","Math","min","SIDE_CARD_TRANSLATE_X","ACTIVE_CARD_SCALE","SPRING_CONFIG","damping","stiffness","mass","FADE_SPRING_CONFIG","SIDE_CARD_ROTATION_DEGREES","createVirtualData","originalData","length","prefixItems","items","segmentPrefix","map","item","idx","uniqueId","id","prevSegment","currSegment","nextSegment","CarouselCardStack","data","cardHeight","cardWidth","backgroundColor","theme","N_original","virtualData","activeIndex","gestureTranslateX","contextX","value","handleLoopReset","currentValue","round","panGesture","Pan","activeOffsetX","onBegin","onUpdate","event","translationX","onEnd","threshold","newTargetVirtualIndex","max","finished","activeDotIndex","currentVal","style","styles","container","height","children","emptyText","gesture","cardContainer","index","animatedStyle","currentCardDragOffset","displayOffset","scale","CLAMP","translateX","rotation","opacity","abs","snappedDisplayOffset","zIndex","transform","rotateZ","card","source","uri","image","cardImage","title","titleContainer","cardTitle","paginationContainer","_","i","isActiveDot","dotStyle","borderRadius","primary","marginHorizontal","create","alignItems","justifyContent","position","overflow","resizeMode","bottom","left","right","padding","color","fontSize","fontWeight","flexDirection","marginTop","marginBottom"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/CarouselCardStack/CarouselCardStack.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect } from "react";
|
|
4
|
+
import { Canvas, matchFont, Path, Skia, Text, useFont } from "@shopify/react-native-skia";
|
|
5
|
+
import { useSharedValue, withTiming, useDerivedValue, Easing } from "react-native-reanimated";
|
|
6
|
+
import { Platform } from "react-native";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const CircularProgressBar = ({
|
|
9
|
+
size = 120,
|
|
10
|
+
strokeWidth = 8,
|
|
11
|
+
progress = 0,
|
|
12
|
+
duration = 1000,
|
|
13
|
+
backgroundColor = "#E5E7EB",
|
|
14
|
+
progressColor = "#3B82F6",
|
|
15
|
+
lineCap = "round",
|
|
16
|
+
customText,
|
|
17
|
+
textColor = "white",
|
|
18
|
+
fontSize = size / 4,
|
|
19
|
+
textFont
|
|
20
|
+
}) => {
|
|
21
|
+
const animatedProgress = useSharedValue(0);
|
|
22
|
+
const fontFamily = Platform.select({
|
|
23
|
+
ios: "Helvetica",
|
|
24
|
+
default: "serif"
|
|
25
|
+
});
|
|
26
|
+
const fontStyle = {
|
|
27
|
+
fontFamily: textFont || fontFamily,
|
|
28
|
+
fontSize: fontSize
|
|
29
|
+
};
|
|
30
|
+
const font = textFont ? useFont(textFont, fontSize) : matchFont(fontStyle);
|
|
31
|
+
const radius = (size - strokeWidth) / 2;
|
|
32
|
+
const path = Skia.Path.Make();
|
|
33
|
+
path.addCircle(size / 2, size / 2, radius);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
animatedProgress.value = withTiming(progress / 100, {
|
|
36
|
+
duration,
|
|
37
|
+
easing: Easing.out(Easing.cubic)
|
|
38
|
+
});
|
|
39
|
+
}, [progress, duration]);
|
|
40
|
+
const percentageText = useDerivedValue(() => {
|
|
41
|
+
return `${Math.round(animatedProgress.value * 100)}%`;
|
|
42
|
+
});
|
|
43
|
+
const textToDisplay = customText !== undefined ? customText : percentageText;
|
|
44
|
+
const textX = useDerivedValue(() => {
|
|
45
|
+
if (!font) return 0;
|
|
46
|
+
const text = typeof textToDisplay === "string" ? textToDisplay : textToDisplay.value;
|
|
47
|
+
const textWidth = font.measureText(text).width;
|
|
48
|
+
return size / 2 - textWidth / 2;
|
|
49
|
+
});
|
|
50
|
+
const textY = size / 2 + fontSize / 3;
|
|
51
|
+
return /*#__PURE__*/_jsxs(Canvas, {
|
|
52
|
+
style: {
|
|
53
|
+
width: size,
|
|
54
|
+
height: size
|
|
55
|
+
},
|
|
56
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
57
|
+
path: path,
|
|
58
|
+
style: "stroke",
|
|
59
|
+
strokeWidth: strokeWidth,
|
|
60
|
+
strokeCap: lineCap,
|
|
61
|
+
color: backgroundColor
|
|
62
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
63
|
+
path: path,
|
|
64
|
+
style: "stroke",
|
|
65
|
+
strokeWidth: strokeWidth,
|
|
66
|
+
strokeCap: lineCap,
|
|
67
|
+
color: progressColor,
|
|
68
|
+
start: 0,
|
|
69
|
+
end: animatedProgress
|
|
70
|
+
}), font && /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
font: font,
|
|
72
|
+
color: textColor,
|
|
73
|
+
x: textX,
|
|
74
|
+
y: textY,
|
|
75
|
+
text: textToDisplay
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default CircularProgressBar;
|
|
80
|
+
//# sourceMappingURL=CircularProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","Canvas","matchFont","Path","Skia","Text","useFont","useSharedValue","withTiming","useDerivedValue","Easing","Platform","jsx","_jsx","jsxs","_jsxs","CircularProgressBar","size","strokeWidth","progress","duration","backgroundColor","progressColor","lineCap","customText","textColor","fontSize","textFont","animatedProgress","fontFamily","select","ios","default","fontStyle","font","radius","path","Make","addCircle","value","easing","out","cubic","percentageText","Math","round","textToDisplay","undefined","textX","text","textWidth","measureText","width","textY","style","height","children","strokeCap","color","start","end","x","y"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ProgressBar/CircularProgressBar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","ProgressBar"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ProgressBar/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,WAAW,
|
|
1
|
+
{"version":3,"names":["default","ProgressBar","CircularProgressBar"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ProgressBar/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,kBAAe;AACtD,cAAc,kBAAe;AAE7B,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,0BAAuB;AACtE,cAAc,0BAAuB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselCardStack.d.ts","sourceRoot":"","sources":["../../../../../src/components/CarouselCardStack/CarouselCardStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CarouselCardStack.d.ts","sourceRoot":"","sources":["../../../../../src/components/CarouselCardStack/CarouselCardStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AA8B5D,UAAU,oBAAoB;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,UAAU,sBAAsB;IAC9B,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAG,MAAM,CAAC;CAC3B;AAuBD,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAiNvD,CAAC;AAkDF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ImageRequireSource } from "react-native";
|
|
3
|
+
interface CircularProgressBarProps {
|
|
4
|
+
size?: number;
|
|
5
|
+
strokeWidth?: number;
|
|
6
|
+
progress: number;
|
|
7
|
+
duration?: number;
|
|
8
|
+
backgroundColor?: string;
|
|
9
|
+
progressColor?: string;
|
|
10
|
+
lineCap?: "butt" | "round" | "square";
|
|
11
|
+
customText?: string;
|
|
12
|
+
textColor?: string;
|
|
13
|
+
fontSize?: number;
|
|
14
|
+
textFont?: ImageRequireSource;
|
|
15
|
+
}
|
|
16
|
+
declare const CircularProgressBar: React.FC<CircularProgressBarProps>;
|
|
17
|
+
export default CircularProgressBar;
|
|
18
|
+
//# sourceMappingURL=CircularProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircularProgressBar.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProgressBar/CircularProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAezC,OAAO,EAAE,kBAAkB,EAAY,MAAM,cAAc,CAAC;AAE5D,UAAU,wBAAwB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAqF3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { default as ProgressBar } from
|
|
2
|
-
export * from
|
|
1
|
+
export { default as ProgressBar } from "./ProgressBar";
|
|
2
|
+
export * from "./ProgressBar";
|
|
3
|
+
export { default as CircularProgressBar } from "./CircularProgressBar";
|
|
4
|
+
export * from "./CircularProgressBar";
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProgressBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ProgressBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,uBAAuB,CAAC"}
|
package/package.json
CHANGED
package/src/app.tsx
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// import CarouselCardStack from "./components/CarouselCardStack/CarouselCardStack"; // Adjust path as needed
|
|
4
4
|
// import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
5
5
|
// import { CarRentalForm, DateRangePicker, FlightForm, FlightSummary, HotelForm, HotelSummary, Filters} from "./components";
|
|
6
|
-
// import { RelatedProvider, useTheme } from "./theme";
|
|
6
|
+
// import { lightTheme, RelatedProvider, useTheme } from "./theme";
|
|
7
|
+
// import CircularProgressBar from "./components/ProgressBar/CircularProgressBar";
|
|
7
8
|
|
|
8
9
|
// // Sample data - replace with your actual image URLs
|
|
9
10
|
// const DUMMY_DATA = [
|
|
@@ -45,13 +46,24 @@
|
|
|
45
46
|
// const [departureDate, setDepartureDate] = useState<string | undefined>(undefined);
|
|
46
47
|
// const [returnDate, setReturnDate] = useState<string | undefined>(undefined);
|
|
47
48
|
|
|
49
|
+
// const [progress, setProgress] = useState(25);
|
|
50
|
+
// const handleAnimate = () => {
|
|
51
|
+
// // Set progress to a new random value between 0 and 100
|
|
52
|
+
// const newProgress = Math.floor(Math.random() * 101);
|
|
53
|
+
// setProgress(newProgress);
|
|
54
|
+
// };
|
|
48
55
|
// return (
|
|
49
56
|
// <>
|
|
50
|
-
// <RelatedProvider>
|
|
57
|
+
// <RelatedProvider theme={lightTheme}>
|
|
51
58
|
// <GestureHandlerRootView style={{ flex: 1 }}>
|
|
52
59
|
// <StatusBar barStyle="light-content" />
|
|
53
60
|
// <SafeAreaView style={styles.appContainer}>
|
|
54
|
-
// <
|
|
61
|
+
// <CircularProgressBar
|
|
62
|
+
// progress={5}
|
|
63
|
+
// lineCap="round"
|
|
64
|
+
// textFont={""}
|
|
65
|
+
// />
|
|
66
|
+
// {/* <DateRangePicker
|
|
55
67
|
// onDatesChange={(t) => {
|
|
56
68
|
// setDepartureDate(t.departure);
|
|
57
69
|
// setReturnDate(t.return);
|
|
@@ -60,7 +72,7 @@
|
|
|
60
72
|
// // departureDisplayValue={departureDate}
|
|
61
73
|
// returnDate={returnDate}
|
|
62
74
|
// // returnDisplayValue={returnDate}
|
|
63
|
-
// ></DateRangePicker>
|
|
75
|
+
// ></DateRangePicker> */}
|
|
64
76
|
// {/* <Filters
|
|
65
77
|
// bottomSheetBackgroundStyle={{
|
|
66
78
|
// borderTopRightRadius: 30,
|
|
@@ -91,7 +103,7 @@
|
|
|
91
103
|
// {/* <HotelForm></HotelForm> */}
|
|
92
104
|
// {/* <DateRangePicker onDatesChange={()=>{}} labelContainerStyle={{backgroundColor:"red"}}></DateRangePicker> */}
|
|
93
105
|
// {/* <CarRentalForm onSelectionChange={console.log}></CarRentalForm> */}
|
|
94
|
-
//
|
|
106
|
+
// <CarouselCardStack data={DUMMY_DATA} />
|
|
95
107
|
// </SafeAreaView>
|
|
96
108
|
// </GestureHandlerRootView>
|
|
97
109
|
// </RelatedProvider>
|
|
@@ -25,6 +25,7 @@ const SIDE_CARD_TRANSLATE_X_FACTOR = Math.min(0.32, MAX_X_FACTOR);
|
|
|
25
25
|
const SIDE_CARD_TRANSLATE_X = CARD_WIDTH * SIDE_CARD_TRANSLATE_X_FACTOR;
|
|
26
26
|
const ACTIVE_CARD_SCALE = 1.0;
|
|
27
27
|
const SPRING_CONFIG = { damping: 18, stiffness: 120, mass: 0.6 };
|
|
28
|
+
const FADE_SPRING_CONFIG = { damping: 35, stiffness: 50, mass: 1.2 };
|
|
28
29
|
const SIDE_CARD_ROTATION_DEGREES = 7;
|
|
29
30
|
|
|
30
31
|
interface CarouselItemOriginal {
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import React, { useEffect } from "react";
|
|
2
|
+
import {
|
|
3
|
+
Canvas,
|
|
4
|
+
matchFont,
|
|
5
|
+
Path,
|
|
6
|
+
Skia,
|
|
7
|
+
Text,
|
|
8
|
+
useFont,
|
|
9
|
+
} from "@shopify/react-native-skia";
|
|
10
|
+
import {
|
|
11
|
+
useSharedValue,
|
|
12
|
+
withTiming,
|
|
13
|
+
useDerivedValue,
|
|
14
|
+
Easing,
|
|
15
|
+
} from "react-native-reanimated";
|
|
16
|
+
import { ImageRequireSource, Platform } from "react-native";
|
|
17
|
+
|
|
18
|
+
interface CircularProgressBarProps {
|
|
19
|
+
size?: number;
|
|
20
|
+
strokeWidth?: number;
|
|
21
|
+
progress: number; // 0 to 100
|
|
22
|
+
duration?: number;
|
|
23
|
+
backgroundColor?: string;
|
|
24
|
+
progressColor?: string;
|
|
25
|
+
lineCap?: "butt" | "round" | "square";
|
|
26
|
+
customText?: string;
|
|
27
|
+
textColor?: string;
|
|
28
|
+
fontSize?: number;
|
|
29
|
+
textFont?: ImageRequireSource;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const CircularProgressBar: React.FC<CircularProgressBarProps> = ({
|
|
33
|
+
size = 120,
|
|
34
|
+
strokeWidth = 8,
|
|
35
|
+
progress = 0,
|
|
36
|
+
duration = 1000,
|
|
37
|
+
backgroundColor = "#E5E7EB",
|
|
38
|
+
progressColor = "#3B82F6",
|
|
39
|
+
lineCap = "round",
|
|
40
|
+
customText,
|
|
41
|
+
textColor = "white",
|
|
42
|
+
fontSize = size / 4,
|
|
43
|
+
textFont,
|
|
44
|
+
}) => {
|
|
45
|
+
const animatedProgress = useSharedValue(0);
|
|
46
|
+
|
|
47
|
+
const fontFamily = Platform.select({ ios: "Helvetica", default: "serif" });
|
|
48
|
+
|
|
49
|
+
const fontStyle = {
|
|
50
|
+
fontFamily: textFont || fontFamily,
|
|
51
|
+
fontSize: fontSize,
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const font = textFont
|
|
55
|
+
? useFont(textFont, fontSize)
|
|
56
|
+
: matchFont(fontStyle as any);
|
|
57
|
+
|
|
58
|
+
const radius = (size - strokeWidth) / 2;
|
|
59
|
+
|
|
60
|
+
const path = Skia.Path.Make();
|
|
61
|
+
path.addCircle(size / 2, size / 2, radius);
|
|
62
|
+
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
animatedProgress.value = withTiming(progress / 100, {
|
|
65
|
+
duration,
|
|
66
|
+
easing: Easing.out(Easing.cubic),
|
|
67
|
+
});
|
|
68
|
+
}, [progress, duration]);
|
|
69
|
+
|
|
70
|
+
const percentageText = useDerivedValue(() => {
|
|
71
|
+
return `${Math.round(animatedProgress.value * 100)}%`;
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const textToDisplay = customText !== undefined ? customText : percentageText;
|
|
75
|
+
|
|
76
|
+
const textX = useDerivedValue(() => {
|
|
77
|
+
if (!font) return 0;
|
|
78
|
+
const text =
|
|
79
|
+
typeof textToDisplay === "string" ? textToDisplay : textToDisplay.value;
|
|
80
|
+
const textWidth = font.measureText(text).width;
|
|
81
|
+
return size / 2 - textWidth / 2;
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
const textY = size / 2 + fontSize / 3;
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<Canvas style={{ width: size, height: size }}>
|
|
88
|
+
<Path
|
|
89
|
+
path={path}
|
|
90
|
+
style="stroke"
|
|
91
|
+
strokeWidth={strokeWidth}
|
|
92
|
+
strokeCap={lineCap}
|
|
93
|
+
color={backgroundColor}
|
|
94
|
+
/>
|
|
95
|
+
|
|
96
|
+
<Path
|
|
97
|
+
path={path}
|
|
98
|
+
style="stroke"
|
|
99
|
+
strokeWidth={strokeWidth}
|
|
100
|
+
strokeCap={lineCap}
|
|
101
|
+
color={progressColor}
|
|
102
|
+
start={0}
|
|
103
|
+
end={animatedProgress}
|
|
104
|
+
/>
|
|
105
|
+
|
|
106
|
+
{font && (
|
|
107
|
+
<Text
|
|
108
|
+
font={font}
|
|
109
|
+
color={textColor}
|
|
110
|
+
x={textX}
|
|
111
|
+
y={textY}
|
|
112
|
+
text={textToDisplay}
|
|
113
|
+
/>
|
|
114
|
+
)}
|
|
115
|
+
</Canvas>
|
|
116
|
+
);
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export default CircularProgressBar;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export { default as ProgressBar} from
|
|
2
|
-
export * from
|
|
1
|
+
export { default as ProgressBar } from "./ProgressBar";
|
|
2
|
+
export * from "./ProgressBar";
|
|
3
|
+
|
|
4
|
+
export { default as CircularProgressBar } from "./CircularProgressBar";
|
|
5
|
+
export * from "./CircularProgressBar";
|