related-ui-components 3.2.7 → 3.2.8
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.
|
@@ -58,13 +58,9 @@ const colors = ["#FF0000",
|
|
|
58
58
|
];
|
|
59
59
|
const SpinWheel = ({
|
|
60
60
|
items,
|
|
61
|
-
predeterminedWinner,
|
|
62
|
-
// Destructure new prop
|
|
63
61
|
size = 300,
|
|
64
|
-
spinDuration = 5000,
|
|
65
62
|
winner,
|
|
66
63
|
minSpinDuration = 2000,
|
|
67
|
-
enabled = true,
|
|
68
64
|
onSpinStart,
|
|
69
65
|
onSpinEnd,
|
|
70
66
|
containerStyle,
|
|
@@ -86,7 +82,6 @@ const SpinWheel = ({
|
|
|
86
82
|
const spinLoop = useRef(null);
|
|
87
83
|
const spinStartTime = useRef(0);
|
|
88
84
|
const [spinning, setSpinning] = useState(false);
|
|
89
|
-
const [_, setWinner] = useState(null);
|
|
90
85
|
const rotateValue = useRef(new Animated.Value(0)).current;
|
|
91
86
|
|
|
92
87
|
// Track rotation manually for calculations
|
|
@@ -97,7 +92,7 @@ const SpinWheel = ({
|
|
|
97
92
|
spinLoop.current = Animated.loop(Animated.timing(rotateValue, {
|
|
98
93
|
toValue: rotationRef.current + 1,
|
|
99
94
|
// 1 = full rotation
|
|
100
|
-
duration:
|
|
95
|
+
duration: 2500,
|
|
101
96
|
easing: Easing.linear,
|
|
102
97
|
useNativeDriver: true
|
|
103
98
|
}));
|
|
@@ -177,63 +172,6 @@ const SpinWheel = ({
|
|
|
177
172
|
});
|
|
178
173
|
};
|
|
179
174
|
const wheelPaths = generateWheelPaths();
|
|
180
|
-
|
|
181
|
-
// Handle spin button press
|
|
182
|
-
const handleSpin = () => {
|
|
183
|
-
if (spinning || !enabled || wheelItems.length === 0) return;
|
|
184
|
-
setSpinning(true);
|
|
185
|
-
onSpinStart?.();
|
|
186
|
-
let targetRotation = 0;
|
|
187
|
-
let winnerTargetIndex = -1;
|
|
188
|
-
if (predeterminedWinner) {
|
|
189
|
-
const winnerId = typeof predeterminedWinner === "object" ? predeterminedWinner.id : predeterminedWinner;
|
|
190
|
-
winnerTargetIndex = wheelItems.findIndex(item => item.id === winnerId);
|
|
191
|
-
}
|
|
192
|
-
if (winnerTargetIndex !== -1) {
|
|
193
|
-
const targetSegmentCenterAngle = (winnerTargetIndex + 0.5) * anglePerItem;
|
|
194
|
-
const targetNormalizedAngle = (270 - targetSegmentCenterAngle + 360) % 360;
|
|
195
|
-
const currentAbsoluteAngle = rotationRef.current * 360;
|
|
196
|
-
const currentNormalizedAngle = (currentAbsoluteAngle % 360 + 360) % 360;
|
|
197
|
-
|
|
198
|
-
// Additional angle needed to reach the targetNormalizedAngle from currentNormalizedAngle
|
|
199
|
-
const angleOffset = (targetNormalizedAngle - currentNormalizedAngle + 360) % 360;
|
|
200
|
-
|
|
201
|
-
// Number of full spins (e.g., 3 to 5)
|
|
202
|
-
const numberOfFullSpins = 3 + Math.floor(Math.random() * 3); // 3, 4, or 5 spins
|
|
203
|
-
targetRotation = numberOfFullSpins * 360 + angleOffset;
|
|
204
|
-
|
|
205
|
-
// Ensure minimum rotation if already aligned (e.g. if angleOffset is 0)
|
|
206
|
-
if (targetRotation < 360) {
|
|
207
|
-
targetRotation += 360 * (3 + Math.floor(Math.random() * 3));
|
|
208
|
-
}
|
|
209
|
-
} else {
|
|
210
|
-
const randomSpins = 3 + Math.random() * 2;
|
|
211
|
-
const randomAngle = Math.random() * 360;
|
|
212
|
-
targetRotation = 360 * randomSpins + randomAngle;
|
|
213
|
-
}
|
|
214
|
-
Animated.timing(rotateValue, {
|
|
215
|
-
toValue: rotationRef.current + targetRotation / 360,
|
|
216
|
-
duration: spinDuration,
|
|
217
|
-
easing: Easing.out(Easing.cubic),
|
|
218
|
-
useNativeDriver: true
|
|
219
|
-
}).start(() => handleSpinEnd());
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
// Handle spin completion
|
|
223
|
-
const handleSpinEnd = () => {
|
|
224
|
-
setSpinning(false);
|
|
225
|
-
const normalizedAngle = rotationRef.current * 360 % 360;
|
|
226
|
-
const winningIndex = Math.floor((normalizedAngle - 270) % 360 / anglePerItem);
|
|
227
|
-
const adjustedIndex = (wheelItems.length - 1 - winningIndex) % wheelItems.length;
|
|
228
|
-
const finalWinnerIndex = adjustedIndex >= 0 ? adjustedIndex : wheelItems.length + adjustedIndex;
|
|
229
|
-
if (finalWinnerIndex >= 0 && finalWinnerIndex < wheelItems.length) {
|
|
230
|
-
const winningItem = wheelItems[finalWinnerIndex];
|
|
231
|
-
setWinner(winningItem);
|
|
232
|
-
onSpinEnd?.(winningItem);
|
|
233
|
-
} else if (wheelItems.length > 0) {
|
|
234
|
-
onSpinEnd?.(wheelItems[0]);
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
175
|
useEffect(() => {
|
|
238
176
|
if (!winner || !spinning) return;
|
|
239
177
|
const elapsed = Date.now() - spinStartTime.current;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useRef","useEffect","View","StyleSheet","Animated","Easing","Svg","Path","G","Text","SvgText","Circle","Button","jsx","_jsx","jsxs","_jsxs","colors","SpinWheel","items","predeterminedWinner","size","spinDuration","winner","minSpinDuration","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelBorderColor","wheelBorderWidth","wheelTextColor","actionButtonProps","centerSize","centerComponent","wheelItems","length","spinLoop","spinStartTime","spinning","setSpinning","_","setWinner","rotateValue","Value","current","rotationRef","startInfiniteSpin","setValue","Date","now","loop","timing","toValue","duration","easing","linear","useNativeDriver","start","stopOnWinner","winnerValue","stop","winnerId","id","index","findIndex","i","segmentCenter","anglePerItem","targetAngle","currentAngle","offset","finalRotation","out","cubic","listener","addListener","value","removeListener","generateWheelPaths","map","item","startAngle","endAngle","startRad","Math","PI","endRad","x1","cos","y1","sin","x2","y2","largeArcFlag","pathData","join","midRad","textX","textY","path","angle","wheelPaths","handleSpin","targetRotation","winnerTargetIndex","targetSegmentCenterAngle","targetNormalizedAngle","currentAbsoluteAngle","currentNormalizedAngle","angleOffset","numberOfFullSpins","floor","random","randomSpins","randomAngle","handleSpinEnd","normalizedAngle","winningIndex","adjustedIndex","finalWinnerIndex","winningItem","elapsed","delay","max","timeout","setTimeout","clearTimeout","rotate","interpolate","inputRange","outputRange","actualCenterSize","undefined","style","styles","container","children","width","height","wheelContainer","borderRadius","transform","viewBox","Fragment","d","fill","color","x","y","textColor","fontSize","fontWeight","textAnchor","alignmentBaseline","label","cx","cy","r","stroke","strokeWidth","position","top","left","translateX","translateY","zIndex","wheelCenter","pointerPosition","pointer","borderBottomColor","alignItems","justifyContent","bottom","actionButton","onPress","title","disabled","textStyle","actionButtonText","create","marginTop","marginBottom","overflow","backgroundColor","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","Easing","Svg","Path","G","Text","SvgText","Circle","Button","jsx","_jsx","jsxs","_jsxs","colors","SpinWheel","items","size","winner","minSpinDuration","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelBorderColor","wheelBorderWidth","wheelTextColor","actionButtonProps","centerSize","centerComponent","wheelItems","length","spinLoop","spinStartTime","spinning","setSpinning","rotateValue","Value","current","rotationRef","startInfiniteSpin","setValue","Date","now","loop","timing","toValue","duration","easing","linear","useNativeDriver","start","stopOnWinner","winnerValue","stop","winnerId","id","index","findIndex","i","segmentCenter","anglePerItem","targetAngle","currentAngle","offset","finalRotation","out","cubic","listener","addListener","value","removeListener","generateWheelPaths","map","item","startAngle","endAngle","startRad","Math","PI","endRad","x1","cos","y1","sin","x2","y2","largeArcFlag","pathData","join","midRad","textX","textY","path","angle","wheelPaths","elapsed","delay","max","timeout","setTimeout","clearTimeout","rotate","interpolate","inputRange","outputRange","actualCenterSize","undefined","style","styles","container","children","width","height","wheelContainer","borderRadius","transform","viewBox","Fragment","d","fill","color","floor","random","x","y","textColor","fontSize","fontWeight","textAnchor","alignmentBaseline","label","cx","cy","r","stroke","strokeWidth","position","top","left","translateX","translateY","zIndex","wheelCenter","pointerPosition","pointer","borderBottomColor","alignItems","justifyContent","bottom","actionButton","onPress","title","disabled","textStyle","actionButtonText","create","marginTop","marginBottom","overflow","backgroundColor","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 +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;AAEtB,OAAO,EAAE,cAAc,EAAU,MAAM,WAAW,CAAC;AAEnD,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;IAEd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,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;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;IAEvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
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;AAEtB,OAAO,EAAE,cAAc,EAAU,MAAM,WAAW,CAAC;AAEnD,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;IAEd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,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;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;IAEvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAmTvC,CAAC;AAqDF,eAAe,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -92,12 +92,9 @@ interface SpinWheelProps {
|
|
|
92
92
|
|
|
93
93
|
const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
94
94
|
items,
|
|
95
|
-
predeterminedWinner, // Destructure new prop
|
|
96
95
|
size = 300,
|
|
97
|
-
spinDuration = 5000,
|
|
98
96
|
winner,
|
|
99
97
|
minSpinDuration = 2000,
|
|
100
|
-
enabled = true,
|
|
101
98
|
onSpinStart,
|
|
102
99
|
onSpinEnd,
|
|
103
100
|
containerStyle,
|
|
@@ -121,7 +118,6 @@ const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
|
121
118
|
const spinStartTime = useRef<number>(0);
|
|
122
119
|
|
|
123
120
|
const [spinning, setSpinning] = useState(false);
|
|
124
|
-
const [_, setWinner] = useState<SpinWheelItem | null>(null);
|
|
125
121
|
const rotateValue = useRef(new Animated.Value(0)).current;
|
|
126
122
|
|
|
127
123
|
// Track rotation manually for calculations
|
|
@@ -135,7 +131,7 @@ const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
|
135
131
|
spinLoop.current = Animated.loop(
|
|
136
132
|
Animated.timing(rotateValue, {
|
|
137
133
|
toValue: rotationRef.current + 1, // 1 = full rotation
|
|
138
|
-
duration:
|
|
134
|
+
duration: 2500,
|
|
139
135
|
easing: Easing.linear,
|
|
140
136
|
useNativeDriver: true,
|
|
141
137
|
})
|
|
@@ -237,82 +233,6 @@ const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
|
237
233
|
|
|
238
234
|
const wheelPaths = generateWheelPaths();
|
|
239
235
|
|
|
240
|
-
// Handle spin button press
|
|
241
|
-
const handleSpin = () => {
|
|
242
|
-
if (spinning || !enabled || wheelItems.length === 0) return;
|
|
243
|
-
|
|
244
|
-
setSpinning(true);
|
|
245
|
-
onSpinStart?.();
|
|
246
|
-
|
|
247
|
-
let targetRotation = 0;
|
|
248
|
-
let winnerTargetIndex = -1;
|
|
249
|
-
|
|
250
|
-
if (predeterminedWinner) {
|
|
251
|
-
const winnerId =
|
|
252
|
-
typeof predeterminedWinner === "object"
|
|
253
|
-
? predeterminedWinner.id
|
|
254
|
-
: predeterminedWinner;
|
|
255
|
-
winnerTargetIndex = wheelItems.findIndex((item) => item.id === winnerId);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
if (winnerTargetIndex !== -1) {
|
|
259
|
-
const targetSegmentCenterAngle = (winnerTargetIndex + 0.5) * anglePerItem;
|
|
260
|
-
|
|
261
|
-
const targetNormalizedAngle =
|
|
262
|
-
(270 - targetSegmentCenterAngle + 360) % 360;
|
|
263
|
-
|
|
264
|
-
const currentAbsoluteAngle = rotationRef.current * 360;
|
|
265
|
-
const currentNormalizedAngle = ((currentAbsoluteAngle % 360) + 360) % 360;
|
|
266
|
-
|
|
267
|
-
// Additional angle needed to reach the targetNormalizedAngle from currentNormalizedAngle
|
|
268
|
-
const angleOffset =
|
|
269
|
-
(targetNormalizedAngle - currentNormalizedAngle + 360) % 360;
|
|
270
|
-
|
|
271
|
-
// Number of full spins (e.g., 3 to 5)
|
|
272
|
-
const numberOfFullSpins = 3 + Math.floor(Math.random() * 3); // 3, 4, or 5 spins
|
|
273
|
-
targetRotation = numberOfFullSpins * 360 + angleOffset;
|
|
274
|
-
|
|
275
|
-
// Ensure minimum rotation if already aligned (e.g. if angleOffset is 0)
|
|
276
|
-
if (targetRotation < 360) {
|
|
277
|
-
targetRotation += 360 * (3 + Math.floor(Math.random() * 3));
|
|
278
|
-
}
|
|
279
|
-
} else {
|
|
280
|
-
const randomSpins = 3 + Math.random() * 2;
|
|
281
|
-
const randomAngle = Math.random() * 360;
|
|
282
|
-
targetRotation = 360 * randomSpins + randomAngle;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
Animated.timing(rotateValue, {
|
|
286
|
-
toValue: rotationRef.current + targetRotation / 360,
|
|
287
|
-
duration: spinDuration,
|
|
288
|
-
easing: Easing.out(Easing.cubic),
|
|
289
|
-
useNativeDriver: true,
|
|
290
|
-
}).start(() => handleSpinEnd());
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
// Handle spin completion
|
|
294
|
-
const handleSpinEnd = () => {
|
|
295
|
-
setSpinning(false);
|
|
296
|
-
|
|
297
|
-
const normalizedAngle = (rotationRef.current * 360) % 360;
|
|
298
|
-
const winningIndex = Math.floor(
|
|
299
|
-
((normalizedAngle - 270) % 360) / anglePerItem
|
|
300
|
-
);
|
|
301
|
-
const adjustedIndex =
|
|
302
|
-
(wheelItems.length - 1 - winningIndex) % wheelItems.length;
|
|
303
|
-
|
|
304
|
-
const finalWinnerIndex =
|
|
305
|
-
adjustedIndex >= 0 ? adjustedIndex : wheelItems.length + adjustedIndex;
|
|
306
|
-
|
|
307
|
-
if (finalWinnerIndex >= 0 && finalWinnerIndex < wheelItems.length) {
|
|
308
|
-
const winningItem = wheelItems[finalWinnerIndex];
|
|
309
|
-
setWinner(winningItem);
|
|
310
|
-
onSpinEnd?.(winningItem);
|
|
311
|
-
} else if (wheelItems.length > 0) {
|
|
312
|
-
onSpinEnd?.(wheelItems[0]);
|
|
313
|
-
}
|
|
314
|
-
};
|
|
315
|
-
|
|
316
236
|
useEffect(() => {
|
|
317
237
|
if (!winner || !spinning) return;
|
|
318
238
|
|