related-ui-components 1.8.6 → 1.8.7
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/commonjs/app.js +62 -120
- package/lib/commonjs/app.js.map +1 -1
- package/lib/commonjs/components/Wheel/Wheel.js +141 -66
- package/lib/commonjs/components/Wheel/Wheel.js.map +1 -1
- package/lib/commonjs/index.js +5 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/app.js +63 -121
- package/lib/module/app.js.map +1 -1
- package/lib/module/components/Wheel/Wheel.js +141 -66
- package/lib/module/components/Wheel/Wheel.js.map +1 -1
- package/lib/module/index.js +4 -7
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/app.d.ts +2 -2
- package/lib/typescript/commonjs/app.d.ts.map +1 -1
- package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts +3 -1
- package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/module/app.d.ts +2 -2
- package/lib/typescript/module/app.d.ts.map +1 -1
- package/lib/typescript/module/components/Wheel/Wheel.d.ts +3 -1
- package/lib/typescript/module/components/Wheel/Wheel.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/app.tsx +35 -99
- package/src/components/Wheel/Wheel.tsx +169 -82
- package/src/index.ts +4 -4
package/lib/module/app.js
CHANGED
|
@@ -1,127 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useState } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
status: "2/5",
|
|
67
|
-
statusBackgroundColor: theme.disabled,
|
|
68
|
-
statusTextColor: theme.text
|
|
69
|
-
}, {
|
|
70
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
71
|
-
name: "school-outline",
|
|
72
|
-
size: 24,
|
|
73
|
-
color: theme.helper
|
|
74
|
-
}),
|
|
75
|
-
activeIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
76
|
-
name: "school-outline",
|
|
77
|
-
size: 24,
|
|
78
|
-
color: theme.primary
|
|
79
|
-
}),
|
|
80
|
-
title: "Knowledge Seeker",
|
|
81
|
-
description: "Complete all water conservation learning modules.",
|
|
82
|
-
isActive: false,
|
|
83
|
-
status: "3/5",
|
|
84
|
-
statusBackgroundColor: theme.disabled,
|
|
85
|
-
statusTextColor: theme.text
|
|
86
|
-
}, {
|
|
87
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
88
|
-
name: "settings-outline",
|
|
89
|
-
size: 24,
|
|
90
|
-
color: theme.helper
|
|
91
|
-
}),
|
|
92
|
-
activeIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
93
|
-
name: "settings-outline",
|
|
94
|
-
size: 24,
|
|
95
|
-
color: theme.primary
|
|
96
|
-
}),
|
|
97
|
-
title: "Smart Saver",
|
|
98
|
-
description: "Set up and use all water-saving features in the app.",
|
|
99
|
-
isActive: true,
|
|
100
|
-
status: "4/4",
|
|
101
|
-
statusBackgroundColor: theme.primary,
|
|
102
|
-
statusTextColor: theme.background
|
|
103
|
-
}];
|
|
104
|
-
return /*#__PURE__*/_jsx(_Fragment, {
|
|
105
|
-
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
106
|
-
children: /*#__PURE__*/_jsx(RedeemedVoucherSheet, {
|
|
107
|
-
visible: true,
|
|
108
|
-
onClose: () => {},
|
|
109
|
-
code: "0000P78SHV50KK"
|
|
110
|
-
// amount={100}
|
|
111
|
-
,
|
|
112
|
-
expiry: "22/01/2025",
|
|
113
|
-
currency: "USD",
|
|
114
|
-
title: "Voucher Activated!"
|
|
115
|
-
// primaryButtonColors={["red", "blue"]}
|
|
116
|
-
,
|
|
117
|
-
onMyVouchersButtonPress: () => console.log("My Vouchers pressed"),
|
|
118
|
-
onCopyCode: code => console.log("Copied:", code)
|
|
119
|
-
// To use custom icons:
|
|
120
|
-
// amountIconComponent={<Image source={YourCustomAmountIcon} style={{width: 20, height: 20, marginRight: 5}} />}
|
|
121
|
-
// renderCopyIcon={() => <Text style={{fontSize: 22, color: 'blue'}}>COPY</Text>}
|
|
122
|
-
})
|
|
123
|
-
})
|
|
4
|
+
import { View, Button } from "react-native";
|
|
5
|
+
import SpinWheel from "./components/Wheel/Wheel.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const wheelItems = [{
|
|
8
|
+
id: 1,
|
|
9
|
+
label: "Prize 1",
|
|
10
|
+
color: "#FF6384"
|
|
11
|
+
}, {
|
|
12
|
+
id: 2,
|
|
13
|
+
label: "Prize 2",
|
|
14
|
+
color: "#36A2EB"
|
|
15
|
+
}, {
|
|
16
|
+
id: 3,
|
|
17
|
+
label: "Prize 3",
|
|
18
|
+
color: "#FFCE56"
|
|
19
|
+
}, {
|
|
20
|
+
id: 4,
|
|
21
|
+
label: "Prize 4",
|
|
22
|
+
color: "#4BC0C0"
|
|
23
|
+
}, {
|
|
24
|
+
id: 5,
|
|
25
|
+
label: "Prize 5",
|
|
26
|
+
color: "#9966FF"
|
|
27
|
+
}, {
|
|
28
|
+
id: 6,
|
|
29
|
+
label: "Prize 6",
|
|
30
|
+
color: "#FF9F40"
|
|
31
|
+
}];
|
|
32
|
+
const MockWheelScreen = () => {
|
|
33
|
+
const [winner, setWinner] = useState(null);
|
|
34
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
35
|
+
style: {
|
|
36
|
+
flex: 1,
|
|
37
|
+
justifyContent: "center",
|
|
38
|
+
alignItems: "center"
|
|
39
|
+
},
|
|
40
|
+
children: [/*#__PURE__*/_jsx(SpinWheel, {
|
|
41
|
+
items: wheelItems,
|
|
42
|
+
predeterminedWinner: wheelItems[2],
|
|
43
|
+
onSpinEnd: item => {
|
|
44
|
+
alert(`Winner: ${item.label}`);
|
|
45
|
+
setWinner(null);
|
|
46
|
+
},
|
|
47
|
+
size: 300,
|
|
48
|
+
spinButtonText: "Spin Randomly"
|
|
49
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
50
|
+
style: {
|
|
51
|
+
flexDirection: "row",
|
|
52
|
+
marginTop: 20
|
|
53
|
+
},
|
|
54
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
55
|
+
title: "Spin to Prize 3",
|
|
56
|
+
onPress: () => setWinner(wheelItems[2])
|
|
57
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
58
|
+
style: {
|
|
59
|
+
width: 20
|
|
60
|
+
}
|
|
61
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
62
|
+
title: "Spin Random",
|
|
63
|
+
onPress: () => setWinner(null)
|
|
64
|
+
})]
|
|
65
|
+
})]
|
|
124
66
|
});
|
|
125
67
|
};
|
|
126
|
-
export default
|
|
68
|
+
export default MockWheelScreen;
|
|
127
69
|
//# sourceMappingURL=app.js.map
|
package/lib/module/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","
|
|
1
|
+
{"version":3,"names":["React","useState","View","Button","SpinWheel","jsx","_jsx","jsxs","_jsxs","wheelItems","id","label","color","MockWheelScreen","winner","setWinner","style","flex","justifyContent","alignItems","children","items","predeterminedWinner","onSpinEnd","item","alert","size","spinButtonText","flexDirection","marginTop","title","onPress","width"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,IAAI,EAAEC,MAAM,QAAQ,cAAc;AAC3C,OAAOC,SAAS,MAAyB,6BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpE,MAAMC,UAA2B,GAAG,CAClC;EAAEC,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,EAC7C;EAAEF,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,EAC7C;EAAEF,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,EAC7C;EAAEF,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,EAC7C;EAAEF,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,EAC7C;EAAEF,EAAE,EAAE,CAAC;EAAEC,KAAK,EAAE,SAAS;EAAEC,KAAK,EAAE;AAAU,CAAC,CAC9C;AAED,MAAMC,eAAe,GAAGA,CAAA,KAAM;EAC5B,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAuB,IAAI,CAAC;EAEhE,oBACEO,KAAA,CAACN,IAAI;IAACc,KAAK,EAAE;MAAEC,IAAI,EAAE,CAAC;MAAEC,cAAc,EAAE,QAAQ;MAAEC,UAAU,EAAE;IAAS,CAAE;IAAAC,QAAA,gBACvEd,IAAA,CAACF,SAAS;MACRiB,KAAK,EAAEZ,UAAW;MAClBa,mBAAmB,EAAEb,UAAU,CAAC,CAAC,CAAE;MACnCc,SAAS,EAAGC,IAAI,IAAK;QACnBC,KAAK,CAAC,WAAWD,IAAI,CAACb,KAAK,EAAE,CAAC;QAC9BI,SAAS,CAAC,IAAI,CAAC;MACjB,CAAE;MACFW,IAAI,EAAE,GAAI;MACVC,cAAc,EAAC;IAAe,CAC/B,CAAC,eAEFnB,KAAA,CAACN,IAAI;MAACc,KAAK,EAAE;QAAEY,aAAa,EAAE,KAAK;QAAEC,SAAS,EAAE;MAAG,CAAE;MAAAT,QAAA,gBACnDd,IAAA,CAACH,MAAM;QACL2B,KAAK,EAAC,iBAAiB;QACvBC,OAAO,EAAEA,CAAA,KAAMhB,SAAS,CAACN,UAAU,CAAC,CAAC,CAAC;MAAE,CACzC,CAAC,eACFH,IAAA,CAACJ,IAAI;QAACc,KAAK,EAAE;UAAEgB,KAAK,EAAE;QAAG;MAAE,CAAE,CAAC,eAC9B1B,IAAA,CAACH,MAAM;QACL2B,KAAK,EAAC,aAAa;QACnBC,OAAO,EAAEA,CAAA,KAAMhB,SAAS,CAAC,IAAI;MAAE,CAChC,CAAC;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEX,CAAC;AAED,eAAeF,eAAe","ignoreList":[]}
|
|
@@ -4,9 +4,61 @@ import React, { useState, useRef, useEffect } from "react";
|
|
|
4
4
|
import { View, StyleSheet, Animated, Text, TouchableOpacity, Easing } from "react-native";
|
|
5
5
|
import { Svg, Path, G, Text as SvgText } from "react-native-svg";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
|
|
7
|
+
//default random colors
|
|
8
|
+
const colors = ["#FF0000",
|
|
9
|
+
// Red
|
|
10
|
+
"#FFA500",
|
|
11
|
+
// Orange
|
|
12
|
+
"#FFFF00",
|
|
13
|
+
// Yellow
|
|
14
|
+
"#008000",
|
|
15
|
+
// Green
|
|
16
|
+
"#0000FF",
|
|
17
|
+
// Blue
|
|
18
|
+
"#800080",
|
|
19
|
+
// Purple
|
|
20
|
+
"#FFC0CB",
|
|
21
|
+
// Pink
|
|
22
|
+
"#00FFFF",
|
|
23
|
+
// Cyan
|
|
24
|
+
"#FF00FF",
|
|
25
|
+
// Magenta
|
|
26
|
+
"#00FF00",
|
|
27
|
+
// Lime
|
|
28
|
+
"#4B0082",
|
|
29
|
+
// Indigo
|
|
30
|
+
"#EE82EE",
|
|
31
|
+
// Violet
|
|
32
|
+
"#40E0D0",
|
|
33
|
+
// Turquoise
|
|
34
|
+
"#FFD700",
|
|
35
|
+
// Gold
|
|
36
|
+
"#C0C0C0",
|
|
37
|
+
// Silver
|
|
38
|
+
"#FFDAB9",
|
|
39
|
+
// Peach
|
|
40
|
+
"#E6E6FA",
|
|
41
|
+
// Lavender
|
|
42
|
+
"#008080",
|
|
43
|
+
// Teal
|
|
44
|
+
"#FF7F50",
|
|
45
|
+
// Coral
|
|
46
|
+
"#DC143C",
|
|
47
|
+
// Crimson
|
|
48
|
+
"#87CEEB",
|
|
49
|
+
// Sky Blue
|
|
50
|
+
"#7FFF00",
|
|
51
|
+
// Chartreuse
|
|
52
|
+
"#CCCCFF",
|
|
53
|
+
// Periwinkle
|
|
54
|
+
"#FF6347",
|
|
55
|
+
// Tomato
|
|
56
|
+
"#FA8072" // Salmon
|
|
57
|
+
];
|
|
8
58
|
const SpinWheel = ({
|
|
9
59
|
items,
|
|
60
|
+
predeterminedWinner,
|
|
61
|
+
// Destructure new prop
|
|
10
62
|
size = 300,
|
|
11
63
|
spinDuration = 5000,
|
|
12
64
|
enabled = true,
|
|
@@ -20,14 +72,18 @@ const SpinWheel = ({
|
|
|
20
72
|
knobColor = "#D81E5B",
|
|
21
73
|
actionButtonStyle,
|
|
22
74
|
actionButtonTextStyle,
|
|
23
|
-
|
|
24
|
-
|
|
75
|
+
wheelBorderColor,
|
|
76
|
+
wheelTextColor = "#FFFFFF"
|
|
25
77
|
}) => {
|
|
26
78
|
const wheelItems = items.length > 0 ? items : [];
|
|
27
79
|
const [spinning, setSpinning] = useState(false);
|
|
28
|
-
const [
|
|
80
|
+
const [_, setWinner] = useState(null);
|
|
29
81
|
const rotateValue = useRef(new Animated.Value(0)).current;
|
|
82
|
+
|
|
83
|
+
// Track rotation manually for calculations
|
|
30
84
|
const rotationRef = useRef(0);
|
|
85
|
+
|
|
86
|
+
// Update tracked rotation when animation completes
|
|
31
87
|
useEffect(() => {
|
|
32
88
|
const listener = rotateValue.addListener(({
|
|
33
89
|
value
|
|
@@ -38,10 +94,13 @@ const SpinWheel = ({
|
|
|
38
94
|
rotateValue.removeListener(listener);
|
|
39
95
|
};
|
|
40
96
|
}, [rotateValue]);
|
|
41
|
-
const anglePerItem = 360 / wheelItems.length;
|
|
42
97
|
|
|
43
|
-
//
|
|
98
|
+
// Calculate angle for each segment
|
|
99
|
+
const anglePerItem = wheelItems.length > 0 ? 360 / wheelItems.length : 0;
|
|
100
|
+
|
|
101
|
+
// Create wheel segments
|
|
44
102
|
const generateWheelPaths = () => {
|
|
103
|
+
if (wheelItems.length === 0) return [];
|
|
45
104
|
return wheelItems.map((item, index) => {
|
|
46
105
|
const startAngle = index * anglePerItem;
|
|
47
106
|
const endAngle = (index + 1) * anglePerItem;
|
|
@@ -56,64 +115,79 @@ const SpinWheel = ({
|
|
|
56
115
|
const midRad = (startAngle + endAngle) / 2 * (Math.PI / 180);
|
|
57
116
|
const textX = size / 2 + size * 0.32 * Math.cos(midRad);
|
|
58
117
|
const textY = size / 2 + size * 0.32 * Math.sin(midRad);
|
|
118
|
+
|
|
119
|
+
// decorationX and decorationY are calculated but not used in the provided JSX
|
|
120
|
+
// const decorationX = size / 2 + size * 0.43 * Math.cos(midRad);
|
|
121
|
+
// const decorationY = size / 2 + size * 0.43 * Math.sin(midRad);
|
|
122
|
+
|
|
59
123
|
return {
|
|
60
124
|
path: pathData,
|
|
61
125
|
item,
|
|
62
126
|
textX,
|
|
63
127
|
textY,
|
|
128
|
+
// decorationX,
|
|
129
|
+
// decorationY,
|
|
64
130
|
angle: (startAngle + endAngle) / 2
|
|
65
131
|
};
|
|
66
132
|
});
|
|
67
133
|
};
|
|
68
134
|
const wheelPaths = generateWheelPaths();
|
|
69
135
|
|
|
70
|
-
//
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
// Helper: spin to a given index
|
|
74
|
-
const spinToIndex = (targetIndex, callbackItem) => {
|
|
136
|
+
// Handle spin button press
|
|
137
|
+
const handleSpin = () => {
|
|
138
|
+
if (spinning || !enabled || wheelItems.length === 0) return;
|
|
75
139
|
setSpinning(true);
|
|
76
140
|
onSpinStart?.();
|
|
141
|
+
let targetRotation = 0;
|
|
142
|
+
let winnerTargetIndex = -1;
|
|
143
|
+
if (predeterminedWinner) {
|
|
144
|
+
const winnerId = typeof predeterminedWinner === "object" ? predeterminedWinner.id : predeterminedWinner;
|
|
145
|
+
winnerTargetIndex = wheelItems.findIndex(item => item.id === winnerId);
|
|
146
|
+
}
|
|
147
|
+
if (winnerTargetIndex !== -1) {
|
|
148
|
+
const targetSegmentCenterAngle = (winnerTargetIndex + 0.5) * anglePerItem;
|
|
149
|
+
const targetNormalizedAngle = (270 - targetSegmentCenterAngle + 360) % 360;
|
|
150
|
+
const currentAbsoluteAngle = rotationRef.current * 360;
|
|
151
|
+
const currentNormalizedAngle = (currentAbsoluteAngle % 360 + 360) % 360;
|
|
77
152
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const winnerAngle = 360 - ((targetIndex + 0.5) * anglePerItem - 270);
|
|
153
|
+
// Additional angle needed to reach the targetNormalizedAngle from currentNormalizedAngle
|
|
154
|
+
const angleOffset = (targetNormalizedAngle - currentNormalizedAngle + 360) % 360;
|
|
81
155
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
156
|
+
// Number of full spins (e.g., 3 to 5)
|
|
157
|
+
const numberOfFullSpins = 3 + Math.floor(Math.random() * 3); // 3, 4, or 5 spins
|
|
158
|
+
targetRotation = numberOfFullSpins * 360 + angleOffset;
|
|
159
|
+
|
|
160
|
+
// Ensure minimum rotation if already aligned (e.g. if angleOffset is 0)
|
|
161
|
+
if (targetRotation < 360) {
|
|
162
|
+
targetRotation += 360 * (3 + Math.floor(Math.random() * 3));
|
|
163
|
+
}
|
|
164
|
+
} else {
|
|
165
|
+
const randomSpins = 3 + Math.random() * 2;
|
|
166
|
+
const randomAngle = Math.random() * 360;
|
|
167
|
+
targetRotation = 360 * randomSpins + randomAngle;
|
|
168
|
+
}
|
|
86
169
|
Animated.timing(rotateValue, {
|
|
87
|
-
toValue: targetRotation / 360,
|
|
170
|
+
toValue: rotationRef.current + targetRotation / 360,
|
|
88
171
|
duration: spinDuration,
|
|
89
172
|
easing: Easing.out(Easing.cubic),
|
|
90
173
|
useNativeDriver: true
|
|
91
|
-
}).start(() =>
|
|
92
|
-
setSpinning(false);
|
|
93
|
-
setInternalWinner(callbackItem);
|
|
94
|
-
onSpinEnd?.(callbackItem);
|
|
95
|
-
});
|
|
174
|
+
}).start(() => handleSpinEnd());
|
|
96
175
|
};
|
|
97
176
|
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// Pick a random winner
|
|
114
|
-
const randomIndex = Math.floor(Math.random() * wheelItems.length);
|
|
115
|
-
const randomWinner = wheelItems[randomIndex];
|
|
116
|
-
spinToIndex(randomIndex, randomWinner);
|
|
177
|
+
// Handle spin completion
|
|
178
|
+
const handleSpinEnd = () => {
|
|
179
|
+
setSpinning(false);
|
|
180
|
+
const normalizedAngle = rotationRef.current * 360 % 360;
|
|
181
|
+
const winningIndex = Math.floor((normalizedAngle - 270) % 360 / anglePerItem);
|
|
182
|
+
const adjustedIndex = (wheelItems.length - 1 - winningIndex) % wheelItems.length;
|
|
183
|
+
const finalWinnerIndex = adjustedIndex >= 0 ? adjustedIndex : wheelItems.length + adjustedIndex;
|
|
184
|
+
if (finalWinnerIndex >= 0 && finalWinnerIndex < wheelItems.length) {
|
|
185
|
+
const winningItem = wheelItems[finalWinnerIndex];
|
|
186
|
+
setWinner(winningItem);
|
|
187
|
+
onSpinEnd?.(winningItem);
|
|
188
|
+
} else if (wheelItems.length > 0) {
|
|
189
|
+
onSpinEnd?.(wheelItems[0]);
|
|
190
|
+
}
|
|
117
191
|
};
|
|
118
192
|
|
|
119
193
|
// Animation interpolation for rotation
|
|
@@ -148,24 +222,26 @@ const SpinWheel = ({
|
|
|
148
222
|
textX,
|
|
149
223
|
textY,
|
|
150
224
|
angle
|
|
151
|
-
}, index) =>
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
225
|
+
}, index) => {
|
|
226
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
227
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
228
|
+
d: path,
|
|
229
|
+
fill: item.color == "" || item.color == null ? colors[Math.floor(Math.random() * colors.length)] : item.color,
|
|
230
|
+
stroke: "#000000",
|
|
231
|
+
strokeWidth: 1
|
|
232
|
+
}), /*#__PURE__*/_jsx(SvgText, {
|
|
233
|
+
x: textX,
|
|
234
|
+
y: textY,
|
|
235
|
+
fill: item.textColor || wheelTextColor,
|
|
236
|
+
fontSize: wheelTextStyle?.fontSize || 14,
|
|
237
|
+
fontWeight: wheelTextStyle?.fontWeight || "bold",
|
|
238
|
+
textAnchor: "middle",
|
|
239
|
+
alignmentBaseline: "central",
|
|
240
|
+
transform: `rotate(${angle + 180}, ${textX}, ${textY} )`,
|
|
241
|
+
children: item.label
|
|
242
|
+
})]
|
|
243
|
+
}, item.id);
|
|
244
|
+
})
|
|
169
245
|
})
|
|
170
246
|
})
|
|
171
247
|
}), /*#__PURE__*/_jsx(View, {
|
|
@@ -177,7 +253,7 @@ const SpinWheel = ({
|
|
|
177
253
|
}, {
|
|
178
254
|
translateY: -size / 10
|
|
179
255
|
}],
|
|
180
|
-
borderRadius: size / 5
|
|
256
|
+
borderRadius: size / 5 // Should be (size / 5) / 2 for a circle
|
|
181
257
|
}, centerStyle]
|
|
182
258
|
}), /*#__PURE__*/_jsx(View, {
|
|
183
259
|
style: styles.pointerPosition,
|
|
@@ -197,7 +273,7 @@ const SpinWheel = ({
|
|
|
197
273
|
},
|
|
198
274
|
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
199
275
|
onPress: handleSpin,
|
|
200
|
-
disabled: spinning || !enabled ||
|
|
276
|
+
disabled: spinning || !enabled || wheelItems.length === 0,
|
|
201
277
|
style: [styles.actionButton, actionButtonStyle],
|
|
202
278
|
children: /*#__PURE__*/_jsx(Text, {
|
|
203
279
|
style: [styles.actionButtonText, actionButtonTextStyle],
|
|
@@ -213,7 +289,7 @@ const styles = StyleSheet.create({
|
|
|
213
289
|
alignItems: "center",
|
|
214
290
|
justifyContent: "center",
|
|
215
291
|
marginTop: 20,
|
|
216
|
-
marginBottom: 70
|
|
292
|
+
marginBottom: 70 // Space for the button
|
|
217
293
|
},
|
|
218
294
|
wheelContainer: {
|
|
219
295
|
overflow: "hidden",
|
|
@@ -247,8 +323,7 @@ const styles = StyleSheet.create({
|
|
|
247
323
|
borderRightWidth: 10,
|
|
248
324
|
borderBottomWidth: 15,
|
|
249
325
|
borderLeftColor: "transparent",
|
|
250
|
-
borderRightColor: "transparent"
|
|
251
|
-
borderBottomColor: "#D81E5B"
|
|
326
|
+
borderRightColor: "transparent"
|
|
252
327
|
},
|
|
253
328
|
actionButton: {
|
|
254
329
|
paddingHorizontal: 30,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useRef","useEffect","View","StyleSheet","Animated","Text","TouchableOpacity","Easing","Svg","Path","G","SvgText","jsx","_jsx","jsxs","_jsxs","colors","SpinWheel","items","size","spinDuration","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelTextColor","winner","wheelItems","length","spinning","setSpinning","internalWinner","setInternalWinner","rotateValue","Value","current","rotationRef","listener","addListener","value","removeListener","anglePerItem","generateWheelPaths","map","item","index","startAngle","endAngle","startRad","Math","PI","endRad","x1","cos","y1","sin","x2","y2","largeArcFlag","pathData","join","midRad","textX","textY","path","angle","wheelPaths","getItemIndex","target","findIndex","id","spinToIndex","targetIndex","callbackItem","winnerAngle","extraSpins","currentRotation","targetRotation","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","winnerIndex","handleSpin","randomIndex","floor","random","randomWinner","rotate","interpolate","inputRange","outputRange","style","styles","container","children","width","height","wheelContainer","borderRadius","transform","viewBox","Fragment","d","fill","color","stroke","strokeWidth","x","y","textColor","fontSize","fontWeight","textAnchor","alignmentBaseline","label","wheelCenter","translateX","translateY","pointerPosition","pointer","borderBottomColor","position","alignItems","justifyContent","bottom","zIndex","onPress","disabled","actionButton","actionButtonText","create","marginTop","marginBottom","overflow","backgroundColor","top","left","borderWidth","borderColor","borderStyle","borderLeftWidth","borderRightWidth","borderBottomWidth","borderLeftColor","borderRightColor","paddingHorizontal","paddingVertical","shadowColor","shadowRadius"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Wheel/Wheel.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","useEffect","View","StyleSheet","Animated","Text","TouchableOpacity","Easing","Svg","Path","G","SvgText","jsx","_jsx","jsxs","_jsxs","colors","SpinWheel","items","predeterminedWinner","size","spinDuration","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelBorderColor","wheelTextColor","wheelItems","length","spinning","setSpinning","_","setWinner","rotateValue","Value","current","rotationRef","listener","addListener","value","removeListener","anglePerItem","generateWheelPaths","map","item","index","startAngle","endAngle","startRad","Math","PI","endRad","x1","cos","y1","sin","x2","y2","largeArcFlag","pathData","join","midRad","textX","textY","path","angle","wheelPaths","handleSpin","targetRotation","winnerTargetIndex","winnerId","id","findIndex","targetSegmentCenterAngle","targetNormalizedAngle","currentAbsoluteAngle","currentNormalizedAngle","angleOffset","numberOfFullSpins","floor","random","randomSpins","randomAngle","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","handleSpinEnd","normalizedAngle","winningIndex","adjustedIndex","finalWinnerIndex","winningItem","rotate","interpolate","inputRange","outputRange","style","styles","container","children","width","height","wheelContainer","borderRadius","transform","viewBox","Fragment","d","fill","color","stroke","strokeWidth","x","y","textColor","fontSize","fontWeight","textAnchor","alignmentBaseline","label","wheelCenter","translateX","translateY","pointerPosition","pointer","borderBottomColor","position","alignItems","justifyContent","bottom","zIndex","onPress","disabled","actionButton","actionButtonText","create","marginTop","marginBottom","overflow","backgroundColor","top","left","borderWidth","borderColor","borderStyle","borderLeftWidth","borderRightWidth","borderBottomWidth","borderLeftColor","borderRightColor","paddingHorizontal","paddingVertical","shadowColor","shadowRadius"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Wheel/Wheel.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
// registerRootComponent(App);
|
|
9
|
-
|
|
3
|
+
import { registerRootComponent } from 'expo';
|
|
4
|
+
import "react-native-reanimated";
|
|
5
|
+
import App from "./app.js";
|
|
6
|
+
registerRootComponent(App);
|
|
10
7
|
export * from "./theme/index.js";
|
|
11
8
|
export * from "./components/index.js";
|
|
12
9
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;AAAA;
|
|
1
|
+
{"version":3,"names":["registerRootComponent","App"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;AAAA,SAASA,qBAAqB,QAAQ,MAAM;AAC5C,OAAO,yBAAyB;AAGhC,OAAOC,GAAG,MAAM,UAAO;AAEvBD,qBAAqB,CAACC,GAAG,CAAC;AAE1B,cAAc,kBAAS;AACvB,cAAc,uBAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAaxC,QAAA,MAAM,eAAe,yBA6BpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -9,8 +9,10 @@ export interface SpinWheelItem {
|
|
|
9
9
|
}
|
|
10
10
|
interface SpinWheelProps {
|
|
11
11
|
items: SpinWheelItem[];
|
|
12
|
+
predeterminedWinner?: SpinWheelItem | string | number;
|
|
12
13
|
size?: number;
|
|
13
14
|
spinDuration?: number;
|
|
15
|
+
friction?: number;
|
|
14
16
|
enabled?: boolean;
|
|
15
17
|
onSpinStart?: () => void;
|
|
16
18
|
onSpinEnd?: (item: SpinWheelItem) => void;
|
|
@@ -21,10 +23,10 @@ interface SpinWheelProps {
|
|
|
21
23
|
knobStyle?: ViewStyle;
|
|
22
24
|
actionButtonStyle?: ViewStyle;
|
|
23
25
|
actionButtonTextStyle?: TextStyle;
|
|
26
|
+
wheelBorderColor?: string;
|
|
24
27
|
wheelTextColor?: string;
|
|
25
28
|
knobColor?: string;
|
|
26
29
|
centerComponent?: React.ReactNode;
|
|
27
|
-
winner?: SpinWheelItem | null;
|
|
28
30
|
}
|
|
29
31
|
declare const SpinWheel: React.FC<SpinWheelProps>;
|
|
30
32
|
export default SpinWheel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAOL,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAOL,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD,UAAU,cAAc;IAEtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;IAGtD,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAG1C,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAGlC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAwRvC,CAAC;AAqDF,eAAe,SAAS,CAAC"}
|