@zezosoft/zezo-ott-react-native-ui-kit 1.1.0 → 1.1.1

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.
Files changed (178) hide show
  1. package/lib/module/components/BottomSheet/BottomSheet.js +152 -0
  2. package/lib/module/components/BottomSheet/BottomSheet.js.map +1 -0
  3. package/lib/module/components/BottomSheet/index.js +4 -0
  4. package/lib/module/components/BottomSheet/index.js.map +1 -0
  5. package/lib/module/components/Button/BackBtn.js +28 -2
  6. package/lib/module/components/Button/BackBtn.js.map +1 -1
  7. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js +134 -0
  8. package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js.map +1 -0
  9. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js +154 -0
  10. package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js.map +1 -0
  11. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js +173 -0
  12. package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js.map +1 -0
  13. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js +77 -0
  14. package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js.map +1 -0
  15. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js +132 -0
  16. package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js.map +1 -0
  17. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js +165 -0
  18. package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js.map +1 -0
  19. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js +106 -0
  20. package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js.map +1 -0
  21. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js +124 -0
  22. package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js.map +1 -0
  23. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +102 -64
  24. package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -1
  25. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +241 -232
  26. package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -1
  27. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js +153 -0
  28. package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js.map +1 -0
  29. package/lib/module/components/Reels/ReelsSeries/{Model → components}/Episodes.js +46 -36
  30. package/lib/module/components/Reels/ReelsSeries/components/Episodes.js.map +1 -0
  31. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js +35 -0
  32. package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js.map +1 -0
  33. package/lib/module/components/Reels/ReelsSeries/components/Like.js +37 -0
  34. package/lib/module/components/Reels/ReelsSeries/components/Like.js.map +1 -0
  35. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js +55 -0
  36. package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js.map +1 -0
  37. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js +268 -0
  38. package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js.map +1 -0
  39. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js +143 -0
  40. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js.map +1 -0
  41. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js +56 -0
  42. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js.map +1 -0
  43. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js +5 -0
  44. package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js.map +1 -0
  45. package/lib/module/components/Reels/utils/Controls/gestureUtils.js +30 -0
  46. package/lib/module/components/Reels/utils/Controls/gestureUtils.js.map +1 -0
  47. package/lib/module/components/Reels/utils/Controls/index.js +7 -0
  48. package/lib/module/components/Reels/utils/Controls/index.js.map +1 -0
  49. package/lib/module/components/Reels/utils/Controls/overlayUtils.js +28 -0
  50. package/lib/module/components/Reels/utils/Controls/overlayUtils.js.map +1 -0
  51. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js +27 -0
  52. package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js.map +1 -0
  53. package/lib/module/components/Reels/utils/Controls/videoRef.js +5 -0
  54. package/lib/module/components/Reels/utils/Controls/videoRef.js.map +1 -0
  55. package/lib/module/components/Reels/utils/index.js +4 -0
  56. package/lib/module/components/Reels/utils/index.js.map +1 -0
  57. package/lib/module/components/Reels/utils/timeoutUtils.js +24 -0
  58. package/lib/module/components/Reels/utils/timeoutUtils.js.map +1 -0
  59. package/lib/module/components/index.js +1 -0
  60. package/lib/module/components/index.js.map +1 -1
  61. package/lib/module/theme/ThemeProvider.js +7 -4
  62. package/lib/module/theme/ThemeProvider.js.map +1 -1
  63. package/lib/module/theme/themes.js +3 -3
  64. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +18 -0
  65. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +1 -0
  66. package/lib/typescript/src/components/BottomSheet/index.d.ts +3 -0
  67. package/lib/typescript/src/components/BottomSheet/index.d.ts.map +1 -0
  68. package/lib/typescript/src/components/Button/BackBtn.d.ts +3 -1
  69. package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
  70. package/lib/typescript/src/components/Button/index.d.ts +2 -0
  71. package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
  72. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts +14 -0
  73. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts.map +1 -0
  74. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts +60 -0
  75. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts.map +1 -0
  76. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts +14 -0
  77. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts.map +1 -0
  78. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts +14 -0
  79. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts.map +1 -0
  80. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts +12 -0
  81. package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts.map +1 -0
  82. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts +16 -0
  83. package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts.map +1 -0
  84. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts +15 -0
  85. package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts.map +1 -0
  86. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts +14 -0
  87. package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts.map +1 -0
  88. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +8 -2
  89. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -1
  90. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +8 -2
  91. package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -1
  92. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts +13 -0
  93. package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts.map +1 -0
  94. package/lib/typescript/src/components/Reels/ReelsSeries/{Model → components}/Episodes.d.ts +3 -2
  95. package/lib/typescript/src/components/Reels/ReelsSeries/components/Episodes.d.ts.map +1 -0
  96. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts +7 -0
  97. package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts.map +1 -0
  98. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts +7 -0
  99. package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts.map +1 -0
  100. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts +12 -0
  101. package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts.map +1 -0
  102. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts +12 -0
  103. package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts.map +1 -0
  104. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts +11 -0
  105. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts.map +1 -0
  106. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts +10 -0
  107. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts.map +1 -0
  108. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts +3 -0
  109. package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts.map +1 -0
  110. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +13 -0
  111. package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -1
  112. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts +10 -0
  113. package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts.map +1 -0
  114. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts +5 -0
  115. package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts.map +1 -0
  116. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts +12 -0
  117. package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts.map +1 -0
  118. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts +24 -0
  119. package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts.map +1 -0
  120. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts +3 -0
  121. package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts.map +1 -0
  122. package/lib/typescript/src/components/Reels/utils/index.d.ts +2 -0
  123. package/lib/typescript/src/components/Reels/utils/index.d.ts.map +1 -0
  124. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts +14 -0
  125. package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts.map +1 -0
  126. package/lib/typescript/src/components/index.d.ts +1 -0
  127. package/lib/typescript/src/components/index.d.ts.map +1 -1
  128. package/package.json +1 -1
  129. package/src/components/BottomSheet/BottomSheet.tsx +195 -0
  130. package/src/components/BottomSheet/index.ts +2 -0
  131. package/src/components/Button/BackBtn.tsx +33 -0
  132. package/src/components/Reels/ReelsSeries/MediaControls/BottomControls.tsx +156 -0
  133. package/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.tsx +234 -0
  134. package/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.tsx +196 -0
  135. package/src/components/Reels/ReelsSeries/MediaControls/RightControls.tsx +92 -0
  136. package/src/components/Reels/ReelsSeries/MediaControls/TopControls.tsx +163 -0
  137. package/src/components/Reels/ReelsSeries/Model/DetailsModal.tsx +210 -0
  138. package/src/components/Reels/ReelsSeries/Model/SettingModal.tsx +143 -0
  139. package/src/components/Reels/ReelsSeries/Model/UnlockModal.tsx +154 -0
  140. package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +142 -74
  141. package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +349 -250
  142. package/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.tsx +184 -0
  143. package/src/components/Reels/ReelsSeries/{Model → components}/Episodes.tsx +54 -33
  144. package/src/components/Reels/ReelsSeries/components/GradientOverlay.tsx +41 -0
  145. package/src/components/Reels/ReelsSeries/components/Like.tsx +40 -0
  146. package/src/components/Reels/ReelsSeries/components/RotatingLoader.tsx +79 -0
  147. package/src/components/Reels/ReelsSeries/components/Synopsis.tsx +332 -0
  148. package/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.tsx +190 -0
  149. package/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.tsx +80 -0
  150. package/src/components/Reels/ReelsSeries/components/VideoControls/index.ts +2 -0
  151. package/src/components/Reels/ReelsSeries/types.ts +13 -2
  152. package/src/components/Reels/utils/Controls/gestureUtils.ts +42 -0
  153. package/src/components/Reels/utils/Controls/index.ts +4 -0
  154. package/src/components/Reels/utils/Controls/overlayUtils.ts +35 -0
  155. package/src/components/Reels/utils/Controls/videoControlsConstants.ts +25 -0
  156. package/src/components/Reels/utils/Controls/videoRef.ts +4 -0
  157. package/src/components/Reels/utils/index.ts +1 -0
  158. package/src/components/Reels/utils/timeoutUtils.ts +29 -0
  159. package/src/components/index.ts +1 -0
  160. package/src/theme/ThemeProvider.tsx +8 -2
  161. package/src/theme/themes.ts +3 -3
  162. package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +0 -1
  163. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -212
  164. package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +0 -1
  165. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +0 -182
  166. package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +0 -1
  167. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +0 -203
  168. package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +0 -1
  169. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +0 -1
  170. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +0 -9
  171. package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +0 -1
  172. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +0 -13
  173. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +0 -1
  174. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +0 -18
  175. package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +0 -1
  176. package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +0 -242
  177. package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +0 -209
  178. package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +0 -185
@@ -1,209 +0,0 @@
1
- import React, { useState } from 'react';
2
- import {
3
- View,
4
- Text,
5
- TouchableOpacity,
6
- Image,
7
- StyleSheet,
8
- Dimensions,
9
- } from 'react-native';
10
- import Modal from 'react-native-modal';
11
- import LinearGradient from 'react-native-linear-gradient';
12
- import { X } from 'lucide-react-native';
13
- import { moderateScale, verticalScale } from 'react-native-size-matters';
14
- import { RFValue } from 'react-native-responsive-fontsize';
15
- import Episodes from './Model/Episodes';
16
- import Synopsis from './Model/Synopsis';
17
- import type { ISeriesEpisode, ISeriesItem } from './types';
18
- import { formatCount } from '../../../utils/Formater';
19
-
20
- const { height } = Dimensions.get('window');
21
-
22
- interface ReelSeriesDetailsModalProps {
23
- visible: boolean;
24
- onClose: () => void;
25
- reel: ISeriesEpisode;
26
- data: ISeriesItem;
27
- activeEpisodeIndex: number;
28
- onEpisodeSelect: (index: number) => void;
29
- }
30
-
31
- const ReelSeriesDetailsModal: React.FC<ReelSeriesDetailsModalProps> = ({
32
- visible,
33
- onClose,
34
- reel,
35
- data,
36
- activeEpisodeIndex,
37
- onEpisodeSelect,
38
- }) => {
39
- const [activeTab, setActiveTab] = useState<'synopsis' | 'episodes'>(
40
- 'synopsis'
41
- );
42
- const [routes] = useState<
43
- {
44
- key: string;
45
- title: string;
46
- }[]
47
- >([
48
- { key: 'synopsis', title: 'Synopsis' },
49
- { key: 'episodes', title: 'Episodes' },
50
- ]);
51
-
52
- return (
53
- <Modal
54
- isVisible={visible}
55
- onBackdropPress={onClose}
56
- swipeDirection="down"
57
- onSwipeComplete={onClose}
58
- backdropOpacity={0.5}
59
- style={{ margin: 0, justifyContent: 'flex-end' }}
60
- propagateSwipe
61
- >
62
- <LinearGradient
63
- colors={['rgba(103,85,35,1)', 'rgba(21,21,21,1)']}
64
- style={styles.bottomSheetContainer}
65
- >
66
- {/* Drag Handle */}
67
- <View style={styles.dragHandle} />
68
- {/* Close Button */}
69
- <TouchableOpacity onPress={onClose} style={styles.closeButtonWrapper}>
70
- <X size={moderateScale(16)} color={'#fff'} />
71
- </TouchableOpacity>
72
- {/* Creator + Title */}
73
- <View style={styles.headerRow}>
74
- <Image
75
- source={{ uri: data.thumbnail }}
76
- style={styles.reelPosterImage}
77
- />
78
- <View style={{ flex: 1 }}>
79
- <Text style={styles.reelTitleText}>{data.title}</Text>
80
- <Text style={styles.reelDescriptionText} numberOfLines={3}>
81
- {data.description}
82
- </Text>
83
- <Text style={styles.reelViewsText}>
84
- {formatCount(data.views || 0)} Views
85
- </Text>
86
- </View>
87
- </View>
88
- {/* Tab View */}
89
- <View
90
- style={{
91
- flexDirection: 'row',
92
- // justifyContent: 'space-around',
93
- marginTop: verticalScale(10),
94
- }}
95
- >
96
- {routes.map((item) => (
97
- <TouchableOpacity
98
- key={item.key}
99
- style={{
100
- borderBottomColor: 'white',
101
- borderBottomWidth:
102
- activeTab === routes.find((r) => r.key === item.key)?.key
103
- ? 2
104
- : 0,
105
- paddingBottom: 6,
106
- marginHorizontal: 12,
107
- }}
108
- onPress={() => {
109
- const tab = routes.find((r) => r.key === item.key)?.key;
110
- tab && setActiveTab(tab as 'synopsis' | 'episodes');
111
- }}
112
- >
113
- <Text
114
- style={{
115
- color: 'white',
116
- fontSize: RFValue(11),
117
- fontWeight: '700',
118
- opacity:
119
- activeTab === routes.find((r) => r.key === item.key)?.key
120
- ? 1
121
- : 0.6,
122
- }}
123
- >
124
- {item.title}
125
- </Text>
126
- </TouchableOpacity>
127
- ))}
128
- </View>
129
- {/* Tab View Content */}
130
- <View
131
- style={{
132
- flex: 1,
133
- marginTop: verticalScale(8),
134
- marginHorizontal: 12,
135
- }}
136
- >
137
- {activeTab === 'synopsis' && <Synopsis reel={reel} data={data} />}
138
- {activeTab === 'episodes' && (
139
- <Episodes
140
- reel={reel}
141
- data={data}
142
- currentReel={activeEpisodeIndex}
143
- onEpisodeSelect={onEpisodeSelect}
144
- />
145
- )}
146
- </View>
147
- </LinearGradient>
148
- </Modal>
149
- );
150
- };
151
-
152
- export default ReelSeriesDetailsModal;
153
-
154
- const styles = StyleSheet.create({
155
- bottomSheetContainer: {
156
- height: height * 0.9,
157
- borderTopLeftRadius: moderateScale(20),
158
- borderTopRightRadius: moderateScale(20),
159
- overflow: 'hidden',
160
- paddingTop: verticalScale(10),
161
- },
162
- dragHandle: {
163
- width: moderateScale(50),
164
- height: verticalScale(5),
165
- borderRadius: moderateScale(3),
166
- backgroundColor: 'rgba(255,255,255,0.5)',
167
- alignSelf: 'center',
168
- marginBottom: verticalScale(10),
169
- },
170
- closeButtonWrapper: {
171
- position: 'absolute',
172
- top: verticalScale(10),
173
- right: moderateScale(14),
174
- zIndex: 10,
175
- borderRadius: moderateScale(18),
176
- width: moderateScale(30),
177
- height: moderateScale(30),
178
- justifyContent: 'center',
179
- alignItems: 'center',
180
- backgroundColor: 'rgba(255,255,255,0.26)',
181
- },
182
- headerRow: {
183
- flexDirection: 'row',
184
- paddingHorizontal: moderateScale(16),
185
- marginBottom: verticalScale(10),
186
- },
187
- reelPosterImage: {
188
- width: moderateScale(80),
189
- height: verticalScale(100),
190
- borderRadius: moderateScale(8),
191
- marginRight: moderateScale(12),
192
- },
193
- reelTitleText: {
194
- fontSize: RFValue(14),
195
- fontWeight: '600',
196
- color: '#fff',
197
- },
198
- reelDescriptionText: {
199
- fontSize: RFValue(10),
200
- color: 'rgba(215,215,215,1)',
201
- marginBottom: verticalScale(4),
202
- marginTop: verticalScale(3.5),
203
- },
204
- reelViewsText: {
205
- fontSize: RFValue(10),
206
- color: 'rgba(215,215,215,1)',
207
- marginTop: verticalScale(2),
208
- },
209
- });
@@ -1,185 +0,0 @@
1
- import React from 'react';
2
- import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
3
- import { Heart, Forward, ChevronRight, ListVideo } from 'lucide-react-native';
4
- import { moderateScale, verticalScale } from 'react-native-size-matters';
5
- import { RFValue } from 'react-native-responsive-fontsize';
6
- import type { ISeriesEpisode, ISeriesItem } from './types';
7
-
8
- interface ICommenProps {
9
- data: ISeriesItem;
10
- currentTime: number;
11
- duration: number;
12
- onLikePress: () => void;
13
- onPlayPausePress: () => void;
14
- onEpisodesPress: () => void;
15
- onSharePress?: () => void;
16
- activeEpisodeIndex: number;
17
- }
18
-
19
- interface IReelSeriesOverlayProps extends ICommenProps {
20
- reel: ISeriesEpisode;
21
- }
22
-
23
- const ReelSeriesOverlay: React.FC<IReelSeriesOverlayProps> = ({
24
- data,
25
- currentTime,
26
- duration,
27
- onLikePress,
28
- onEpisodesPress,
29
- onSharePress,
30
- activeEpisodeIndex,
31
- }) => {
32
- return (
33
- <View style={styles.overlay}>
34
- {/* Right Side Actions */}
35
- <View style={styles.rightIcons}>
36
- <TouchableOpacity
37
- style={styles.iconBox}
38
- onPress={onLikePress}
39
- activeOpacity={0.7}
40
- >
41
- <Heart
42
- size={moderateScale(25)}
43
- color={data.isLiked ? 'red' : '#fff'}
44
- fill={data.isLiked ? 'red' : 'none'}
45
- />
46
- <Text style={[styles.iconLabel, { color: '#fff' }]}>
47
- {data.likes}
48
- </Text>
49
- </TouchableOpacity>
50
-
51
- <TouchableOpacity style={styles.iconBox} onPress={onEpisodesPress}>
52
- <ListVideo color={'#fff'} size={moderateScale(25)} />
53
- <Text style={[styles.iconLabel, { color: '#fff' }]}>Episodes</Text>
54
- </TouchableOpacity>
55
-
56
- <TouchableOpacity style={styles.iconBox} onPress={onSharePress}>
57
- <Forward color={'#fff'} size={moderateScale(25)} />
58
- <Text style={[styles.iconLabel, { color: '#fff' }]}>Share</Text>
59
- </TouchableOpacity>
60
- </View>
61
-
62
- {/* Title & Description */}
63
- <View style={styles.titleBox}>
64
- <Text style={[styles.title, { color: '#fff' }]}>
65
- {data.title.length <= 25
66
- ? data.title
67
- : data.title.slice(0, 25) + '...'}
68
- </Text>
69
- <Text
70
- numberOfLines={2}
71
- style={[
72
- styles.description,
73
- { color: '#fff', marginTop: 2.5, opacity: 0.9 },
74
- ]}
75
- >
76
- {data.description}
77
- </Text>
78
- </View>
79
-
80
- {/* Episodes Button */}
81
-
82
- <TouchableOpacity
83
- style={[styles.episodesRow, { backgroundColor: 'rgba(0,0,0,0.5)' }]}
84
- onPress={onEpisodesPress}
85
- >
86
- <View style={styles.bottomLeft}>
87
- <ListVideo
88
- color={'#fff'}
89
- width={moderateScale(20)}
90
- height={moderateScale(20)}
91
- />
92
- <Text style={[styles.episodes, { color: '#fff' }]}>
93
- {activeEpisodeIndex + 1} / {data.episodes.length} Episodes
94
- </Text>
95
- </View>
96
- <ChevronRight color={'#fff'} size={moderateScale(22)} />
97
- </TouchableOpacity>
98
-
99
- {/* Progress Bar */}
100
- <View style={styles.progressBar}>
101
- <View
102
- style={[
103
- styles.progressFill,
104
- {
105
- width: duration > 0 ? `${(currentTime / duration) * 100}%` : '0%',
106
- },
107
- ]}
108
- />
109
- {duration > 0 && (
110
- <View
111
- style={[
112
- styles.progressKnob,
113
- { left: `${(currentTime / duration) * 100}%` },
114
- ]}
115
- />
116
- )}
117
- </View>
118
- </View>
119
- );
120
- };
121
-
122
- export default ReelSeriesOverlay;
123
-
124
- const styles = StyleSheet.create({
125
- overlay: {
126
- flex: 1,
127
- justifyContent: 'flex-end',
128
- paddingBottom: verticalScale(12),
129
- paddingHorizontal: moderateScale(12),
130
- },
131
- centerPlayPauseButton: {
132
- position: 'absolute',
133
- top: '50%',
134
- left: '50%',
135
- transform: [{ translateX: -25 }, { translateY: -25 }],
136
- width: moderateScale(50),
137
- height: moderateScale(50),
138
- borderRadius: moderateScale(25),
139
- justifyContent: 'center',
140
- alignItems: 'center',
141
- zIndex: 5,
142
- },
143
- rightIcons: {
144
- position: 'absolute',
145
- bottom: verticalScale(120),
146
- right: moderateScale(10),
147
- alignItems: 'center',
148
- },
149
- iconBox: { marginVertical: verticalScale(8), alignItems: 'center' },
150
- iconLabel: { fontSize: RFValue(10), marginTop: verticalScale(4) },
151
- titleBox: { marginBottom: verticalScale(10) },
152
- following: { fontSize: RFValue(10), fontWeight: '500' },
153
- title: { fontSize: RFValue(13), fontWeight: '500' },
154
- description: { fontSize: RFValue(10) },
155
- episodesRow: {
156
- flexDirection: 'row',
157
- justifyContent: 'space-between',
158
- alignItems: 'center',
159
- borderRadius: moderateScale(8),
160
- paddingHorizontal: moderateScale(12),
161
- paddingVertical: verticalScale(8),
162
- marginBottom: verticalScale(6),
163
- },
164
- bottomLeft: { flexDirection: 'row', alignItems: 'center' },
165
- episodes: { fontSize: RFValue(13), marginLeft: moderateScale(10) },
166
- progressBar: {
167
- height: verticalScale(2),
168
- backgroundColor: 'rgba(255, 255, 255, 0.3)',
169
- borderRadius: moderateScale(1),
170
- },
171
- progressFill: {
172
- height: '100%',
173
- backgroundColor: '#fff',
174
- borderRadius: moderateScale(1),
175
- },
176
- progressKnob: {
177
- position: 'absolute',
178
- top: -verticalScale(2),
179
- width: moderateScale(7),
180
- height: moderateScale(7),
181
- borderRadius: moderateScale(5),
182
- backgroundColor: '#fff',
183
- transform: [{ translateX: -5 }],
184
- },
185
- });