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/module/app.js CHANGED
@@ -1,127 +1,69 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState } from "react";
4
- import { Ionicons } from "@expo/vector-icons";
5
- import { useTheme } from "./theme/index.js";
6
- import RedeemedVoucherSheet from "./components/RedeemedVoucher/RedeemedVoucherSheet.js";
7
- import { GestureHandlerRootView } from "react-native-gesture-handler";
8
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
9
- const MyScreen = () => {
10
- const [isFilterVisible, setIsFilterVisible] = useState(false);
11
- const {
12
- theme
13
- } = useTheme();
14
- const handleApplyFilters = result => {
15
- console.log("Filters applied:", result);
16
- // Process filter results...
17
- };
18
- const rewardsData = [{
19
- icon: /*#__PURE__*/_jsx(Ionicons, {
20
- name: "briefcase-outline",
21
- size: 30,
22
- color: theme.primary
23
- }),
24
- activeIcon: /*#__PURE__*/_jsx(Ionicons, {
25
- name: "briefcase-outline",
26
- size: 30,
27
- color: theme.onPrimary
28
- }),
29
- title: "Aqua Guardian",
30
- description: "Maintain water usage below the community average for a month.",
31
- isActive: false,
32
- status: "0/1",
33
- statusBackgroundColor: "#FFCDD2",
34
- statusTextColor: "#D32F2F"
35
- }, {
36
- icon: /*#__PURE__*/_jsx(Ionicons, {
37
- name: "heart-outline",
38
- size: 30,
39
- color: theme.primary
40
- }),
41
- activeIcon: /*#__PURE__*/_jsx(Ionicons, {
42
- name: "heart-outline",
43
- size: 30,
44
- color: theme.onPrimary
45
- }),
46
- title: "Wellness Warrior",
47
- description: "Complete 30 days of healthy hydration tracking.",
48
- isActive: true,
49
- status: "15/30",
50
- statusBackgroundColor: "#C8E6C9",
51
- statusTextColor: "#388E3C"
52
- }, {
53
- icon: /*#__PURE__*/_jsx(Ionicons, {
54
- name: "airplane-outline",
55
- size: 24,
56
- color: theme.helper
57
- }),
58
- activeIcon: /*#__PURE__*/_jsx(Ionicons, {
59
- name: "airplane-outline",
60
- size: 24,
61
- color: theme.primary
62
- }),
63
- title: "Eco Traveler",
64
- description: "Log 5 trips where you chose sustainable travel options.",
65
- isActive: false,
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 MyScreen;
68
+ export default MockWheelScreen;
127
69
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Ionicons","useTheme","RedeemedVoucherSheet","GestureHandlerRootView","jsx","_jsx","Fragment","_Fragment","MyScreen","isFilterVisible","setIsFilterVisible","theme","handleApplyFilters","result","console","log","rewardsData","icon","name","size","color","primary","activeIcon","onPrimary","title","description","isActive","status","statusBackgroundColor","statusTextColor","helper","disabled","text","background","children","visible","onClose","code","expiry","currency","onMyVouchersButtonPress","onCopyCode"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":"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","ignoreList":[]}
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
- const colors = ["#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"];
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
- wheelTextColor = "#FFFFFF",
24
- winner
75
+ wheelBorderColor,
76
+ wheelTextColor = "#FFFFFF"
25
77
  }) => {
26
78
  const wheelItems = items.length > 0 ? items : [];
27
79
  const [spinning, setSpinning] = useState(false);
28
- const [internalWinner, setInternalWinner] = useState(null);
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
- // Generate wheel paths and text positions
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
- // Helper: get index of a SpinWheelItem
71
- const getItemIndex = target => wheelItems.findIndex(item => item.id === target.id);
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
- // The pointer is at 270deg (top), so we want the winner to land there.
79
- // The center of the segment is at: (index + 0.5) * anglePerItem
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
- // Add extra spins for effect
83
- const extraSpins = 3;
84
- const currentRotation = rotationRef.current * 360;
85
- const targetRotation = currentRotation + extraSpins * 360 + winnerAngle;
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
- // If winner prop changes, spin to it
99
- useEffect(() => {
100
- if (!winner || spinning) return;
101
- const winnerIndex = getItemIndex(winner);
102
- if (winnerIndex === -1) return;
103
- spinToIndex(winnerIndex, winner);
104
- // eslint-disable-next-line react-hooks/exhaustive-deps
105
- }, [winner]);
106
-
107
- // Handle random spin (if no winner is set)
108
- const handleSpin = () => {
109
- if (spinning || !enabled) return;
110
- // If winner prop is set, ignore button (or you can allow override)
111
- if (winner) return;
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) => /*#__PURE__*/_jsxs(React.Fragment, {
152
- children: [/*#__PURE__*/_jsx(Path, {
153
- d: path,
154
- fill: !item.color ? colors[index % colors.length] : item.color,
155
- stroke: "#000000",
156
- strokeWidth: 1
157
- }), /*#__PURE__*/_jsx(SvgText, {
158
- x: textX,
159
- y: textY,
160
- fill: item.textColor || wheelTextColor,
161
- fontSize: wheelTextStyle?.fontSize || 14,
162
- fontWeight: wheelTextStyle?.fontWeight || "bold",
163
- textAnchor: "middle",
164
- alignmentBaseline: "central",
165
- transform: `rotate(${angle + 180}, ${textX}, ${textY})`,
166
- children: item.label
167
- })]
168
- }, item.id))
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 || !!winner,
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":[]}
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
 
3
- // import { registerRootComponent } from 'expo';
4
- // import "react-native-reanimated";
5
-
6
- // import App from "./app";
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
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;AAAA;AACA;;AAGA;;AAEA;;AAEA,cAAc,kBAAS;AACvB,cAAc,uBAAc","ignoreList":[]}
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,4 +1,4 @@
1
1
  import React from "react";
2
- declare const MyScreen: () => React.JSX.Element;
3
- export default MyScreen;
2
+ declare const MockWheelScreen: () => React.JSX.Element;
3
+ export default MockWheelScreen;
4
4
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AASxC,QAAA,MAAM,QAAQ,yBAiGb,CAAC;AAEF,eAAe,QAAQ,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;AASD,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,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC/B;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqOvC,CAAC;AAsDF,eAAe,SAAS,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;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"}