related-ui-components 1.3.8 → 1.4.0
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 +23 -29
- package/lib/commonjs/app.js.map +1 -1
- package/lib/commonjs/components/Marquee/Marquee.js +105 -0
- package/lib/commonjs/components/Marquee/Marquee.js.map +1 -0
- package/lib/commonjs/components/Marquee/index.js +29 -0
- package/lib/commonjs/components/Marquee/index.js.map +1 -0
- package/lib/commonjs/components/index.js +11 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/index.js +5 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/app.js +26 -32
- package/lib/module/app.js.map +1 -1
- package/lib/module/components/Marquee/Marquee.js +99 -0
- package/lib/module/components/Marquee/Marquee.js.map +1 -0
- package/lib/module/components/Marquee/index.js +5 -0
- package/lib/module/components/Marquee/index.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.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.map +1 -1
- package/lib/typescript/commonjs/components/Marquee/Marquee.d.ts +17 -0
- package/lib/typescript/commonjs/components/Marquee/Marquee.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Marquee/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/Marquee/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/index.d.ts +1 -0
- package/lib/typescript/commonjs/components/index.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.map +1 -1
- package/lib/typescript/module/components/Marquee/Marquee.d.ts +17 -0
- package/lib/typescript/module/components/Marquee/Marquee.d.ts.map +1 -0
- package/lib/typescript/module/components/Marquee/index.d.ts +3 -0
- package/lib/typescript/module/components/Marquee/index.d.ts.map +1 -0
- package/lib/typescript/module/components/index.d.ts +1 -0
- package/lib/typescript/module/components/index.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 +2 -2
- package/src/app.tsx +12 -14
- package/src/components/Marquee/Marquee.tsx +140 -0
- package/src/components/Marquee/index.ts +2 -0
- package/src/components/index.ts +2 -1
- package/src/index.ts +4 -4
package/lib/commonjs/app.js
CHANGED
|
@@ -110,44 +110,38 @@ function App() {
|
|
|
110
110
|
const debounceTimerRef = (0, _react.useRef)(null);
|
|
111
111
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView, {
|
|
112
112
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.RelatedProvider, {
|
|
113
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
113
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSafeAreaContext.SafeAreaView, {
|
|
114
114
|
style: {
|
|
115
115
|
padding: 10,
|
|
116
116
|
flex: 1,
|
|
117
117
|
backgroundColor: theme.background
|
|
118
118
|
},
|
|
119
|
-
children:
|
|
120
|
-
|
|
119
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Banner, {
|
|
120
|
+
backgroundImage: require("@/assets/images/namshi-banner.png"),
|
|
121
|
+
buttonText: "Redeem Now",
|
|
122
|
+
onButtonPress: () => _reactNative.Alert.alert("Button pressed"),
|
|
123
|
+
onBannerPress: () => _reactNative.Alert.alert("Banner pressed"),
|
|
124
|
+
height: 200,
|
|
125
|
+
contentAlignment: "bottom",
|
|
126
|
+
contentContainerStyle: {
|
|
127
|
+
borderRadius: 50,
|
|
128
|
+
backgroundColor: "red"
|
|
129
|
+
},
|
|
121
130
|
containerStyle: {
|
|
122
|
-
borderRadius:
|
|
123
|
-
|
|
131
|
+
borderRadius: 50,
|
|
132
|
+
backgroundColor: "red"
|
|
133
|
+
},
|
|
134
|
+
backgroundImageStyle: {
|
|
135
|
+
borderRadius: 50,
|
|
136
|
+
backgroundColor: "red"
|
|
124
137
|
},
|
|
125
138
|
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
126
|
-
name: "
|
|
127
|
-
size:
|
|
139
|
+
name: "gift-outline",
|
|
140
|
+
size: 20,
|
|
141
|
+
color: "#FFFFFF"
|
|
128
142
|
}),
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
width: 30,
|
|
132
|
-
height: 30,
|
|
133
|
-
borderRadius: 30,
|
|
134
|
-
padding: 25
|
|
135
|
-
},
|
|
136
|
-
textStyle: {
|
|
137
|
-
fontSize: 15,
|
|
138
|
-
fontWeight: "500"
|
|
139
|
-
},
|
|
140
|
-
text: "Deals",
|
|
141
|
-
orientation: "horizontal"
|
|
142
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.BrandIcon, {
|
|
143
|
-
showName: true,
|
|
144
|
-
size: 50,
|
|
145
|
-
brand: {
|
|
146
|
-
id: "1",
|
|
147
|
-
logo: require("@/assets/images/pb-logo.jpg"),
|
|
148
|
-
name: "Pull and Bear"
|
|
149
|
-
}
|
|
150
|
-
})]
|
|
143
|
+
iconPosition: "left"
|
|
144
|
+
})
|
|
151
145
|
})
|
|
152
146
|
})
|
|
153
147
|
});
|
package/lib/commonjs/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_index","_index2","_reactNativeSafeAreaContext","_reactNativeGestureHandler","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","App","theme","useTheme","filtersVisible","setFiltersVisible","useState","mode","setMode","sortOptions","id","name","value","iconSize","iconColor","onSurface","redemptionOption","icon","jsx","Ionicons","size","color","key","orientation","width","redemptionOptions","map","item","text","debounceTimerRef","useRef","GestureHandlerRootView","children","RelatedProvider","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_index","_index2","_reactNativeSafeAreaContext","_reactNativeGestureHandler","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","App","theme","useTheme","filtersVisible","setFiltersVisible","useState","mode","setMode","sortOptions","id","name","value","iconSize","iconColor","onSurface","redemptionOption","icon","jsx","Ionicons","size","color","key","orientation","width","redemptionOptions","map","item","text","debounceTimerRef","useRef","GestureHandlerRootView","children","RelatedProvider","SafeAreaView","style","padding","flex","backgroundColor","background","Banner","backgroundImage","buttonText","onButtonPress","Alert","alert","onBannerPress","height","contentAlignment","contentContainerStyle","borderRadius","containerStyle","backgroundImageStyle","iconPosition","styles","StyleSheet","create","container","testButton","paddingVertical","paddingHorizontal","marginBottom","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
const DEFAULT_ANIMATION_SPEED_MS = 15000;
|
|
14
|
+
const ReusableMarquee = ({
|
|
15
|
+
data: baseData,
|
|
16
|
+
renderItem,
|
|
17
|
+
itemWidth,
|
|
18
|
+
itemHeight,
|
|
19
|
+
itemSpacing,
|
|
20
|
+
animationSpeedMs = DEFAULT_ANIMATION_SPEED_MS,
|
|
21
|
+
style,
|
|
22
|
+
contentContainerStyle
|
|
23
|
+
}) => {
|
|
24
|
+
const translateX = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
25
|
+
|
|
26
|
+
// Memoize calculations that depend on props to avoid unnecessary recalculations
|
|
27
|
+
const {
|
|
28
|
+
ONE_SET_WIDTH,
|
|
29
|
+
DATA
|
|
30
|
+
} = (0, _react.useMemo)(() => {
|
|
31
|
+
if (!baseData || baseData.length === 0) {
|
|
32
|
+
return {
|
|
33
|
+
ONE_SET_WIDTH: 0,
|
|
34
|
+
DATA: []
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const calculatedWidth = baseData.reduce(sum => sum + itemWidth + itemSpacing, 0);
|
|
38
|
+
// Duplicate data for seamless looping
|
|
39
|
+
const duplicatedData = [...baseData, ...baseData];
|
|
40
|
+
return {
|
|
41
|
+
ONE_SET_WIDTH: calculatedWidth,
|
|
42
|
+
DATA: duplicatedData
|
|
43
|
+
};
|
|
44
|
+
}, [baseData, itemWidth, itemSpacing]);
|
|
45
|
+
(0, _react.useEffect)(() => {
|
|
46
|
+
if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
|
|
47
|
+
translateX.value = 0; // Reset position when props change
|
|
48
|
+
const animation = (0, _reactNativeReanimated.withRepeat)((0, _reactNativeReanimated.withTiming)(-ONE_SET_WIDTH, {
|
|
49
|
+
duration: animationSpeedMs,
|
|
50
|
+
easing: _reactNativeReanimated.Easing.linear
|
|
51
|
+
}), -1,
|
|
52
|
+
// Infinite repeat
|
|
53
|
+
false // Don't reverse
|
|
54
|
+
);
|
|
55
|
+
translateX.value = animation;
|
|
56
|
+
return () => {
|
|
57
|
+
(0, _reactNativeReanimated.cancelAnimation)(translateX);
|
|
58
|
+
};
|
|
59
|
+
} else {
|
|
60
|
+
(0, _reactNativeReanimated.cancelAnimation)(translateX);
|
|
61
|
+
translateX.value = 0;
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
}, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
|
|
65
|
+
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
66
|
+
return {
|
|
67
|
+
transform: [{
|
|
68
|
+
translateX: translateX.value
|
|
69
|
+
}]
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
if (DATA.length === 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
76
|
+
style: [styles.container, {
|
|
77
|
+
height: itemHeight
|
|
78
|
+
}, style],
|
|
79
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
80
|
+
style: [styles.animatedContainer, {
|
|
81
|
+
height: itemHeight
|
|
82
|
+
}, animatedStyle, contentContainerStyle],
|
|
83
|
+
children: DATA.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
84
|
+
style: [styles.itemWrapper, {
|
|
85
|
+
width: itemWidth,
|
|
86
|
+
height: itemHeight,
|
|
87
|
+
marginRight: itemSpacing
|
|
88
|
+
}],
|
|
89
|
+
children: renderItem(item, index)
|
|
90
|
+
}, `${item.id}-${index}`))
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
const styles = _reactNative.StyleSheet.create({
|
|
95
|
+
container: {
|
|
96
|
+
width: "100%",
|
|
97
|
+
overflow: "hidden"
|
|
98
|
+
},
|
|
99
|
+
animatedContainer: {
|
|
100
|
+
flexDirection: "row"
|
|
101
|
+
},
|
|
102
|
+
itemWrapper: {}
|
|
103
|
+
});
|
|
104
|
+
var _default = exports.default = ReusableMarquee;
|
|
105
|
+
//# sourceMappingURL=Marquee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_ANIMATION_SPEED_MS","ReusableMarquee","data","baseData","renderItem","itemWidth","itemHeight","itemSpacing","animationSpeedMs","style","contentContainerStyle","translateX","useSharedValue","ONE_SET_WIDTH","DATA","useMemo","length","calculatedWidth","reduce","sum","duplicatedData","useEffect","value","animation","withRepeat","withTiming","duration","easing","Easing","linear","cancelAnimation","undefined","animatedStyle","useAnimatedStyle","transform","jsx","View","styles","container","height","children","animatedContainer","map","item","index","itemWrapper","width","marginRight","id","StyleSheet","create","overflow","flexDirection","_default","exports"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Marquee/Marquee.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
Marquee: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "Marquee", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _Marquee.default;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var _Marquee = _interopRequireWildcard(require("./Marquee.js"));
|
|
16
|
+
Object.keys(_Marquee).forEach(function (key) {
|
|
17
|
+
if (key === "default" || key === "__esModule") return;
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
19
|
+
if (key in exports && exports[key] === _Marquee[key]) return;
|
|
20
|
+
Object.defineProperty(exports, key, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _Marquee[key];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
28
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Marquee","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Marquee/index.ts"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,QAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,QAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAd,QAAA,CAAAM,GAAA;IAAA;EAAA;AAAA;AAA0B,SAAAS,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAf,wBAAAe,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAL,GAAA,CAAAE,CAAA,OAAAO,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAtB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAAuB,wBAAA,WAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAAnB,cAAA,CAAAC,IAAA,CAAAO,CAAA,EAAAW,CAAA,SAAAC,CAAA,GAAAH,CAAA,GAAAtB,MAAA,CAAAuB,wBAAA,CAAAV,CAAA,EAAAW,CAAA,UAAAC,CAAA,KAAAA,CAAA,CAAAd,GAAA,IAAAc,CAAA,CAAAC,GAAA,IAAA1B,MAAA,CAAAS,cAAA,CAAAW,CAAA,EAAAI,CAAA,EAAAC,CAAA,IAAAL,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA,YAAAJ,CAAA,CAAAF,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAU,GAAA,CAAAb,CAAA,EAAAO,CAAA,GAAAA,CAAA","ignoreList":[]}
|
|
@@ -157,4 +157,15 @@ Object.keys(_index14).forEach(function (key) {
|
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
159
|
});
|
|
160
|
+
var _index15 = require("./Marquee/index.js");
|
|
161
|
+
Object.keys(_index15).forEach(function (key) {
|
|
162
|
+
if (key === "default" || key === "__esModule") return;
|
|
163
|
+
if (key in exports && exports[key] === _index15[key]) return;
|
|
164
|
+
Object.defineProperty(exports, key, {
|
|
165
|
+
enumerable: true,
|
|
166
|
+
get: function () {
|
|
167
|
+
return _index15[key];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
160
171
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_index","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12","_index13","_index14"],"sourceRoot":"..\\..\\..\\src","sources":["components/index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_index","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12","_index13","_index14","_index15"],"sourceRoot":"..\\..\\..\\src","sources":["components/index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _expo = require("expo");
|
|
7
|
+
require("react-native-reanimated");
|
|
8
|
+
var _app = _interopRequireDefault(require("./app.js"));
|
|
6
9
|
var _index = require("./theme/index.js");
|
|
7
10
|
Object.keys(_index).forEach(function (key) {
|
|
8
11
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -25,4 +28,6 @@ Object.keys(_index2).forEach(function (key) {
|
|
|
25
28
|
}
|
|
26
29
|
});
|
|
27
30
|
});
|
|
31
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
32
|
+
(0, _expo.registerRootComponent)(_app.default);
|
|
28
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_expo","require","_app","_interopRequireDefault","_index","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_index2","e","__esModule","default","registerRootComponent","App"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACAA,OAAA;AAGA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAR,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAZ,OAAA;AAAAI,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AAA6B,SAAAL,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAH7B,IAAAG,2BAAqB,EAACC,YAAG,CAAC","ignoreList":[]}
|
package/lib/module/app.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useRef, useState } from "react";
|
|
4
|
-
import { StyleSheet } from "react-native";
|
|
4
|
+
import { StyleSheet, Alert } from "react-native";
|
|
5
5
|
import { Ionicons } from "@expo/vector-icons";
|
|
6
6
|
import { RelatedProvider, useTheme } from "./theme/index.js";
|
|
7
|
-
import {
|
|
7
|
+
import { Banner } from "./components/index.js";
|
|
8
8
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
9
9
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
10
10
|
// import BRANDS from "./constants/BRANDS";
|
|
11
|
-
import { jsx as _jsx
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
export default function App() {
|
|
13
13
|
const {
|
|
14
14
|
theme
|
|
@@ -104,44 +104,38 @@ export default function App() {
|
|
|
104
104
|
const debounceTimerRef = useRef(null);
|
|
105
105
|
return /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
106
106
|
children: /*#__PURE__*/_jsx(RelatedProvider, {
|
|
107
|
-
children: /*#__PURE__*/
|
|
107
|
+
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
108
108
|
style: {
|
|
109
109
|
padding: 10,
|
|
110
110
|
flex: 1,
|
|
111
111
|
backgroundColor: theme.background
|
|
112
112
|
},
|
|
113
|
-
children:
|
|
114
|
-
|
|
113
|
+
children: /*#__PURE__*/_jsx(Banner, {
|
|
114
|
+
backgroundImage: require("@/assets/images/namshi-banner.png"),
|
|
115
|
+
buttonText: "Redeem Now",
|
|
116
|
+
onButtonPress: () => Alert.alert("Button pressed"),
|
|
117
|
+
onBannerPress: () => Alert.alert("Banner pressed"),
|
|
118
|
+
height: 200,
|
|
119
|
+
contentAlignment: "bottom",
|
|
120
|
+
contentContainerStyle: {
|
|
121
|
+
borderRadius: 50,
|
|
122
|
+
backgroundColor: "red"
|
|
123
|
+
},
|
|
115
124
|
containerStyle: {
|
|
116
|
-
borderRadius:
|
|
117
|
-
|
|
125
|
+
borderRadius: 50,
|
|
126
|
+
backgroundColor: "red"
|
|
127
|
+
},
|
|
128
|
+
backgroundImageStyle: {
|
|
129
|
+
borderRadius: 50,
|
|
130
|
+
backgroundColor: "red"
|
|
118
131
|
},
|
|
119
132
|
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
120
|
-
name: "
|
|
121
|
-
size:
|
|
133
|
+
name: "gift-outline",
|
|
134
|
+
size: 20,
|
|
135
|
+
color: "#FFFFFF"
|
|
122
136
|
}),
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
width: 30,
|
|
126
|
-
height: 30,
|
|
127
|
-
borderRadius: 30,
|
|
128
|
-
padding: 25
|
|
129
|
-
},
|
|
130
|
-
textStyle: {
|
|
131
|
-
fontSize: 15,
|
|
132
|
-
fontWeight: "500"
|
|
133
|
-
},
|
|
134
|
-
text: "Deals",
|
|
135
|
-
orientation: "horizontal"
|
|
136
|
-
}), /*#__PURE__*/_jsx(BrandIcon, {
|
|
137
|
-
showName: true,
|
|
138
|
-
size: 50,
|
|
139
|
-
brand: {
|
|
140
|
-
id: "1",
|
|
141
|
-
logo: require("@/assets/images/pb-logo.jpg"),
|
|
142
|
-
name: "Pull and Bear"
|
|
143
|
-
}
|
|
144
|
-
})]
|
|
137
|
+
iconPosition: "left"
|
|
138
|
+
})
|
|
145
139
|
})
|
|
146
140
|
})
|
|
147
141
|
});
|
package/lib/module/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","StyleSheet","Ionicons","RelatedProvider","useTheme","
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","StyleSheet","Alert","Ionicons","RelatedProvider","useTheme","Banner","SafeAreaView","GestureHandlerRootView","jsx","_jsx","App","theme","filtersVisible","setFiltersVisible","mode","setMode","sortOptions","id","name","value","iconSize","iconColor","onSurface","redemptionOption","icon","size","color","key","orientation","width","redemptionOptions","map","item","text","debounceTimerRef","children","style","padding","flex","backgroundColor","background","backgroundImage","require","buttonText","onButtonPress","alert","onBannerPress","height","contentAlignment","contentContainerStyle","borderRadius","containerStyle","backgroundImageStyle","iconPosition","styles","create","container","testButton","paddingVertical","paddingHorizontal","marginBottom","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/C,SAEEC,UAAU,EAKVC,KAAK,QACA,cAAc;AACrB,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,eAAe,EAAEC,QAAQ,QAAQ,kBAAS;AACnD,SACEC,MAAM,QAMD,uBAAc;AACrB,SAASC,YAAY,QAAQ,gCAAgC;AAa7D,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEA,eAAe,SAASC,GAAGA,CAAA,EAAG;EAC5B,MAAM;IAAEC;EAAM,CAAC,GAAGP,QAAQ,CAAC,CAAC;EAC5B,MAAM,CAACQ,cAAc,EAAEC,iBAAiB,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACe,IAAI,EAAEC,OAAO,CAAC,GAAGhB,QAAQ,CAAqB,QAAQ,CAAC;;EAE9D;EACA,MAAMiB,WAAW,GAAG,CAClB;IAAEC,EAAE,EAAE,CAAC;IAAEC,IAAI,EAAE,oBAAoB;IAAEC,KAAK,EAAE;EAAY,CAAC,EACzD;IAAEF,EAAE,EAAE,CAAC;IAAEC,IAAI,EAAE,oBAAoB;IAAEC,KAAK,EAAE;EAAa,CAAC,EAC1D;IAAEF,EAAE,EAAE,CAAC;IAAEC,IAAI,EAAE,QAAQ;IAAEC,KAAK,EAAE;EAAS,CAAC,CAC3C;EAED,MAAMC,QAAQ,GAAG,EAAE;EACnB,MAAMC,SAAS,GAAGV,KAAK,CAACW,SAAS;EAEjC,MAAMC,gBAAgB,GAAG,CACvB;IACEC,IAAI,eACFf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,oBAAoB;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CACxE;IACDM,GAAG,EAAE,kCAAkC;IAAE;IACzCC,WAAW,EAAE,YAAY;IACzBC,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eACFf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,gBAAgB;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CACpE;IACDM,GAAG,EAAE,6BAA6B;IAAE;IACpCE,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eAAEf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,cAAc;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CAAC;IACxEM,GAAG,EAAE,4BAA4B;IAAE;IACnCE,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eAAEf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,eAAe;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CAAC;IACzEM,GAAG,EAAE,0BAA0B;IAAE;IACjCE,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eACFf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,kBAAkB;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CACtE;IACDM,GAAG,EAAE,0BAA0B;IAAE;IACjCE,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eACFf,IAAA,CAACP,QAAQ;MACPgB,IAAI,EAAC,yBAAyB;MAC9BO,IAAI,EAAEL,QAAS;MACfM,KAAK,EAAEL;IAAU,CAClB,CACF;IACDM,GAAG,EAAE,kCAAkC;IAAE;IACzCE,KAAK,EAAE;EACT,CAAC,EACD;IACEL,IAAI,eAAEf,IAAA,CAACP,QAAQ;MAACgB,IAAI,EAAC,cAAc;MAACO,IAAI,EAAEL,QAAS;MAACM,KAAK,EAAEL;IAAU,CAAE,CAAC;IACxEM,GAAG,EAAE,kCAAkC;IAAE;IACzCE,KAAK,EAAE;EACT,CAAC,CACF;EAED,MAAMC,iBAAiB,GAAGP,gBAAgB,CAACQ,GAAG,CAAEC,IAAI,KAAM;IACxD,GAAGA,IAAI;IACPC,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EACH,MAAMC,gBAAgB,GAAGpC,MAAM,CAAwB,IAAI,CAAC;EAE5D,oBACEW,IAAA,CAACF,sBAAsB;IAAA4B,QAAA,eACrB1B,IAAA,CAACN,eAAe;MAAAgC,QAAA,eAEd1B,IAAA,CAACH,YAAY;QACX8B,KAAK,EAAE;UAAEC,OAAO,EAAE,EAAE;UAAEC,IAAI,EAAE,CAAC;UAAEC,eAAe,EAAE5B,KAAK,CAAC6B;QAAW,CAAE;QAAAL,QAAA,eAmBnE1B,IAAA,CAACJ,MAAM;UACXoC,eAAe,EAAEC,OAAO,CAAC,mCAAmC,CAAE;UAC9DC,UAAU,EAAC,YAAY;UACvBC,aAAa,EAAEA,CAAA,KAAM3C,KAAK,CAAC4C,KAAK,CAAC,gBAAgB,CAAE;UACnDC,aAAa,EAAEA,CAAA,KAAM7C,KAAK,CAAC4C,KAAK,CAAC,gBAAgB,CAAE;UACnDE,MAAM,EAAE,GAAI;UACZC,gBAAgB,EAAC,QAAQ;UACzBC,qBAAqB,EAAE;YAACC,YAAY,EAAE,EAAE;YAAEX,eAAe,EAAC;UAAK,CAAE;UACjEY,cAAc,EAAE;YAACD,YAAY,EAAE,EAAE;YAAEX,eAAe,EAAC;UAAK,CAAE;UAC1Da,oBAAoB,EAAE;YAACF,YAAY,EAAE,EAAE;YAAEX,eAAe,EAAC;UAAK,CAAE;UAChEf,IAAI,eAAEf,IAAA,CAACP,QAAQ;YAACgB,IAAI,EAAC,cAAc;YAACO,IAAI,EAAE,EAAG;YAACC,KAAK,EAAC;UAAS,CAAE,CAAE;UACjE2B,YAAY,EAAC;QAAM,CACpB;MAAC,CAmCgB;IAAC,CAEA;EAAC,CACI,CAAC;AAE7B;AAEA,MAAMC,MAAM,GAAGtD,UAAU,CAACuD,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTlB,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,OAAO;IACxBF,OAAO,EAAE;EACX,CAAC;EACDoB,UAAU,EAAE;IACVlB,eAAe,EAAE,SAAS;IAC1BmB,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBT,YAAY,EAAE,CAAC;IACfU,YAAY,EAAE;EAChB,CAAC;EACDjB,UAAU,EAAE;IACVjB,KAAK,EAAE,SAAS;IAChBmC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useMemo } from "react";
|
|
4
|
+
import { View, StyleSheet } from "react-native";
|
|
5
|
+
import Animated, { useSharedValue, useAnimatedStyle, withRepeat, withTiming, Easing, cancelAnimation } from "react-native-reanimated";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const DEFAULT_ANIMATION_SPEED_MS = 15000;
|
|
8
|
+
const ReusableMarquee = ({
|
|
9
|
+
data: baseData,
|
|
10
|
+
renderItem,
|
|
11
|
+
itemWidth,
|
|
12
|
+
itemHeight,
|
|
13
|
+
itemSpacing,
|
|
14
|
+
animationSpeedMs = DEFAULT_ANIMATION_SPEED_MS,
|
|
15
|
+
style,
|
|
16
|
+
contentContainerStyle
|
|
17
|
+
}) => {
|
|
18
|
+
const translateX = useSharedValue(0);
|
|
19
|
+
|
|
20
|
+
// Memoize calculations that depend on props to avoid unnecessary recalculations
|
|
21
|
+
const {
|
|
22
|
+
ONE_SET_WIDTH,
|
|
23
|
+
DATA
|
|
24
|
+
} = useMemo(() => {
|
|
25
|
+
if (!baseData || baseData.length === 0) {
|
|
26
|
+
return {
|
|
27
|
+
ONE_SET_WIDTH: 0,
|
|
28
|
+
DATA: []
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const calculatedWidth = baseData.reduce(sum => sum + itemWidth + itemSpacing, 0);
|
|
32
|
+
// Duplicate data for seamless looping
|
|
33
|
+
const duplicatedData = [...baseData, ...baseData];
|
|
34
|
+
return {
|
|
35
|
+
ONE_SET_WIDTH: calculatedWidth,
|
|
36
|
+
DATA: duplicatedData
|
|
37
|
+
};
|
|
38
|
+
}, [baseData, itemWidth, itemSpacing]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
|
|
41
|
+
translateX.value = 0; // Reset position when props change
|
|
42
|
+
const animation = withRepeat(withTiming(-ONE_SET_WIDTH, {
|
|
43
|
+
duration: animationSpeedMs,
|
|
44
|
+
easing: Easing.linear
|
|
45
|
+
}), -1,
|
|
46
|
+
// Infinite repeat
|
|
47
|
+
false // Don't reverse
|
|
48
|
+
);
|
|
49
|
+
translateX.value = animation;
|
|
50
|
+
return () => {
|
|
51
|
+
cancelAnimation(translateX);
|
|
52
|
+
};
|
|
53
|
+
} else {
|
|
54
|
+
cancelAnimation(translateX);
|
|
55
|
+
translateX.value = 0;
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
}, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
|
|
59
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
60
|
+
return {
|
|
61
|
+
transform: [{
|
|
62
|
+
translateX: translateX.value
|
|
63
|
+
}]
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
if (DATA.length === 0) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return /*#__PURE__*/_jsx(View, {
|
|
70
|
+
style: [styles.container, {
|
|
71
|
+
height: itemHeight
|
|
72
|
+
}, style],
|
|
73
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
74
|
+
style: [styles.animatedContainer, {
|
|
75
|
+
height: itemHeight
|
|
76
|
+
}, animatedStyle, contentContainerStyle],
|
|
77
|
+
children: DATA.map((item, index) => /*#__PURE__*/_jsx(View, {
|
|
78
|
+
style: [styles.itemWrapper, {
|
|
79
|
+
width: itemWidth,
|
|
80
|
+
height: itemHeight,
|
|
81
|
+
marginRight: itemSpacing
|
|
82
|
+
}],
|
|
83
|
+
children: renderItem(item, index)
|
|
84
|
+
}, `${item.id}-${index}`))
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
const styles = StyleSheet.create({
|
|
89
|
+
container: {
|
|
90
|
+
width: "100%",
|
|
91
|
+
overflow: "hidden"
|
|
92
|
+
},
|
|
93
|
+
animatedContainer: {
|
|
94
|
+
flexDirection: "row"
|
|
95
|
+
},
|
|
96
|
+
itemWrapper: {}
|
|
97
|
+
});
|
|
98
|
+
export default ReusableMarquee;
|
|
99
|
+
//# sourceMappingURL=Marquee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","View","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withRepeat","withTiming","Easing","cancelAnimation","jsx","_jsx","DEFAULT_ANIMATION_SPEED_MS","ReusableMarquee","data","baseData","renderItem","itemWidth","itemHeight","itemSpacing","animationSpeedMs","style","contentContainerStyle","translateX","ONE_SET_WIDTH","DATA","length","calculatedWidth","reduce","sum","duplicatedData","value","animation","duration","easing","linear","undefined","animatedStyle","transform","styles","container","height","children","animatedContainer","map","item","index","itemWrapper","width","marginRight","id","create","overflow","flexDirection"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Marquee/Marquee.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","Marquee"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/Marquee/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,cAAW;AAC9C,cAAc,cAAW","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,iBAAQ;AACtB,cAAc,wBAAe;AAC7B,cAAe,mBAAU;AACzB,cAAc,mBAAU;AACxB,cAAc,sBAAa;AAC3B,cAAc,oBAAW;AACzB,cAAc,kBAAS;AACvB,cAAc,wBAAe;AAC7B,cAAc,kBAAS;AACvB,cAAc,6BAAoB;AAClC,cAAc,wBAAe;AAC7B,cAAc,0BAAiB;AAC/B,cAAc,kBAAS;AACvB,cAAc,sBAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,iBAAQ;AACtB,cAAc,wBAAe;AAC7B,cAAe,mBAAU;AACzB,cAAc,mBAAU;AACxB,cAAc,sBAAa;AAC3B,cAAc,oBAAW;AACzB,cAAc,kBAAS;AACvB,cAAc,wBAAe;AAC7B,cAAc,kBAAS;AACvB,cAAc,6BAAoB;AAClC,cAAc,wBAAe;AAC7B,cAAc,0BAAiB;AAC/B,cAAc,kBAAS;AACvB,cAAc,sBAAa;AAC3B,cAAc,oBAAW","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,KAA2B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAoChD,MAAM,CAAC,OAAO,UAAU,GAAG,sBAoJ1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ViewStyle } from "react-native";
|
|
3
|
+
type ReusableMarqueeProps<T> = {
|
|
4
|
+
data: T[];
|
|
5
|
+
renderItem: (item: T, index: number) => React.ReactElement;
|
|
6
|
+
itemWidth: number;
|
|
7
|
+
itemHeight: number;
|
|
8
|
+
itemSpacing: number;
|
|
9
|
+
animationSpeedMs?: number;
|
|
10
|
+
style?: ViewStyle;
|
|
11
|
+
contentContainerStyle?: ViewStyle;
|
|
12
|
+
};
|
|
13
|
+
declare const ReusableMarquee: <T extends {
|
|
14
|
+
id: string | number;
|
|
15
|
+
}>({ data: baseData, renderItem, itemWidth, itemHeight, itemSpacing, animationSpeedMs, style, contentContainerStyle, }: ReusableMarqueeProps<T>) => React.ReactElement | null;
|
|
16
|
+
export default ReusableMarquee;
|
|
17
|
+
//# sourceMappingURL=Marquee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marquee.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/Marquee.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAIL,SAAS,EACV,MAAM,cAAc,CAAC;AAYtB,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,qBAAqB,CAAC,EAAE,SAAS,CAAC;CACnC,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,qHASzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAsFjD,CAAC;AAcF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,cAAc,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAe,UAAU,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAe,UAAU,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAoChD,MAAM,CAAC,OAAO,UAAU,GAAG,sBAoJ1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ViewStyle } from "react-native";
|
|
3
|
+
type ReusableMarqueeProps<T> = {
|
|
4
|
+
data: T[];
|
|
5
|
+
renderItem: (item: T, index: number) => React.ReactElement;
|
|
6
|
+
itemWidth: number;
|
|
7
|
+
itemHeight: number;
|
|
8
|
+
itemSpacing: number;
|
|
9
|
+
animationSpeedMs?: number;
|
|
10
|
+
style?: ViewStyle;
|
|
11
|
+
contentContainerStyle?: ViewStyle;
|
|
12
|
+
};
|
|
13
|
+
declare const ReusableMarquee: <T extends {
|
|
14
|
+
id: string | number;
|
|
15
|
+
}>({ data: baseData, renderItem, itemWidth, itemHeight, itemSpacing, animationSpeedMs, style, contentContainerStyle, }: ReusableMarqueeProps<T>) => React.ReactElement | null;
|
|
16
|
+
export default ReusableMarquee;
|
|
17
|
+
//# sourceMappingURL=Marquee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Marquee.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/Marquee.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAIL,SAAS,EACV,MAAM,cAAc,CAAC;AAYtB,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,qBAAqB,CAAC,EAAE,SAAS,CAAC;CACnC,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,qHASzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAsFjD,CAAC;AAcF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,cAAc,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAe,UAAU,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAe,UAAU,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "related-ui-components",
|
|
3
3
|
"main": "./src/index.ts",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "expo start",
|
|
7
7
|
"reset-project": "node ./scripts/reset-project.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"expo-checkbox": "^4.0.1",
|
|
32
32
|
"expo-constants": "~17.0.7",
|
|
33
33
|
"expo-font": "~13.0.4",
|
|
34
|
-
"expo-linear-gradient": "
|
|
34
|
+
"expo-linear-gradient": "~14.0.2",
|
|
35
35
|
"expo-linking": "~7.0.5",
|
|
36
36
|
"expo-splash-screen": "~0.29.24",
|
|
37
37
|
"expo-status-bar": "~2.0.1",
|
package/src/app.tsx
CHANGED
|
@@ -12,7 +12,6 @@ import { Ionicons } from "@expo/vector-icons";
|
|
|
12
12
|
import { RelatedProvider, useTheme } from "./theme";
|
|
13
13
|
import {
|
|
14
14
|
Banner,
|
|
15
|
-
BrandIcon,
|
|
16
15
|
Filters,
|
|
17
16
|
Popup,
|
|
18
17
|
RedemptionOption,
|
|
@@ -131,7 +130,7 @@ export default function App() {
|
|
|
131
130
|
// }}
|
|
132
131
|
></TravelBooking> */}
|
|
133
132
|
{/* </ScrollView> */}
|
|
134
|
-
|
|
133
|
+
<Banner
|
|
135
134
|
backgroundImage={require("@/assets/images/namshi-banner.png")}
|
|
136
135
|
buttonText="Redeem Now"
|
|
137
136
|
onButtonPress={() => Alert.alert("Button pressed")}
|
|
@@ -143,7 +142,7 @@ export default function App() {
|
|
|
143
142
|
backgroundImageStyle={{borderRadius: 50, backgroundColor:"red"}}
|
|
144
143
|
icon={<Ionicons name="gift-outline" size={20} color="#FFFFFF" />}
|
|
145
144
|
iconPosition="left"
|
|
146
|
-
/>
|
|
145
|
+
/>
|
|
147
146
|
{/* <Popup
|
|
148
147
|
visible={true}
|
|
149
148
|
onClose={()=>{} }
|
|
@@ -157,12 +156,16 @@ export default function App() {
|
|
|
157
156
|
onSecondaryButtonPress={()=>{}}
|
|
158
157
|
isRTL={true}
|
|
159
158
|
/> */}
|
|
160
|
-
<RedemptionOption
|
|
161
|
-
padding={
|
|
159
|
+
{/* <RedemptionOption
|
|
160
|
+
// padding={}
|
|
162
161
|
containerStyle={{ borderRadius: 10, alignItems: "center" }}
|
|
163
|
-
icon={
|
|
164
|
-
|
|
165
|
-
}
|
|
162
|
+
// icon={
|
|
163
|
+
// <CustomIcon
|
|
164
|
+
// source={require("@/assets/icons/deals-filled.png")}
|
|
165
|
+
// size={30}
|
|
166
|
+
// color="#665490"
|
|
167
|
+
// ></CustomIcon>
|
|
168
|
+
// }
|
|
166
169
|
iconContainerStyle={{
|
|
167
170
|
backgroundColor: theme.background,
|
|
168
171
|
width: 30,
|
|
@@ -173,12 +176,7 @@ export default function App() {
|
|
|
173
176
|
textStyle={{fontSize: 15, fontWeight: "500"}}
|
|
174
177
|
text="Deals"
|
|
175
178
|
orientation="horizontal"
|
|
176
|
-
/>
|
|
177
|
-
<BrandIcon showName size={50} brand={{
|
|
178
|
-
id: "1",
|
|
179
|
-
logo: require("@/assets/images/pb-logo.jpg"),
|
|
180
|
-
name: "Pull and Bear"
|
|
181
|
-
}}></BrandIcon>
|
|
179
|
+
/> */}
|
|
182
180
|
</SafeAreaView>
|
|
183
181
|
{/* </View> */}
|
|
184
182
|
</RelatedProvider>
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import React, { useEffect, useMemo } from "react";
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
StyleSheet,
|
|
5
|
+
Dimensions,
|
|
6
|
+
ViewStyle,
|
|
7
|
+
} from "react-native";
|
|
8
|
+
import Animated, {
|
|
9
|
+
useSharedValue,
|
|
10
|
+
useAnimatedStyle,
|
|
11
|
+
withRepeat,
|
|
12
|
+
withTiming,
|
|
13
|
+
Easing,
|
|
14
|
+
cancelAnimation,
|
|
15
|
+
} from "react-native-reanimated";
|
|
16
|
+
|
|
17
|
+
const DEFAULT_ANIMATION_SPEED_MS = 15000;
|
|
18
|
+
|
|
19
|
+
type ReusableMarqueeProps<T> = {
|
|
20
|
+
data: T[];
|
|
21
|
+
renderItem: (item: T, index: number) => React.ReactElement;
|
|
22
|
+
itemWidth: number;
|
|
23
|
+
itemHeight: number;
|
|
24
|
+
itemSpacing: number;
|
|
25
|
+
animationSpeedMs?: number;
|
|
26
|
+
style?: ViewStyle
|
|
27
|
+
contentContainerStyle?: ViewStyle;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const ReusableMarquee = <T extends { id: string | number }>({
|
|
31
|
+
data: baseData,
|
|
32
|
+
renderItem,
|
|
33
|
+
itemWidth,
|
|
34
|
+
itemHeight,
|
|
35
|
+
itemSpacing,
|
|
36
|
+
animationSpeedMs = DEFAULT_ANIMATION_SPEED_MS,
|
|
37
|
+
style,
|
|
38
|
+
contentContainerStyle,
|
|
39
|
+
}: ReusableMarqueeProps<T>): React.ReactElement | null => {
|
|
40
|
+
const translateX = useSharedValue(0);
|
|
41
|
+
|
|
42
|
+
// Memoize calculations that depend on props to avoid unnecessary recalculations
|
|
43
|
+
const { ONE_SET_WIDTH, DATA } = useMemo(() => {
|
|
44
|
+
if (!baseData || baseData.length === 0) {
|
|
45
|
+
return { ONE_SET_WIDTH: 0, DATA: [] };
|
|
46
|
+
}
|
|
47
|
+
const calculatedWidth = baseData.reduce(
|
|
48
|
+
(sum) => sum + itemWidth + itemSpacing,
|
|
49
|
+
0,
|
|
50
|
+
);
|
|
51
|
+
// Duplicate data for seamless looping
|
|
52
|
+
const duplicatedData = [...baseData, ...baseData];
|
|
53
|
+
return { ONE_SET_WIDTH: calculatedWidth, DATA: duplicatedData };
|
|
54
|
+
}, [baseData, itemWidth, itemSpacing]);
|
|
55
|
+
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
|
|
58
|
+
translateX.value = 0; // Reset position when props change
|
|
59
|
+
const animation = withRepeat(
|
|
60
|
+
withTiming(-ONE_SET_WIDTH, {
|
|
61
|
+
duration: animationSpeedMs,
|
|
62
|
+
easing: Easing.linear,
|
|
63
|
+
}),
|
|
64
|
+
-1, // Infinite repeat
|
|
65
|
+
false, // Don't reverse
|
|
66
|
+
);
|
|
67
|
+
translateX.value = animation;
|
|
68
|
+
|
|
69
|
+
return () => {
|
|
70
|
+
cancelAnimation(translateX);
|
|
71
|
+
};
|
|
72
|
+
} else {
|
|
73
|
+
cancelAnimation(translateX);
|
|
74
|
+
translateX.value = 0;
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
}, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
|
|
78
|
+
|
|
79
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
80
|
+
return {
|
|
81
|
+
transform: [{ translateX: translateX.value }],
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
if (DATA.length === 0) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<View
|
|
91
|
+
style={[
|
|
92
|
+
styles.container,
|
|
93
|
+
{ height: itemHeight },
|
|
94
|
+
style,
|
|
95
|
+
]}
|
|
96
|
+
>
|
|
97
|
+
{/* Animated container holds items and moves horizontally */}
|
|
98
|
+
<Animated.View
|
|
99
|
+
style={[
|
|
100
|
+
styles.animatedContainer,
|
|
101
|
+
{ height: itemHeight },
|
|
102
|
+
animatedStyle,
|
|
103
|
+
contentContainerStyle,
|
|
104
|
+
]}
|
|
105
|
+
>
|
|
106
|
+
{/* Map over the duplicated data */}
|
|
107
|
+
{DATA.map((item, index) => (
|
|
108
|
+
<View
|
|
109
|
+
key={`${item.id}-${index}`}
|
|
110
|
+
style={[
|
|
111
|
+
styles.itemWrapper,
|
|
112
|
+
{
|
|
113
|
+
width: itemWidth,
|
|
114
|
+
height: itemHeight,
|
|
115
|
+
marginRight: itemSpacing,
|
|
116
|
+
},
|
|
117
|
+
]}
|
|
118
|
+
>
|
|
119
|
+
{renderItem(item, index)}
|
|
120
|
+
</View>
|
|
121
|
+
))}
|
|
122
|
+
</Animated.View>
|
|
123
|
+
</View>
|
|
124
|
+
);
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const styles = StyleSheet.create({
|
|
128
|
+
container: {
|
|
129
|
+
width: "100%",
|
|
130
|
+
overflow: "hidden",
|
|
131
|
+
},
|
|
132
|
+
animatedContainer: {
|
|
133
|
+
flexDirection: "row",
|
|
134
|
+
},
|
|
135
|
+
itemWrapper: {
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
export default ReusableMarquee;
|
|
140
|
+
|
package/src/components/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { registerRootComponent } from 'expo';
|
|
2
|
+
import "react-native-reanimated";
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import App from "./app";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
registerRootComponent(App);
|
|
8
8
|
|
|
9
9
|
export * from "./theme"
|
|
10
10
|
export * from "./components";
|