related-ui-components 1.5.9 → 1.6.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.
@@ -23,8 +23,6 @@ const ReusableMarquee = ({
23
23
  moveTo = "left"
24
24
  }) => {
25
25
  const translateX = (0, _reactNativeReanimated.useSharedValue)(0);
26
-
27
- // Memoize calculations that depend on props to avoid unnecessary recalculations
28
26
  const {
29
27
  ONE_SET_WIDTH,
30
28
  DATA
@@ -35,6 +33,7 @@ const ReusableMarquee = ({
35
33
  DATA: []
36
34
  };
37
35
  }
36
+ // Calculate width of one set of items including spacing
38
37
  const calculatedWidth = baseData.reduce(sum => sum + itemWidth + itemSpacing, 0);
39
38
  // Duplicate data for seamless looping
40
39
  const duplicatedData = [...baseData, ...baseData];
@@ -45,14 +44,13 @@ const ReusableMarquee = ({
45
44
  }, [baseData, itemWidth, itemSpacing]);
46
45
  (0, _react.useEffect)(() => {
47
46
  if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
48
- translateX.value = 0; // Reset position when props change
49
- const animation = (0, _reactNativeReanimated.withRepeat)((0, _reactNativeReanimated.withTiming)(moveTo == "left" ? -ONE_SET_WIDTH : +ONE_SET_WIDTH, {
47
+ const initialTranslateX = moveTo === "left" ? 0 : -ONE_SET_WIDTH;
48
+ const targetTranslateX = moveTo === "left" ? -ONE_SET_WIDTH : 0;
49
+ translateX.value = initialTranslateX;
50
+ const animation = (0, _reactNativeReanimated.withRepeat)((0, _reactNativeReanimated.withTiming)(targetTranslateX, {
50
51
  duration: animationSpeedMs,
51
52
  easing: _reactNativeReanimated.Easing.linear
52
- }), -1,
53
- // Infinite repeat
54
- false // Don't reverse
55
- );
53
+ }), -1, false);
56
54
  translateX.value = animation;
57
55
  return () => {
58
56
  (0, _reactNativeReanimated.cancelAnimation)(translateX);
@@ -62,7 +60,8 @@ const ReusableMarquee = ({
62
60
  translateX.value = 0;
63
61
  return undefined;
64
62
  }
65
- }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
63
+ }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs, moveTo]); //
64
+
66
65
  const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
67
66
  return {
68
67
  transform: [{
@@ -87,7 +86,7 @@ const ReusableMarquee = ({
87
86
  height: itemHeight,
88
87
  marginRight: itemSpacing
89
88
  }],
90
- children: renderItem(item, index)
89
+ children: renderItem(item, index % baseData.length)
91
90
  }, `${item.id}-${index}`))
92
91
  })
93
92
  });
@@ -1 +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","moveTo","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":[]}
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","moveTo","translateX","useSharedValue","ONE_SET_WIDTH","DATA","useMemo","length","calculatedWidth","reduce","sum","duplicatedData","useEffect","initialTranslateX","targetTranslateX","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":[]}
@@ -17,8 +17,6 @@ const ReusableMarquee = ({
17
17
  moveTo = "left"
18
18
  }) => {
19
19
  const translateX = useSharedValue(0);
20
-
21
- // Memoize calculations that depend on props to avoid unnecessary recalculations
22
20
  const {
23
21
  ONE_SET_WIDTH,
24
22
  DATA
@@ -29,6 +27,7 @@ const ReusableMarquee = ({
29
27
  DATA: []
30
28
  };
31
29
  }
30
+ // Calculate width of one set of items including spacing
32
31
  const calculatedWidth = baseData.reduce(sum => sum + itemWidth + itemSpacing, 0);
33
32
  // Duplicate data for seamless looping
34
33
  const duplicatedData = [...baseData, ...baseData];
@@ -39,14 +38,13 @@ const ReusableMarquee = ({
39
38
  }, [baseData, itemWidth, itemSpacing]);
40
39
  useEffect(() => {
41
40
  if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
42
- translateX.value = 0; // Reset position when props change
43
- const animation = withRepeat(withTiming(moveTo == "left" ? -ONE_SET_WIDTH : +ONE_SET_WIDTH, {
41
+ const initialTranslateX = moveTo === "left" ? 0 : -ONE_SET_WIDTH;
42
+ const targetTranslateX = moveTo === "left" ? -ONE_SET_WIDTH : 0;
43
+ translateX.value = initialTranslateX;
44
+ const animation = withRepeat(withTiming(targetTranslateX, {
44
45
  duration: animationSpeedMs,
45
46
  easing: Easing.linear
46
- }), -1,
47
- // Infinite repeat
48
- false // Don't reverse
49
- );
47
+ }), -1, false);
50
48
  translateX.value = animation;
51
49
  return () => {
52
50
  cancelAnimation(translateX);
@@ -56,7 +54,8 @@ const ReusableMarquee = ({
56
54
  translateX.value = 0;
57
55
  return undefined;
58
56
  }
59
- }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
57
+ }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs, moveTo]); //
58
+
60
59
  const animatedStyle = useAnimatedStyle(() => {
61
60
  return {
62
61
  transform: [{
@@ -81,7 +80,7 @@ const ReusableMarquee = ({
81
80
  height: itemHeight,
82
81
  marginRight: itemSpacing
83
82
  }],
84
- children: renderItem(item, index)
83
+ children: renderItem(item, index % baseData.length)
85
84
  }, `${item.id}-${index}`))
86
85
  })
87
86
  });
@@ -1 +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","moveTo","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":[]}
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","moveTo","translateX","ONE_SET_WIDTH","DATA","length","calculatedWidth","reduce","sum","duplicatedData","initialTranslateX","targetTranslateX","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":[]}
@@ -1 +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,EAAgC,SAAS,EAAE,MAAM,cAAc,CAAC;AAYvE,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,CAAC;IAClB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,6HAUzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAgFjD,CAAC;AAaF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"Marquee.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/Marquee.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAY3D,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,CAAC;IAClB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,6HAUzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAmFjD,CAAC;AAcF,eAAe,eAAe,CAAC"}
@@ -1 +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,EAAgC,SAAS,EAAE,MAAM,cAAc,CAAC;AAYvE,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,CAAC;IAClB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,6HAUzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAgFjD,CAAC;AAaF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"Marquee.d.ts","sourceRoot":"","sources":["../../../../../src/components/Marquee/Marquee.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAoB,SAAS,EAAE,MAAM,cAAc,CAAC;AAY3D,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,CAAC;IAClB,qBAAqB,CAAC,EAAE,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,6HAUzD,oBAAoB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,YAAY,GAAG,IAmFjD,CAAC;AAcF,eAAe,eAAe,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.5.9",
4
+ "version": "1.6.0",
5
5
  "scripts": {
6
6
  "start": "expo start",
7
7
  "reset-project": "node ./scripts/reset-project.js",
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect, useMemo } from "react";
2
- import { View, StyleSheet, Dimensions, ViewStyle } from "react-native";
2
+ import { View, StyleSheet, ViewStyle } from "react-native";
3
3
  import Animated, {
4
4
  useSharedValue,
5
5
  useAnimatedStyle,
@@ -36,11 +36,11 @@ const ReusableMarquee = <T extends { id: string | number }>({
36
36
  }: ReusableMarqueeProps<T>): React.ReactElement | null => {
37
37
  const translateX = useSharedValue(0);
38
38
 
39
- // Memoize calculations that depend on props to avoid unnecessary recalculations
40
39
  const { ONE_SET_WIDTH, DATA } = useMemo(() => {
41
40
  if (!baseData || baseData.length === 0) {
42
41
  return { ONE_SET_WIDTH: 0, DATA: [] };
43
42
  }
43
+ // Calculate width of one set of items including spacing
44
44
  const calculatedWidth = baseData.reduce(
45
45
  (sum) => sum + itemWidth + itemSpacing,
46
46
  0
@@ -52,15 +52,20 @@ const ReusableMarquee = <T extends { id: string | number }>({
52
52
 
53
53
  useEffect(() => {
54
54
  if (DATA.length > 0 && ONE_SET_WIDTH > 0) {
55
- translateX.value = 0; // Reset position when props change
55
+ const initialTranslateX = moveTo === "left" ? 0 : -ONE_SET_WIDTH;
56
+ const targetTranslateX = moveTo === "left" ? -ONE_SET_WIDTH : 0;
57
+
58
+ translateX.value = initialTranslateX;
59
+
56
60
  const animation = withRepeat(
57
- withTiming(moveTo == "left" ? -ONE_SET_WIDTH : +ONE_SET_WIDTH, {
61
+ withTiming(targetTranslateX, {
58
62
  duration: animationSpeedMs,
59
63
  easing: Easing.linear,
60
64
  }),
61
- -1, // Infinite repeat
62
- false // Don't reverse
65
+ -1,
66
+ false
63
67
  );
68
+
64
69
  translateX.value = animation;
65
70
 
66
71
  return () => {
@@ -69,9 +74,9 @@ const ReusableMarquee = <T extends { id: string | number }>({
69
74
  } else {
70
75
  cancelAnimation(translateX);
71
76
  translateX.value = 0;
72
- return undefined;
77
+ return undefined;
73
78
  }
74
- }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs]);
79
+ }, [translateX, ONE_SET_WIDTH, DATA, animationSpeedMs, moveTo]); //
75
80
 
76
81
  const animatedStyle = useAnimatedStyle(() => {
77
82
  return {
@@ -85,7 +90,6 @@ const ReusableMarquee = <T extends { id: string | number }>({
85
90
 
86
91
  return (
87
92
  <View style={[styles.container, { height: itemHeight }, style]}>
88
- {/* Animated container holds items and moves horizontally */}
89
93
  <Animated.View
90
94
  style={[
91
95
  styles.animatedContainer,
@@ -94,7 +98,6 @@ const ReusableMarquee = <T extends { id: string | number }>({
94
98
  contentContainerStyle,
95
99
  ]}
96
100
  >
97
- {/* Map over the duplicated data */}
98
101
  {DATA.map((item, index) => (
99
102
  <View
100
103
  key={`${item.id}-${index}`}
@@ -107,7 +110,7 @@ const ReusableMarquee = <T extends { id: string | number }>({
107
110
  },
108
111
  ]}
109
112
  >
110
- {renderItem(item, index)}
113
+ {renderItem(item, index % baseData.length)}
111
114
  </View>
112
115
  ))}
113
116
  </Animated.View>
@@ -123,7 +126,8 @@ const styles = StyleSheet.create({
123
126
  animatedContainer: {
124
127
  flexDirection: "row",
125
128
  },
126
- itemWrapper: {},
129
+ itemWrapper: {
130
+ },
127
131
  });
128
132
 
129
133
  export default ReusableMarquee;