related-ui-components 1.8.4 → 1.8.5
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/components/Wheel/Wheel.js +185 -175
- package/lib/commonjs/components/Wheel/Wheel.js.map +1 -1
- package/lib/module/components/Wheel/Wheel.js +187 -176
- package/lib/module/components/Wheel/Wheel.js.map +1 -1
- package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts +1 -2
- package/lib/typescript/commonjs/components/Wheel/Wheel.d.ts.map +1 -1
- package/lib/typescript/module/components/Wheel/Wheel.d.ts +1 -2
- package/lib/typescript/module/components/Wheel/Wheel.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Wheel/Wheel.tsx +239 -205
|
@@ -1,60 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState, useRef, useEffect
|
|
3
|
+
import React, { useState, useRef, useEffect, useMemo // Added useMemo for wheelPaths
|
|
4
|
+
} from "react";
|
|
4
5
|
import { View, StyleSheet, Animated, Text, TouchableOpacity, Easing } from "react-native";
|
|
5
6
|
import { Svg, Path, G, Text as SvgText } from "react-native-svg";
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
//
|
|
8
|
-
const
|
|
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
|
+
// Default random colors (can be used if item.color is not provided)
|
|
9
|
+
const defaultColors = ["#FF0000", "#FFA500", "#FFFF00", "#008000", "#0000FF", "#800080", "#FFC0CB", "#00FFFF", "#FF00FF", "#00FF00", "#4B0082", "#EE82EE", "#40E0D0", "#FFD700", "#C0C0C0", "#FFDAB9", "#E6E6FA", "#008080", "#FF7F50", "#DC143C", "#87CEEB", "#7FFF00", "#CCCCFF", "#FF6347", "#FA8072"];
|
|
58
10
|
const SpinWheel = ({
|
|
59
11
|
items,
|
|
60
12
|
size = 300,
|
|
@@ -70,109 +22,157 @@ const SpinWheel = ({
|
|
|
70
22
|
knobColor = "#D81E5B",
|
|
71
23
|
actionButtonStyle,
|
|
72
24
|
actionButtonTextStyle,
|
|
73
|
-
wheelTextColor = "#FFFFFF"
|
|
25
|
+
wheelTextColor = "#FFFFFF",
|
|
26
|
+
centerComponent,
|
|
27
|
+
predeterminedWinnerId = null // Default to null
|
|
74
28
|
}) => {
|
|
75
|
-
const wheelItems = items.length > 0 ? items : [];
|
|
29
|
+
const wheelItems = useMemo(() => items && items.length > 0 ? items : [], [items]);
|
|
76
30
|
const [spinning, setSpinning] = useState(false);
|
|
77
|
-
const [
|
|
31
|
+
const [_winnerState, setWinnerState] = useState(null); // Renamed to avoid conflict
|
|
78
32
|
const rotateValue = useRef(new Animated.Value(0)).current;
|
|
33
|
+
const rotationRef = useRef(0); // Tracks cumulative rotation in "number of turns"
|
|
79
34
|
|
|
80
|
-
// Track rotation manually for calculations
|
|
81
|
-
const rotationRef = useRef(0);
|
|
82
|
-
|
|
83
|
-
// Update tracked rotation when animation completes
|
|
84
35
|
useEffect(() => {
|
|
85
|
-
const
|
|
36
|
+
const listenerId = rotateValue.addListener(({
|
|
86
37
|
value
|
|
87
38
|
}) => {
|
|
88
39
|
rotationRef.current = value;
|
|
89
40
|
});
|
|
90
41
|
return () => {
|
|
91
|
-
rotateValue.removeListener(
|
|
42
|
+
rotateValue.removeListener(listenerId);
|
|
92
43
|
};
|
|
93
44
|
}, [rotateValue]);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
// Create wheel segments
|
|
99
|
-
const generateWheelPaths = () => {
|
|
45
|
+
const anglePerItem = wheelItems.length > 0 ? 360 / wheelItems.length : 0;
|
|
46
|
+
const wheelPaths = useMemo(() => {
|
|
47
|
+
if (wheelItems.length === 0) return [];
|
|
100
48
|
return wheelItems.map((item, index) => {
|
|
101
49
|
const startAngle = index * anglePerItem;
|
|
102
50
|
const endAngle = (index + 1) * anglePerItem;
|
|
103
|
-
|
|
104
|
-
// Calculate path for segment
|
|
105
51
|
const startRad = startAngle * Math.PI / 180;
|
|
106
52
|
const endRad = endAngle * Math.PI / 180;
|
|
107
53
|
const x1 = size / 2 + size / 2 * Math.cos(startRad);
|
|
108
54
|
const y1 = size / 2 + size / 2 * Math.sin(startRad);
|
|
109
55
|
const x2 = size / 2 + size / 2 * Math.cos(endRad);
|
|
110
56
|
const y2 = size / 2 + size / 2 * Math.sin(endRad);
|
|
111
|
-
const largeArcFlag =
|
|
57
|
+
const largeArcFlag = anglePerItem <= 180 ? "0" : "1";
|
|
112
58
|
const pathData = [`M ${size / 2} ${size / 2}`, `L ${x1} ${y1}`, `A ${size / 2} ${size / 2} 0 ${largeArcFlag} 1 ${x2} ${y2}`, "Z"].join(" ");
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const midRad = (startAngle + endAngle) / 2 * (Math.PI / 180);
|
|
59
|
+
const midAngle = startAngle + anglePerItem / 2;
|
|
60
|
+
const midRad = midAngle * Math.PI / 180;
|
|
116
61
|
const textX = size / 2 + size * 0.32 * Math.cos(midRad);
|
|
117
62
|
const textY = size / 2 + size * 0.32 * Math.sin(midRad);
|
|
118
|
-
const decorationX = size / 2 + size * 0.43 * Math.cos(midRad);
|
|
119
|
-
const decorationY = size / 2 + size * 0.43 * Math.sin(midRad);
|
|
120
63
|
return {
|
|
121
64
|
path: pathData,
|
|
122
65
|
item,
|
|
123
66
|
textX,
|
|
124
67
|
textY,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
angle: (startAngle + endAngle) / 2
|
|
68
|
+
angle: midAngle,
|
|
69
|
+
color: item.color || defaultColors[index % defaultColors.length]
|
|
128
70
|
};
|
|
129
71
|
});
|
|
130
|
-
};
|
|
131
|
-
const wheelPaths = generateWheelPaths();
|
|
132
|
-
|
|
133
|
-
// Handle spin button press
|
|
72
|
+
}, [wheelItems, anglePerItem, size]);
|
|
134
73
|
const handleSpin = () => {
|
|
135
|
-
if (spinning || !enabled)
|
|
74
|
+
if (spinning || !enabled || wheelItems.length === 0 || anglePerItem === 0) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
136
77
|
setSpinning(true);
|
|
137
78
|
onSpinStart?.();
|
|
79
|
+
let targetAnimationToValue;
|
|
80
|
+
let winnerToAnnounce = null;
|
|
81
|
+
const currentWinnerId = predeterminedWinnerId; // Capture prop value at spin start
|
|
82
|
+
let targetWinnerItem = null;
|
|
83
|
+
if (currentWinnerId != null) {
|
|
84
|
+
const foundItem = wheelItems.find(item => item.id === currentWinnerId);
|
|
85
|
+
if (foundItem) {
|
|
86
|
+
targetWinnerItem = foundItem;
|
|
87
|
+
} else {
|
|
88
|
+
console.warn(`SpinWheel: Predetermined winner with id "${currentWinnerId}" not found. Spinning randomly.`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (targetWinnerItem) {
|
|
92
|
+
winnerToAnnounce = targetWinnerItem;
|
|
93
|
+
const winnerIndex = wheelItems.indexOf(targetWinnerItem);
|
|
138
94
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
95
|
+
// Calculate the middle angle of the target segment within the wheel's coordinate system
|
|
96
|
+
const targetSegmentMidAngle_deg = (winnerIndex + 0.5) * anglePerItem;
|
|
97
|
+
|
|
98
|
+
// The pointer is at 270 degrees (top). We want the targetSegmentMidAngle_deg
|
|
99
|
+
// to align with this pointer.
|
|
100
|
+
// If the wheel rotates by R, a point A on wheel is at (A+R)%360.
|
|
101
|
+
// So, (targetSegmentMidAngle_deg + R) % 360 = 270.
|
|
102
|
+
// R % 360 = (270 - targetSegmentMidAngle_deg + 360*k) % 360.
|
|
103
|
+
// This R % 360 is the target orientation for the wheel's 0-degree mark.
|
|
104
|
+
const targetWheelOrientation_deg = (270 - targetSegmentMidAngle_deg + 360 * 10) % 360; // *10 to ensure positive
|
|
105
|
+
|
|
106
|
+
const currentWheelOrientation_deg = rotationRef.current * 360 % 360;
|
|
107
|
+
|
|
108
|
+
// Additional rotation needed to reach the target orientation (shortest positive path)
|
|
109
|
+
const rotationToTarget_deg = (targetWheelOrientation_deg - currentWheelOrientation_deg + 360) % 360;
|
|
110
|
+
const numFullRotations = 3 + Math.floor(Math.random() * 3); // 3 to 5 full spins
|
|
111
|
+
const totalAdditionalRotation_deg = numFullRotations * 360 + rotationToTarget_deg;
|
|
112
|
+
targetAnimationToValue = rotationRef.current + totalAdditionalRotation_deg / 360;
|
|
113
|
+
} else {
|
|
114
|
+
// Fallback to original random spin logic
|
|
115
|
+
const randomSpins = 3 + Math.random() * 2; // 3-5 full rotations
|
|
116
|
+
const randomAngleOffset = Math.random() * 360;
|
|
117
|
+
const totalRandomRotation_deg = 360 * randomSpins + randomAngleOffset;
|
|
118
|
+
targetAnimationToValue = rotationRef.current + totalRandomRotation_deg / 360;
|
|
119
|
+
}
|
|
143
120
|
Animated.timing(rotateValue, {
|
|
144
|
-
toValue:
|
|
121
|
+
toValue: targetAnimationToValue,
|
|
145
122
|
duration: spinDuration,
|
|
146
123
|
easing: Easing.out(Easing.cubic),
|
|
147
124
|
useNativeDriver: true
|
|
148
|
-
}).start(() =>
|
|
149
|
-
|
|
125
|
+
}).start(() => {
|
|
126
|
+
setSpinning(false);
|
|
127
|
+
if (winnerToAnnounce) {
|
|
128
|
+
setWinnerState(winnerToAnnounce);
|
|
129
|
+
onSpinEnd?.(winnerToAnnounce);
|
|
130
|
+
} else {
|
|
131
|
+
// Calculate winner from random spin based on final rotation
|
|
132
|
+
const finalRotationDegrees = rotationRef.current * 360;
|
|
133
|
+
const pointerFixedAt_deg = 270; // Pointer is at the top
|
|
150
134
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
setSpinning(false);
|
|
135
|
+
// Determine which original angle on the wheel is now under the pointer
|
|
136
|
+
const angleUnderPointer_orig = (pointerFixedAt_deg - finalRotationDegrees + 360 * 10) % 360; // *10 for positive
|
|
154
137
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
138
|
+
let winningSegmentIndex = Math.floor(angleUnderPointer_orig / anglePerItem);
|
|
139
|
+
// Ensure index is within bounds
|
|
140
|
+
winningSegmentIndex = Math.max(0, Math.min(wheelItems.length - 1, winningSegmentIndex));
|
|
141
|
+
const calculatedWinner = wheelItems[winningSegmentIndex];
|
|
142
|
+
if (calculatedWinner) {
|
|
143
|
+
setWinnerState(calculatedWinner);
|
|
144
|
+
onSpinEnd?.(calculatedWinner);
|
|
145
|
+
} else if (wheelItems.length > 0) {
|
|
146
|
+
// Fallback, should not happen if items exist and calculation is correct
|
|
147
|
+
console.error("SpinWheel: Could not determine winner from random spin. Falling back to first item.");
|
|
148
|
+
setWinnerState(wheelItems[0]);
|
|
149
|
+
onSpinEnd?.(wheelItems[0]);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
});
|
|
163
153
|
};
|
|
164
|
-
|
|
165
|
-
// Animation interpolation for rotation
|
|
166
|
-
const rotate = rotateValue.interpolate({
|
|
154
|
+
const rotateStyle = rotateValue.interpolate({
|
|
167
155
|
inputRange: [0, 1],
|
|
168
156
|
outputRange: ["0deg", "360deg"]
|
|
169
157
|
});
|
|
170
|
-
|
|
158
|
+
if (wheelItems.length === 0) {
|
|
159
|
+
return /*#__PURE__*/_jsx(View, {
|
|
160
|
+
style: [styles.container, containerStyle, {
|
|
161
|
+
height: size
|
|
162
|
+
}],
|
|
163
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
164
|
+
children: "No items to display in the wheel."
|
|
165
|
+
})
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
171
169
|
style: [styles.container, containerStyle],
|
|
172
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
170
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
173
171
|
style: {
|
|
174
172
|
width: size,
|
|
175
|
-
height: size
|
|
173
|
+
height: size,
|
|
174
|
+
alignItems: 'center',
|
|
175
|
+
justifyContent: 'center'
|
|
176
176
|
},
|
|
177
177
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
178
178
|
style: [styles.wheelContainer, {
|
|
@@ -180,7 +180,7 @@ const SpinWheel = ({
|
|
|
180
180
|
height: size,
|
|
181
181
|
borderRadius: size / 2,
|
|
182
182
|
transform: [{
|
|
183
|
-
rotate
|
|
183
|
+
rotate: rotateStyle
|
|
184
184
|
}]
|
|
185
185
|
}],
|
|
186
186
|
children: /*#__PURE__*/_jsx(Svg, {
|
|
@@ -193,100 +193,98 @@ const SpinWheel = ({
|
|
|
193
193
|
item,
|
|
194
194
|
textX,
|
|
195
195
|
textY,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
})
|
|
196
|
+
angle,
|
|
197
|
+
color
|
|
198
|
+
}) => /*#__PURE__*/_jsxs(React.Fragment, {
|
|
199
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
200
|
+
d: path,
|
|
201
|
+
fill: color,
|
|
202
|
+
stroke: "#000000",
|
|
203
|
+
strokeWidth: 0.5
|
|
204
|
+
}), /*#__PURE__*/_jsx(SvgText, {
|
|
205
|
+
x: textX,
|
|
206
|
+
y: textY,
|
|
207
|
+
fill: item.textColor || wheelTextColor,
|
|
208
|
+
fontSize: wheelTextStyle?.fontSize || Math.max(8, size / 25) // Dynamic font size
|
|
209
|
+
,
|
|
210
|
+
fontWeight: wheelTextStyle?.fontWeight || "bold",
|
|
211
|
+
textAnchor: "middle",
|
|
212
|
+
alignmentBaseline: "central",
|
|
213
|
+
transform: `rotate(${angle + 90}, ${textX}, ${textY} )` // Adjusted rotation for readability
|
|
214
|
+
,
|
|
215
|
+
children: item.label
|
|
216
|
+
})]
|
|
217
|
+
}, item.id))
|
|
219
218
|
})
|
|
220
219
|
})
|
|
221
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
220
|
+
}), centerComponent ? /*#__PURE__*/_jsx(View, {
|
|
221
|
+
style: styles.centerComponentWrapper,
|
|
222
|
+
children: centerComponent
|
|
223
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
222
224
|
style: [styles.wheelCenter, {
|
|
223
225
|
width: size / 5,
|
|
224
226
|
height: size / 5,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}, {
|
|
228
|
-
translateY: -size / 10
|
|
229
|
-
}],
|
|
230
|
-
borderRadius: size / 5
|
|
227
|
+
borderRadius: size / 10 // Should be half of width/height
|
|
228
|
+
// Centering is now handled by absolute positioning from parent
|
|
231
229
|
}, centerStyle]
|
|
232
230
|
}), /*#__PURE__*/_jsx(View, {
|
|
233
|
-
style: styles.
|
|
231
|
+
style: styles.pointerContainer,
|
|
234
232
|
children: /*#__PURE__*/_jsx(View, {
|
|
235
233
|
style: [styles.pointer, {
|
|
236
234
|
borderBottomColor: knobColor
|
|
237
235
|
}, knobStyle]
|
|
238
236
|
})
|
|
239
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
240
|
-
style: {
|
|
241
|
-
position: "absolute",
|
|
242
|
-
width: "100%",
|
|
243
|
-
alignItems: "center",
|
|
244
|
-
justifyContent: "center",
|
|
245
|
-
bottom: -70,
|
|
246
|
-
zIndex: 2
|
|
247
|
-
},
|
|
248
|
-
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
249
|
-
onPress: handleSpin,
|
|
250
|
-
disabled: spinning || !enabled,
|
|
251
|
-
style: [styles.actionButton, actionButtonStyle],
|
|
252
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
253
|
-
style: [styles.actionButtonText, actionButtonTextStyle],
|
|
254
|
-
children: spinButtonText
|
|
255
|
-
})
|
|
256
|
-
})
|
|
257
237
|
})]
|
|
258
|
-
})
|
|
238
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
239
|
+
onPress: handleSpin,
|
|
240
|
+
disabled: spinning || !enabled,
|
|
241
|
+
style: [styles.actionButton, actionButtonStyle],
|
|
242
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
243
|
+
style: [styles.actionButtonText, actionButtonTextStyle],
|
|
244
|
+
children: spinButtonText
|
|
245
|
+
})
|
|
246
|
+
})]
|
|
259
247
|
});
|
|
260
248
|
};
|
|
261
249
|
const styles = StyleSheet.create({
|
|
262
250
|
container: {
|
|
263
251
|
alignItems: "center",
|
|
264
252
|
justifyContent: "center",
|
|
265
|
-
|
|
266
|
-
marginBottom: 70 // Space for the button
|
|
253
|
+
paddingVertical: 20 // Added padding
|
|
267
254
|
},
|
|
268
255
|
wheelContainer: {
|
|
269
256
|
overflow: "hidden",
|
|
270
|
-
backgroundColor: "transparent"
|
|
257
|
+
backgroundColor: "transparent",
|
|
258
|
+
// Ensure SVG is visible
|
|
259
|
+
alignItems: "center",
|
|
260
|
+
justifyContent: "center"
|
|
261
|
+
},
|
|
262
|
+
centerComponentWrapper: {
|
|
263
|
+
// For custom center component
|
|
264
|
+
position: 'absolute',
|
|
265
|
+
zIndex: 2
|
|
271
266
|
},
|
|
272
267
|
wheelCenter: {
|
|
268
|
+
// Default center circle
|
|
273
269
|
position: "absolute",
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
zIndex:
|
|
270
|
+
backgroundColor: "#333333",
|
|
271
|
+
// Darker center
|
|
272
|
+
borderWidth: 2,
|
|
273
|
+
borderColor: "#FFFFFF",
|
|
274
|
+
// White border for center
|
|
275
|
+
zIndex: 2 // Above wheel paths, below pointer
|
|
280
276
|
},
|
|
281
|
-
|
|
277
|
+
pointerContainer: {
|
|
278
|
+
// Position the pointer correctly at the top center
|
|
282
279
|
position: "absolute",
|
|
280
|
+
top: -5,
|
|
281
|
+
// Adjust to make pointer sit nicely on the edge
|
|
283
282
|
left: "50%",
|
|
284
283
|
transform: [{
|
|
285
284
|
translateX: -10
|
|
286
|
-
}, {
|
|
287
|
-
rotate: "180deg"
|
|
288
285
|
}],
|
|
289
|
-
|
|
286
|
+
// Half of pointer base width
|
|
287
|
+
zIndex: 3 // Above everything else on the wheel
|
|
290
288
|
},
|
|
291
289
|
pointer: {
|
|
292
290
|
width: 0,
|
|
@@ -294,21 +292,34 @@ const styles = StyleSheet.create({
|
|
|
294
292
|
backgroundColor: "transparent",
|
|
295
293
|
borderStyle: "solid",
|
|
296
294
|
borderLeftWidth: 10,
|
|
295
|
+
// Base of triangle
|
|
297
296
|
borderRightWidth: 10,
|
|
298
|
-
|
|
297
|
+
// Base of triangle
|
|
298
|
+
borderBottomWidth: 20,
|
|
299
|
+
// Height of triangle
|
|
299
300
|
borderLeftColor: "transparent",
|
|
300
|
-
borderRightColor: "transparent"
|
|
301
|
-
borderBottomColor
|
|
301
|
+
borderRightColor: "transparent"
|
|
302
|
+
// borderBottomColor is set by knobColor prop
|
|
302
303
|
},
|
|
303
304
|
actionButton: {
|
|
305
|
+
marginTop: 30,
|
|
306
|
+
// Space between wheel and button
|
|
304
307
|
paddingHorizontal: 30,
|
|
305
308
|
paddingVertical: 12,
|
|
306
309
|
borderRadius: 25,
|
|
310
|
+
backgroundColor: "#4CAF50",
|
|
311
|
+
// Example button color
|
|
307
312
|
shadowColor: "#000",
|
|
308
|
-
|
|
309
|
-
|
|
313
|
+
shadowOffset: {
|
|
314
|
+
width: 0,
|
|
315
|
+
height: 2
|
|
316
|
+
},
|
|
317
|
+
shadowOpacity: 0.25,
|
|
318
|
+
shadowRadius: 3.84,
|
|
319
|
+
elevation: 5
|
|
310
320
|
},
|
|
311
321
|
actionButtonText: {
|
|
322
|
+
color: "#FFFFFF",
|
|
312
323
|
fontWeight: "bold",
|
|
313
324
|
fontSize: 16
|
|
314
325
|
}
|
|
@@ -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","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","decorationX","decorationY","path","angle","wheelPaths","handleSpin","randomSpins","random","randomAngle","targetRotation","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","handleSpinEnd","normalizedAngle","winningIndex","floor","adjustedIndex","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","id","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","useMemo","View","StyleSheet","Animated","Text","TouchableOpacity","Easing","Svg","Path","G","SvgText","jsx","_jsx","jsxs","_jsxs","defaultColors","SpinWheel","items","size","spinDuration","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelTextColor","centerComponent","predeterminedWinnerId","wheelItems","length","spinning","setSpinning","_winnerState","setWinnerState","rotateValue","Value","current","rotationRef","listenerId","addListener","value","removeListener","anglePerItem","wheelPaths","map","item","index","startAngle","endAngle","startRad","Math","PI","endRad","x1","cos","y1","sin","x2","y2","largeArcFlag","pathData","join","midAngle","midRad","textX","textY","path","angle","color","handleSpin","targetAnimationToValue","winnerToAnnounce","currentWinnerId","targetWinnerItem","foundItem","find","id","console","warn","winnerIndex","indexOf","targetSegmentMidAngle_deg","targetWheelOrientation_deg","currentWheelOrientation_deg","rotationToTarget_deg","numFullRotations","floor","random","totalAdditionalRotation_deg","randomSpins","randomAngleOffset","totalRandomRotation_deg","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","finalRotationDegrees","pointerFixedAt_deg","angleUnderPointer_orig","winningSegmentIndex","max","min","calculatedWinner","error","rotateStyle","interpolate","inputRange","outputRange","style","styles","container","height","children","width","alignItems","justifyContent","wheelContainer","borderRadius","transform","rotate","viewBox","Fragment","d","fill","stroke","strokeWidth","x","y","textColor","fontSize","fontWeight","textAnchor","alignmentBaseline","label","centerComponentWrapper","wheelCenter","pointerContainer","pointer","borderBottomColor","onPress","disabled","actionButton","actionButtonText","create","paddingVertical","overflow","backgroundColor","position","zIndex","borderWidth","borderColor","top","left","translateX","borderStyle","borderLeftWidth","borderRightWidth","borderBottomWidth","borderLeftColor","borderRightColor","marginTop","paddingHorizontal","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Wheel/Wheel.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,7 +11,6 @@ interface SpinWheelProps {
|
|
|
11
11
|
items: SpinWheelItem[];
|
|
12
12
|
size?: number;
|
|
13
13
|
spinDuration?: number;
|
|
14
|
-
friction?: number;
|
|
15
14
|
enabled?: boolean;
|
|
16
15
|
onSpinStart?: () => void;
|
|
17
16
|
onSpinEnd?: (item: SpinWheelItem) => void;
|
|
@@ -22,10 +21,10 @@ interface SpinWheelProps {
|
|
|
22
21
|
knobStyle?: ViewStyle;
|
|
23
22
|
actionButtonStyle?: ViewStyle;
|
|
24
23
|
actionButtonTextStyle?: TextStyle;
|
|
25
|
-
wheelBorderColor?: string;
|
|
26
24
|
wheelTextColor?: string;
|
|
27
25
|
knobColor?: string;
|
|
28
26
|
centerComponent?: React.ReactNode;
|
|
27
|
+
predeterminedWinnerId?: string | number | null;
|
|
29
28
|
}
|
|
30
29
|
declare const SpinWheel: React.FC<SpinWheelProps>;
|
|
31
30
|
export default SpinWheel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AACf,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;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,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;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2QvC,CAAC;AA+DF,eAAe,SAAS,CAAC"}
|
|
@@ -11,7 +11,6 @@ interface SpinWheelProps {
|
|
|
11
11
|
items: SpinWheelItem[];
|
|
12
12
|
size?: number;
|
|
13
13
|
spinDuration?: number;
|
|
14
|
-
friction?: number;
|
|
15
14
|
enabled?: boolean;
|
|
16
15
|
onSpinStart?: () => void;
|
|
17
16
|
onSpinEnd?: (item: SpinWheelItem) => void;
|
|
@@ -22,10 +21,10 @@ interface SpinWheelProps {
|
|
|
22
21
|
knobStyle?: ViewStyle;
|
|
23
22
|
actionButtonStyle?: ViewStyle;
|
|
24
23
|
actionButtonTextStyle?: TextStyle;
|
|
25
|
-
wheelBorderColor?: string;
|
|
26
24
|
wheelTextColor?: string;
|
|
27
25
|
knobColor?: string;
|
|
28
26
|
centerComponent?: React.ReactNode;
|
|
27
|
+
predeterminedWinnerId?: string | number | null;
|
|
29
28
|
}
|
|
30
29
|
declare const SpinWheel: React.FC<SpinWheelProps>;
|
|
31
30
|
export default SpinWheel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wheel/Wheel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AACf,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;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,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;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAChD;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2QvC,CAAC;AA+DF,eAAe,SAAS,CAAC"}
|