related-ui-components 3.2.3 → 3.2.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/module/components/ScratchCard/ScratchCard.js +75 -75
- package/lib/module/components/ScratchCard/ScratchCard.js.map +1 -1
- package/lib/module/components/Wheel/Wheel.js +17 -2
- package/lib/module/components/Wheel/Wheel.js.map +1 -1
- package/lib/typescript/src/components/ScratchCard/ScratchCard.d.ts.map +1 -1
- package/lib/typescript/src/components/Wheel/Wheel.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ScratchCard/ScratchCard.tsx +79 -91
- package/src/components/Wheel/Wheel.tsx +33 -14
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useState, useEffect, useCallback
|
|
4
|
-
|
|
3
|
+
import React, { useState, useEffect, useCallback // Import useCallback
|
|
4
|
+
} from "react";
|
|
5
|
+
import { Canvas, Group, Image, Mask, Path, Rect, Skia, useImage, Text, useFont, notifyChange
|
|
6
|
+
// Import SkPath type
|
|
7
|
+
// Import SkFont type
|
|
8
|
+
,
|
|
9
|
+
// Import SkImage type
|
|
10
|
+
LinearGradient } from "@shopify/react-native-skia";
|
|
5
11
|
import { View, StyleSheet } from "react-native";
|
|
6
12
|
import { runOnJS, useSharedValue } from "react-native-reanimated";
|
|
7
13
|
import { Gesture, GestureDetector, GestureHandlerRootView } from "react-native-gesture-handler";
|
|
@@ -103,46 +109,6 @@ const ScratchCard = ({
|
|
|
103
109
|
return null;
|
|
104
110
|
}, [loadedFont, text, areaWidth, areaHeight]);
|
|
105
111
|
const canRenderCanvas = isLayoutReady && areaWidth > 0 && areaHeight > 0;
|
|
106
|
-
const renderScratchContent = () => {
|
|
107
|
-
return /*#__PURE__*/_jsxs(Group, {
|
|
108
|
-
children: [gradient ? /*#__PURE__*/_jsx(Rect, {
|
|
109
|
-
x: 0,
|
|
110
|
-
y: 0,
|
|
111
|
-
width: areaWidth,
|
|
112
|
-
height: areaHeight,
|
|
113
|
-
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
114
|
-
start: gradient.start ?? {
|
|
115
|
-
x: 0,
|
|
116
|
-
y: 0
|
|
117
|
-
},
|
|
118
|
-
end: gradient.end ?? {
|
|
119
|
-
x: areaWidth,
|
|
120
|
-
y: areaHeight
|
|
121
|
-
},
|
|
122
|
-
colors: gradient.colors
|
|
123
|
-
})
|
|
124
|
-
}) : /*#__PURE__*/_jsx(Rect, {
|
|
125
|
-
x: 0,
|
|
126
|
-
y: 0,
|
|
127
|
-
width: areaWidth,
|
|
128
|
-
height: areaHeight,
|
|
129
|
-
color: backgroundColor
|
|
130
|
-
}), loadedImg && /*#__PURE__*/_jsx(Image, {
|
|
131
|
-
image: loadedImg,
|
|
132
|
-
fit: "contain",
|
|
133
|
-
x: 0,
|
|
134
|
-
y: 0,
|
|
135
|
-
width: areaWidth,
|
|
136
|
-
height: areaHeight
|
|
137
|
-
}), loadedFont && textMetrics && text && /*#__PURE__*/_jsx(Text, {
|
|
138
|
-
x: textMetrics.x,
|
|
139
|
-
y: textMetrics.y,
|
|
140
|
-
text: text,
|
|
141
|
-
color: textFontColor,
|
|
142
|
-
font: loadedFont
|
|
143
|
-
})]
|
|
144
|
-
});
|
|
145
|
-
};
|
|
146
112
|
return /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
147
113
|
style: {
|
|
148
114
|
justifyContent: "center",
|
|
@@ -157,32 +123,72 @@ const ScratchCard = ({
|
|
|
157
123
|
children: [canRenderCanvas && /*#__PURE__*/_jsx(View, {
|
|
158
124
|
style: styles.content,
|
|
159
125
|
children: children
|
|
160
|
-
}), !isScratched && canRenderCanvas && /*#__PURE__*/_jsx(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
126
|
+
}), !isScratched && canRenderCanvas && /*#__PURE__*/_jsx(GestureDetector, {
|
|
127
|
+
gesture: pan,
|
|
128
|
+
children: /*#__PURE__*/_jsx(Canvas, {
|
|
129
|
+
style: styles.canvas,
|
|
130
|
+
children: /*#__PURE__*/_jsx(Mask, {
|
|
131
|
+
mode: "luminance",
|
|
132
|
+
mask: /*#__PURE__*/_jsxs(Group, {
|
|
133
|
+
children: [/*#__PURE__*/_jsx(Rect, {
|
|
134
|
+
x: 0,
|
|
135
|
+
y: 0,
|
|
136
|
+
width: areaWidth,
|
|
137
|
+
height: areaHeight,
|
|
138
|
+
color: "white"
|
|
139
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
140
|
+
path: path,
|
|
141
|
+
color: "black",
|
|
142
|
+
style: "stroke",
|
|
143
|
+
strokeJoin: "round",
|
|
144
|
+
strokeCap: "round",
|
|
145
|
+
strokeWidth: brushStrokeWidth
|
|
146
|
+
})]
|
|
147
|
+
}),
|
|
148
|
+
children: loadedImg ? /*#__PURE__*/_jsx(Image, {
|
|
149
|
+
image: loadedImg,
|
|
150
|
+
fit: "cover",
|
|
151
|
+
x: 0,
|
|
152
|
+
y: 0,
|
|
153
|
+
width: areaWidth,
|
|
154
|
+
height: areaHeight
|
|
155
|
+
}) : gradient ? /*#__PURE__*/_jsxs(Group, {
|
|
156
|
+
children: [/*#__PURE__*/_jsx(LinearGradient, {
|
|
157
|
+
start: gradient.start ?? {
|
|
171
158
|
x: 0,
|
|
172
|
-
y: 0
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}),
|
|
185
|
-
|
|
159
|
+
y: 0
|
|
160
|
+
},
|
|
161
|
+
end: gradient.end ?? {
|
|
162
|
+
x: areaWidth,
|
|
163
|
+
y: areaHeight
|
|
164
|
+
},
|
|
165
|
+
colors: gradient.colors
|
|
166
|
+
}), /*#__PURE__*/_jsx(Rect, {
|
|
167
|
+
x: 0,
|
|
168
|
+
y: 0,
|
|
169
|
+
width: areaWidth,
|
|
170
|
+
height: areaHeight
|
|
171
|
+
}), loadedFont && textMetrics && text ? /*#__PURE__*/_jsx(Text, {
|
|
172
|
+
x: textMetrics.x,
|
|
173
|
+
y: textMetrics.y,
|
|
174
|
+
text: text,
|
|
175
|
+
color: textFontColor,
|
|
176
|
+
font: loadedFont
|
|
177
|
+
}) : null]
|
|
178
|
+
}) : /*#__PURE__*/_jsxs(Group, {
|
|
179
|
+
children: [/*#__PURE__*/_jsx(Rect, {
|
|
180
|
+
x: 0,
|
|
181
|
+
y: 0,
|
|
182
|
+
width: areaWidth,
|
|
183
|
+
height: areaHeight,
|
|
184
|
+
color: backgroundColor
|
|
185
|
+
}), loadedFont && textMetrics && text ? /*#__PURE__*/_jsx(Text, {
|
|
186
|
+
x: textMetrics.x,
|
|
187
|
+
y: textMetrics.y,
|
|
188
|
+
text: text,
|
|
189
|
+
color: textFontColor,
|
|
190
|
+
font: loadedFont
|
|
191
|
+
}) : null]
|
|
186
192
|
})
|
|
187
193
|
})
|
|
188
194
|
})
|
|
@@ -203,19 +209,13 @@ const styles = StyleSheet.create({
|
|
|
203
209
|
height: "100%",
|
|
204
210
|
zIndex: 1
|
|
205
211
|
},
|
|
206
|
-
|
|
212
|
+
canvas: {
|
|
207
213
|
position: "absolute",
|
|
208
214
|
top: 0,
|
|
209
215
|
left: 0,
|
|
210
216
|
width: "100%",
|
|
211
217
|
height: "100%",
|
|
212
|
-
zIndex:
|
|
213
|
-
backgroundColor: "transparent"
|
|
214
|
-
},
|
|
215
|
-
canvas: {
|
|
216
|
-
flex: 1,
|
|
217
|
-
width: "100%",
|
|
218
|
-
height: "100%"
|
|
218
|
+
zIndex: 2
|
|
219
219
|
}
|
|
220
220
|
});
|
|
221
221
|
export default ScratchCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useEffect","useCallback","Canvas","Group","Image","Mask","Path","Rect","Skia","useImage","Text","useFont","notifyChange","LinearGradient","View","StyleSheet","runOnJS","useSharedValue","Gesture","GestureDetector","GestureHandlerRootView","jsx","_jsx","jsxs","_jsxs","ScratchCard","style","children","image","brushStrokeWidth","revealThreshold","width","height","backgroundColor","text","textFont","textFontColor","textFontSize","onScratched","gradient","loadedImg","loadedFont","areaWidth","areaHeight","setSize","isScratched","setScratched","isLayoutReady","setLayoutReady","isThresholdReached","path","Make","value","handleLayout","event","newWidth","newHeight","nativeEvent","layout","revealCardOnJS","pan","Pan","averageTouches","maxPointers","onBegin","e","newPath","copy","moveTo","x","y","lineTo","error","console","onChange","bounds","getBounds","scratchedArea","totalArea","textMetrics","useMemo","metrics","measureText","textX","textY","canRenderCanvas","
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useCallback","Canvas","Group","Image","Mask","Path","Rect","Skia","useImage","Text","useFont","notifyChange","LinearGradient","View","StyleSheet","runOnJS","useSharedValue","Gesture","GestureDetector","GestureHandlerRootView","jsx","_jsx","jsxs","_jsxs","ScratchCard","style","children","image","brushStrokeWidth","revealThreshold","width","height","backgroundColor","text","textFont","textFontColor","textFontSize","onScratched","gradient","loadedImg","loadedFont","areaWidth","areaHeight","setSize","isScratched","setScratched","isLayoutReady","setLayoutReady","isThresholdReached","path","Make","value","handleLayout","event","newWidth","newHeight","nativeEvent","layout","revealCardOnJS","pan","Pan","averageTouches","maxPointers","onBegin","e","newPath","copy","moveTo","x","y","lineTo","error","console","onChange","bounds","getBounds","scratchedArea","totalArea","textMetrics","useMemo","metrics","measureText","textX","textY","canRenderCanvas","justifyContent","alignContent","onLayout","styles","container","content","gesture","canvas","mode","mask","color","strokeJoin","strokeCap","strokeWidth","fit","start","end","colors","font","create","position","overflow","top","left","zIndex"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/ScratchCard/ScratchCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -77,7 +77,8 @@ const SpinWheel = ({
|
|
|
77
77
|
wheelBorderWidth,
|
|
78
78
|
wheelTextColor = "#FFFFFF",
|
|
79
79
|
actionButtonProps,
|
|
80
|
-
centerSize
|
|
80
|
+
centerSize,
|
|
81
|
+
centerComponent
|
|
81
82
|
}) => {
|
|
82
83
|
const wheelItems = items.length > 0 ? items : [];
|
|
83
84
|
const [spinning, setSpinning] = useState(false);
|
|
@@ -256,7 +257,21 @@ const SpinWheel = ({
|
|
|
256
257
|
fill: "none"
|
|
257
258
|
})]
|
|
258
259
|
})
|
|
259
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
260
|
+
}), centerComponent ? /*#__PURE__*/_jsx(View, {
|
|
261
|
+
style: {
|
|
262
|
+
position: "absolute",
|
|
263
|
+
top: "50%",
|
|
264
|
+
left: "50%",
|
|
265
|
+
// Center the component perfectly
|
|
266
|
+
transform: [{
|
|
267
|
+
translateX: -(actualCenterSize / 2)
|
|
268
|
+
}, {
|
|
269
|
+
translateY: -(actualCenterSize / 2)
|
|
270
|
+
}],
|
|
271
|
+
zIndex: 1
|
|
272
|
+
},
|
|
273
|
+
children: centerComponent
|
|
274
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
260
275
|
style: [styles.wheelCenter, {
|
|
261
276
|
width: actualCenterSize,
|
|
262
277
|
height: actualCenterSize,
|
|
@@ -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","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelBorderColor","wheelBorderWidth","wheelTextColor","actionButtonProps","centerSize","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","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","wheelCenter","translateX","translateY","pointerPosition","top","pointer","borderBottomColor","position","alignItems","justifyContent","bottom","zIndex","actionButton","onPress","title","disabled","textStyle","actionButtonText","create","marginTop","marginBottom","overflow","backgroundColor","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","Easing","Svg","Path","G","Text","SvgText","Circle","Button","jsx","_jsx","jsxs","_jsxs","colors","SpinWheel","items","predeterminedWinner","size","spinDuration","enabled","onSpinStart","onSpinEnd","containerStyle","centerStyle","spinButtonText","wheelTextStyle","knobStyle","knobColor","actionButtonStyle","actionButtonTextStyle","wheelBorderColor","wheelBorderWidth","wheelTextColor","actionButtonProps","centerSize","centerComponent","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","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScratchCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScratchCard/ScratchCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAkBf,OAAO,EACL,SAAS,EAET,SAAS,EAET,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAQtB,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,GAAG,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ScratchCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScratchCard/ScratchCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAkBf,OAAO,EACL,SAAS,EAET,SAAS,EAET,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAQtB,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,GAAG,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6M3C,CAAC;AAyBF,eAAe,WAAW,CAAC"}
|
|
@@ -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;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,CAAA;IACjC,iBAAiB,CAAC,EAAE,OAAO,CACvB,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAC5C,CAAC;IAEF,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;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,CAAA;IACjC,iBAAiB,CAAC,EAAE,OAAO,CACvB,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,CAC5C,CAAC;IAEF,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,CAkUvC,CAAC;AAqDF,eAAe,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@ import React, {
|
|
|
2
2
|
useRef,
|
|
3
3
|
useState,
|
|
4
4
|
useEffect,
|
|
5
|
-
useCallback,
|
|
5
|
+
useCallback, // Import useCallback
|
|
6
6
|
} from "react";
|
|
7
7
|
import {
|
|
8
8
|
Canvas,
|
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
Text,
|
|
17
17
|
useFont,
|
|
18
18
|
notifyChange,
|
|
19
|
-
SkPath,
|
|
20
|
-
SkFont,
|
|
21
|
-
SkImage,
|
|
19
|
+
SkPath, // Import SkPath type
|
|
20
|
+
SkFont, // Import SkFont type
|
|
21
|
+
SkImage, // Import SkImage type
|
|
22
22
|
LinearGradient,
|
|
23
23
|
} from "@shopify/react-native-skia";
|
|
24
24
|
import {
|
|
@@ -41,7 +41,7 @@ type ScratchCardProps = {
|
|
|
41
41
|
image?: ImageRequireSource;
|
|
42
42
|
children?: React.ReactNode;
|
|
43
43
|
brushStrokeWidth?: number;
|
|
44
|
-
revealThreshold?: number;
|
|
44
|
+
revealThreshold?: number; // Percentage (0 to 1) - Based on bounding box
|
|
45
45
|
width?: number;
|
|
46
46
|
height?: number;
|
|
47
47
|
backgroundColor?: string;
|
|
@@ -173,54 +173,6 @@ const ScratchCard: React.FC<ScratchCardProps> = ({
|
|
|
173
173
|
|
|
174
174
|
const canRenderCanvas = isLayoutReady && areaWidth > 0 && areaHeight > 0;
|
|
175
175
|
|
|
176
|
-
const renderScratchContent = () => {
|
|
177
|
-
return (
|
|
178
|
-
<Group>
|
|
179
|
-
{/* Background layer */}
|
|
180
|
-
{gradient ? (
|
|
181
|
-
<Rect x={0} y={0} width={areaWidth} height={areaHeight}>
|
|
182
|
-
<LinearGradient
|
|
183
|
-
start={gradient.start ?? { x: 0, y: 0 }}
|
|
184
|
-
end={gradient.end ?? { x: areaWidth, y: areaHeight }}
|
|
185
|
-
colors={gradient.colors}
|
|
186
|
-
/>
|
|
187
|
-
</Rect>
|
|
188
|
-
) : (
|
|
189
|
-
<Rect
|
|
190
|
-
x={0}
|
|
191
|
-
y={0}
|
|
192
|
-
width={areaWidth}
|
|
193
|
-
height={areaHeight}
|
|
194
|
-
color={backgroundColor}
|
|
195
|
-
/>
|
|
196
|
-
)}
|
|
197
|
-
|
|
198
|
-
{/* Image layer */}
|
|
199
|
-
{loadedImg && (
|
|
200
|
-
<Image
|
|
201
|
-
image={loadedImg}
|
|
202
|
-
fit="contain"
|
|
203
|
-
x={0}
|
|
204
|
-
y={0}
|
|
205
|
-
width={areaWidth}
|
|
206
|
-
height={areaHeight}
|
|
207
|
-
/>
|
|
208
|
-
)}
|
|
209
|
-
|
|
210
|
-
{/* Text layer */}
|
|
211
|
-
{loadedFont && textMetrics && text && (
|
|
212
|
-
<Text
|
|
213
|
-
x={textMetrics.x}
|
|
214
|
-
y={textMetrics.y}
|
|
215
|
-
text={text}
|
|
216
|
-
color={textFontColor}
|
|
217
|
-
font={loadedFont}
|
|
218
|
-
/>
|
|
219
|
-
)}
|
|
220
|
-
</Group>
|
|
221
|
-
);
|
|
222
|
-
};
|
|
223
|
-
|
|
224
176
|
return (
|
|
225
177
|
<GestureHandlerRootView
|
|
226
178
|
style={{ justifyContent: "center", alignContent: "center" }}
|
|
@@ -229,41 +181,83 @@ const ScratchCard: React.FC<ScratchCardProps> = ({
|
|
|
229
181
|
onLayout={handleLayout}
|
|
230
182
|
style={[styles.container, style, { width, height }]}
|
|
231
183
|
>
|
|
232
|
-
{/* Prize content */}
|
|
233
184
|
{canRenderCanvas && <View style={styles.content}>{children}</View>}
|
|
234
185
|
|
|
235
|
-
{/* Scratch overlay with opaque background */}
|
|
236
186
|
{!isScratched && canRenderCanvas && (
|
|
237
|
-
<
|
|
238
|
-
<
|
|
239
|
-
<
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
<
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
187
|
+
<GestureDetector gesture={pan}>
|
|
188
|
+
<Canvas style={styles.canvas}>
|
|
189
|
+
<Mask
|
|
190
|
+
mode="luminance"
|
|
191
|
+
mask={
|
|
192
|
+
<Group>
|
|
193
|
+
<Rect
|
|
194
|
+
x={0}
|
|
195
|
+
y={0}
|
|
196
|
+
width={areaWidth}
|
|
197
|
+
height={areaHeight}
|
|
198
|
+
color="white"
|
|
199
|
+
/>
|
|
200
|
+
<Path
|
|
201
|
+
path={path}
|
|
202
|
+
color="black"
|
|
203
|
+
style="stroke"
|
|
204
|
+
strokeJoin="round"
|
|
205
|
+
strokeCap="round"
|
|
206
|
+
strokeWidth={brushStrokeWidth}
|
|
207
|
+
/>
|
|
208
|
+
</Group>
|
|
209
|
+
}
|
|
210
|
+
>
|
|
211
|
+
{loadedImg ? (
|
|
212
|
+
<Image
|
|
213
|
+
image={loadedImg}
|
|
214
|
+
fit="cover"
|
|
215
|
+
x={0}
|
|
216
|
+
y={0}
|
|
217
|
+
width={areaWidth}
|
|
218
|
+
height={areaHeight}
|
|
219
|
+
/>
|
|
220
|
+
) : gradient ? (
|
|
221
|
+
<Group>
|
|
222
|
+
<LinearGradient
|
|
223
|
+
start={gradient.start ?? { x: 0, y: 0 }}
|
|
224
|
+
end={gradient.end ?? { x: areaWidth, y: areaHeight }}
|
|
225
|
+
colors={gradient.colors}
|
|
226
|
+
></LinearGradient>
|
|
227
|
+
<Rect x={0} y={0} width={areaWidth} height={areaHeight} />
|
|
228
|
+
{loadedFont && textMetrics && text ? (
|
|
229
|
+
<Text
|
|
230
|
+
x={textMetrics.x}
|
|
231
|
+
y={textMetrics.y}
|
|
232
|
+
text={text}
|
|
233
|
+
color={textFontColor}
|
|
234
|
+
font={loadedFont}
|
|
250
235
|
/>
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
236
|
+
) : null}
|
|
237
|
+
</Group>
|
|
238
|
+
) : (
|
|
239
|
+
<Group>
|
|
240
|
+
<Rect
|
|
241
|
+
x={0}
|
|
242
|
+
y={0}
|
|
243
|
+
width={areaWidth}
|
|
244
|
+
height={areaHeight}
|
|
245
|
+
color={backgroundColor}
|
|
246
|
+
/>
|
|
247
|
+
{loadedFont && textMetrics && text ? (
|
|
248
|
+
<Text
|
|
249
|
+
x={textMetrics.x}
|
|
250
|
+
y={textMetrics.y}
|
|
251
|
+
text={text}
|
|
252
|
+
color={textFontColor}
|
|
253
|
+
font={loadedFont}
|
|
258
254
|
/>
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
</GestureDetector>
|
|
266
|
-
</View>
|
|
255
|
+
) : null}
|
|
256
|
+
</Group>
|
|
257
|
+
)}
|
|
258
|
+
</Mask>
|
|
259
|
+
</Canvas>
|
|
260
|
+
</GestureDetector>
|
|
267
261
|
)}
|
|
268
262
|
</View>
|
|
269
263
|
</GestureHandlerRootView>
|
|
@@ -283,19 +277,13 @@ const styles = StyleSheet.create({
|
|
|
283
277
|
height: "100%",
|
|
284
278
|
zIndex: 1,
|
|
285
279
|
},
|
|
286
|
-
|
|
280
|
+
canvas: {
|
|
287
281
|
position: "absolute",
|
|
288
282
|
top: 0,
|
|
289
283
|
left: 0,
|
|
290
284
|
width: "100%",
|
|
291
285
|
height: "100%",
|
|
292
|
-
zIndex:
|
|
293
|
-
backgroundColor: "transparent",
|
|
294
|
-
},
|
|
295
|
-
canvas: {
|
|
296
|
-
flex: 1,
|
|
297
|
-
width: "100%",
|
|
298
|
-
height: "100%",
|
|
286
|
+
zIndex: 2,
|
|
299
287
|
},
|
|
300
288
|
});
|
|
301
289
|
|
|
@@ -108,7 +108,8 @@ const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
|
108
108
|
wheelBorderWidth,
|
|
109
109
|
wheelTextColor = "#FFFFFF",
|
|
110
110
|
actionButtonProps,
|
|
111
|
-
centerSize
|
|
111
|
+
centerSize,
|
|
112
|
+
centerComponent
|
|
112
113
|
}) => {
|
|
113
114
|
const wheelItems = items.length > 0 ? items : [];
|
|
114
115
|
|
|
@@ -327,21 +328,39 @@ const SpinWheel: React.FC<SpinWheelProps> = ({
|
|
|
327
328
|
</Animated.View>
|
|
328
329
|
|
|
329
330
|
{/* The center circle */}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
331
|
+
{centerComponent ? (
|
|
332
|
+
<View
|
|
333
|
+
style={{
|
|
334
|
+
position: "absolute",
|
|
335
|
+
top: "50%",
|
|
336
|
+
left: "50%",
|
|
337
|
+
// Center the component perfectly
|
|
337
338
|
transform: [
|
|
338
|
-
{ translateX: -actualCenterSize / 2 },
|
|
339
|
-
{ translateY: -actualCenterSize / 2 },
|
|
339
|
+
{ translateX: -(actualCenterSize / 2) },
|
|
340
|
+
{ translateY: -(actualCenterSize / 2) },
|
|
340
341
|
],
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
342
|
+
zIndex: 1,
|
|
343
|
+
}}
|
|
344
|
+
>
|
|
345
|
+
{centerComponent}
|
|
346
|
+
</View>
|
|
347
|
+
) : (
|
|
348
|
+
<View
|
|
349
|
+
style={[
|
|
350
|
+
styles.wheelCenter,
|
|
351
|
+
{
|
|
352
|
+
width: actualCenterSize,
|
|
353
|
+
height: actualCenterSize,
|
|
354
|
+
borderRadius: actualCenterSize / 2,
|
|
355
|
+
transform: [
|
|
356
|
+
{ translateX: -actualCenterSize / 2 },
|
|
357
|
+
{ translateY: -actualCenterSize / 2 },
|
|
358
|
+
],
|
|
359
|
+
},
|
|
360
|
+
centerStyle,
|
|
361
|
+
]}
|
|
362
|
+
/>
|
|
363
|
+
)}
|
|
345
364
|
|
|
346
365
|
{/* The pointer is a triangle on top */}
|
|
347
366
|
<View
|