related-ui-components 1.8.5 → 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 +193 -178
- 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 +194 -180
- 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 +233 -220
- package/src/index.ts +4 -4
|
@@ -1,14 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState, useRef, useEffect
|
|
4
|
-
} from "react";
|
|
3
|
+
import React, { useState, useRef, useEffect } from "react";
|
|
5
4
|
import { View, StyleSheet, Animated, Text, TouchableOpacity, Easing } from "react-native";
|
|
6
5
|
import { Svg, Path, G, Text as SvgText } from "react-native-svg";
|
|
7
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
//
|
|
9
|
-
const
|
|
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
|
+
];
|
|
10
58
|
const SpinWheel = ({
|
|
11
59
|
items,
|
|
60
|
+
predeterminedWinner,
|
|
61
|
+
// Destructure new prop
|
|
12
62
|
size = 300,
|
|
13
63
|
spinDuration = 5000,
|
|
14
64
|
enabled = true,
|
|
@@ -22,28 +72,34 @@ const SpinWheel = ({
|
|
|
22
72
|
knobColor = "#D81E5B",
|
|
23
73
|
actionButtonStyle,
|
|
24
74
|
actionButtonTextStyle,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
predeterminedWinnerId = null // Default to null
|
|
75
|
+
wheelBorderColor,
|
|
76
|
+
wheelTextColor = "#FFFFFF"
|
|
28
77
|
}) => {
|
|
29
|
-
const wheelItems =
|
|
78
|
+
const wheelItems = items.length > 0 ? items : [];
|
|
30
79
|
const [spinning, setSpinning] = useState(false);
|
|
31
|
-
const [
|
|
80
|
+
const [_, setWinner] = useState(null);
|
|
32
81
|
const rotateValue = useRef(new Animated.Value(0)).current;
|
|
33
|
-
const rotationRef = useRef(0); // Tracks cumulative rotation in "number of turns"
|
|
34
82
|
|
|
83
|
+
// Track rotation manually for calculations
|
|
84
|
+
const rotationRef = useRef(0);
|
|
85
|
+
|
|
86
|
+
// Update tracked rotation when animation completes
|
|
35
87
|
useEffect(() => {
|
|
36
|
-
const
|
|
88
|
+
const listener = rotateValue.addListener(({
|
|
37
89
|
value
|
|
38
90
|
}) => {
|
|
39
91
|
rotationRef.current = value;
|
|
40
92
|
});
|
|
41
93
|
return () => {
|
|
42
|
-
rotateValue.removeListener(
|
|
94
|
+
rotateValue.removeListener(listener);
|
|
43
95
|
};
|
|
44
96
|
}, [rotateValue]);
|
|
97
|
+
|
|
98
|
+
// Calculate angle for each segment
|
|
45
99
|
const anglePerItem = wheelItems.length > 0 ? 360 / wheelItems.length : 0;
|
|
46
|
-
|
|
100
|
+
|
|
101
|
+
// Create wheel segments
|
|
102
|
+
const generateWheelPaths = () => {
|
|
47
103
|
if (wheelItems.length === 0) return [];
|
|
48
104
|
return wheelItems.map((item, index) => {
|
|
49
105
|
const startAngle = index * anglePerItem;
|
|
@@ -54,125 +110,97 @@ const SpinWheel = ({
|
|
|
54
110
|
const y1 = size / 2 + size / 2 * Math.sin(startRad);
|
|
55
111
|
const x2 = size / 2 + size / 2 * Math.cos(endRad);
|
|
56
112
|
const y2 = size / 2 + size / 2 * Math.sin(endRad);
|
|
57
|
-
const largeArcFlag =
|
|
113
|
+
const largeArcFlag = endAngle - startAngle <= 180 ? "0" : "1";
|
|
58
114
|
const pathData = [`M ${size / 2} ${size / 2}`, `L ${x1} ${y1}`, `A ${size / 2} ${size / 2} 0 ${largeArcFlag} 1 ${x2} ${y2}`, "Z"].join(" ");
|
|
59
|
-
const
|
|
60
|
-
const midRad = midAngle * Math.PI / 180;
|
|
115
|
+
const midRad = (startAngle + endAngle) / 2 * (Math.PI / 180);
|
|
61
116
|
const textX = size / 2 + size * 0.32 * Math.cos(midRad);
|
|
62
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
|
+
|
|
63
123
|
return {
|
|
64
124
|
path: pathData,
|
|
65
125
|
item,
|
|
66
126
|
textX,
|
|
67
127
|
textY,
|
|
68
|
-
|
|
69
|
-
|
|
128
|
+
// decorationX,
|
|
129
|
+
// decorationY,
|
|
130
|
+
angle: (startAngle + endAngle) / 2
|
|
70
131
|
};
|
|
71
132
|
});
|
|
72
|
-
}
|
|
133
|
+
};
|
|
134
|
+
const wheelPaths = generateWheelPaths();
|
|
135
|
+
|
|
136
|
+
// Handle spin button press
|
|
73
137
|
const handleSpin = () => {
|
|
74
|
-
if (spinning || !enabled || wheelItems.length === 0
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
138
|
+
if (spinning || !enabled || wheelItems.length === 0) return;
|
|
77
139
|
setSpinning(true);
|
|
78
140
|
onSpinStart?.();
|
|
79
|
-
let
|
|
80
|
-
let
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
}
|
|
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);
|
|
90
146
|
}
|
|
91
|
-
if (
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const targetSegmentMidAngle_deg = (winnerIndex + 0.5) * anglePerItem;
|
|
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;
|
|
97
152
|
|
|
98
|
-
//
|
|
99
|
-
|
|
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
|
|
153
|
+
// Additional angle needed to reach the targetNormalizedAngle from currentNormalizedAngle
|
|
154
|
+
const angleOffset = (targetNormalizedAngle - currentNormalizedAngle + 360) % 360;
|
|
105
155
|
|
|
106
|
-
|
|
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;
|
|
107
159
|
|
|
108
|
-
//
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
targetAnimationToValue = rotationRef.current + totalAdditionalRotation_deg / 360;
|
|
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
|
+
}
|
|
113
164
|
} else {
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
const totalRandomRotation_deg = 360 * randomSpins + randomAngleOffset;
|
|
118
|
-
targetAnimationToValue = rotationRef.current + totalRandomRotation_deg / 360;
|
|
165
|
+
const randomSpins = 3 + Math.random() * 2;
|
|
166
|
+
const randomAngle = Math.random() * 360;
|
|
167
|
+
targetRotation = 360 * randomSpins + randomAngle;
|
|
119
168
|
}
|
|
120
169
|
Animated.timing(rotateValue, {
|
|
121
|
-
toValue:
|
|
170
|
+
toValue: rotationRef.current + targetRotation / 360,
|
|
122
171
|
duration: spinDuration,
|
|
123
172
|
easing: Easing.out(Easing.cubic),
|
|
124
173
|
useNativeDriver: true
|
|
125
|
-
}).start(() =>
|
|
126
|
-
|
|
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
|
|
134
|
-
|
|
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
|
|
174
|
+
}).start(() => handleSpinEnd());
|
|
175
|
+
};
|
|
137
176
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
});
|
|
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
|
+
}
|
|
153
191
|
};
|
|
154
|
-
|
|
192
|
+
|
|
193
|
+
// Animation interpolation for rotation
|
|
194
|
+
const rotate = rotateValue.interpolate({
|
|
155
195
|
inputRange: [0, 1],
|
|
156
196
|
outputRange: ["0deg", "360deg"]
|
|
157
197
|
});
|
|
158
|
-
|
|
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, {
|
|
198
|
+
return /*#__PURE__*/_jsx(View, {
|
|
169
199
|
style: [styles.container, containerStyle],
|
|
170
|
-
children:
|
|
200
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
171
201
|
style: {
|
|
172
202
|
width: size,
|
|
173
|
-
height: size
|
|
174
|
-
alignItems: 'center',
|
|
175
|
-
justifyContent: 'center'
|
|
203
|
+
height: size
|
|
176
204
|
},
|
|
177
205
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
178
206
|
style: [styles.wheelContainer, {
|
|
@@ -180,7 +208,7 @@ const SpinWheel = ({
|
|
|
180
208
|
height: size,
|
|
181
209
|
borderRadius: size / 2,
|
|
182
210
|
transform: [{
|
|
183
|
-
rotate
|
|
211
|
+
rotate
|
|
184
212
|
}]
|
|
185
213
|
}],
|
|
186
214
|
children: /*#__PURE__*/_jsx(Svg, {
|
|
@@ -193,98 +221,98 @@ const SpinWheel = ({
|
|
|
193
221
|
item,
|
|
194
222
|
textX,
|
|
195
223
|
textY,
|
|
196
|
-
angle
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}, item.id))
|
|
224
|
+
angle
|
|
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
|
+
})
|
|
218
245
|
})
|
|
219
246
|
})
|
|
220
|
-
}),
|
|
221
|
-
style: styles.centerComponentWrapper,
|
|
222
|
-
children: centerComponent
|
|
223
|
-
}) : /*#__PURE__*/_jsx(View, {
|
|
247
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
224
248
|
style: [styles.wheelCenter, {
|
|
225
249
|
width: size / 5,
|
|
226
250
|
height: size / 5,
|
|
227
|
-
|
|
228
|
-
|
|
251
|
+
transform: [{
|
|
252
|
+
translateX: -size / 10
|
|
253
|
+
}, {
|
|
254
|
+
translateY: -size / 10
|
|
255
|
+
}],
|
|
256
|
+
borderRadius: size / 5 // Should be (size / 5) / 2 for a circle
|
|
229
257
|
}, centerStyle]
|
|
230
258
|
}), /*#__PURE__*/_jsx(View, {
|
|
231
|
-
style: styles.
|
|
259
|
+
style: styles.pointerPosition,
|
|
232
260
|
children: /*#__PURE__*/_jsx(View, {
|
|
233
261
|
style: [styles.pointer, {
|
|
234
262
|
borderBottomColor: knobColor
|
|
235
263
|
}, knobStyle]
|
|
236
264
|
})
|
|
265
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
266
|
+
style: {
|
|
267
|
+
position: "absolute",
|
|
268
|
+
width: "100%",
|
|
269
|
+
alignItems: "center",
|
|
270
|
+
justifyContent: "center",
|
|
271
|
+
bottom: -70,
|
|
272
|
+
zIndex: 2
|
|
273
|
+
},
|
|
274
|
+
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
275
|
+
onPress: handleSpin,
|
|
276
|
+
disabled: spinning || !enabled || wheelItems.length === 0,
|
|
277
|
+
style: [styles.actionButton, actionButtonStyle],
|
|
278
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
279
|
+
style: [styles.actionButtonText, actionButtonTextStyle],
|
|
280
|
+
children: spinButtonText
|
|
281
|
+
})
|
|
282
|
+
})
|
|
237
283
|
})]
|
|
238
|
-
})
|
|
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
|
-
})]
|
|
284
|
+
})
|
|
247
285
|
});
|
|
248
286
|
};
|
|
249
287
|
const styles = StyleSheet.create({
|
|
250
288
|
container: {
|
|
251
289
|
alignItems: "center",
|
|
252
290
|
justifyContent: "center",
|
|
253
|
-
|
|
291
|
+
marginTop: 20,
|
|
292
|
+
marginBottom: 70 // Space for the button
|
|
254
293
|
},
|
|
255
294
|
wheelContainer: {
|
|
256
295
|
overflow: "hidden",
|
|
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
|
|
296
|
+
backgroundColor: "transparent"
|
|
266
297
|
},
|
|
267
298
|
wheelCenter: {
|
|
268
|
-
// Default center circle
|
|
269
299
|
position: "absolute",
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
zIndex:
|
|
300
|
+
top: "50%",
|
|
301
|
+
left: "50%",
|
|
302
|
+
backgroundColor: "#000000",
|
|
303
|
+
borderWidth: 1,
|
|
304
|
+
borderColor: "#333333",
|
|
305
|
+
zIndex: 1
|
|
276
306
|
},
|
|
277
|
-
|
|
278
|
-
// Position the pointer correctly at the top center
|
|
307
|
+
pointerPosition: {
|
|
279
308
|
position: "absolute",
|
|
280
|
-
top: -5,
|
|
281
|
-
// Adjust to make pointer sit nicely on the edge
|
|
282
309
|
left: "50%",
|
|
283
310
|
transform: [{
|
|
284
311
|
translateX: -10
|
|
312
|
+
}, {
|
|
313
|
+
rotate: "180deg"
|
|
285
314
|
}],
|
|
286
|
-
|
|
287
|
-
zIndex: 3 // Above everything else on the wheel
|
|
315
|
+
zIndex: 2
|
|
288
316
|
},
|
|
289
317
|
pointer: {
|
|
290
318
|
width: 0,
|
|
@@ -292,34 +320,20 @@ const styles = StyleSheet.create({
|
|
|
292
320
|
backgroundColor: "transparent",
|
|
293
321
|
borderStyle: "solid",
|
|
294
322
|
borderLeftWidth: 10,
|
|
295
|
-
// Base of triangle
|
|
296
323
|
borderRightWidth: 10,
|
|
297
|
-
|
|
298
|
-
borderBottomWidth: 20,
|
|
299
|
-
// Height of triangle
|
|
324
|
+
borderBottomWidth: 15,
|
|
300
325
|
borderLeftColor: "transparent",
|
|
301
326
|
borderRightColor: "transparent"
|
|
302
|
-
// borderBottomColor is set by knobColor prop
|
|
303
327
|
},
|
|
304
328
|
actionButton: {
|
|
305
|
-
marginTop: 30,
|
|
306
|
-
// Space between wheel and button
|
|
307
329
|
paddingHorizontal: 30,
|
|
308
330
|
paddingVertical: 12,
|
|
309
331
|
borderRadius: 25,
|
|
310
|
-
backgroundColor: "#4CAF50",
|
|
311
|
-
// Example button color
|
|
312
332
|
shadowColor: "#000",
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
height: 2
|
|
316
|
-
},
|
|
317
|
-
shadowOpacity: 0.25,
|
|
318
|
-
shadowRadius: 3.84,
|
|
319
|
-
elevation: 5
|
|
333
|
+
shadowRadius: 3,
|
|
334
|
+
backgroundColor: "grey"
|
|
320
335
|
},
|
|
321
336
|
actionButtonText: {
|
|
322
|
-
color: "#FFFFFF",
|
|
323
337
|
fontWeight: "bold",
|
|
324
338
|
fontSize: 16
|
|
325
339
|
}
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
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
|
-
predeterminedWinnerId?: string | number | 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,
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,CAAC;AAOjC,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAC"}
|