@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.
- package/lib/module/components/BottomSheet/BottomSheet.js +152 -0
- package/lib/module/components/BottomSheet/BottomSheet.js.map +1 -0
- package/lib/module/components/BottomSheet/index.js +4 -0
- package/lib/module/components/BottomSheet/index.js.map +1 -0
- package/lib/module/components/Button/BackBtn.js +28 -2
- package/lib/module/components/Button/BackBtn.js.map +1 -1
- package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js +134 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/BottomControls.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js +154 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js +173 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/MiddleControls.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js +77 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/RightControls.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js +132 -0
- package/lib/module/components/Reels/ReelsSeries/MediaControls/TopControls.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js +165 -0
- package/lib/module/components/Reels/ReelsSeries/Model/DetailsModal.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js +106 -0
- package/lib/module/components/Reels/ReelsSeries/Model/SettingModal.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js +124 -0
- package/lib/module/components/Reels/ReelsSeries/Model/UnlockModal.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js +102 -64
- package/lib/module/components/Reels/ReelsSeries/ReelsSeries.js.map +1 -1
- package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js +241 -232
- package/lib/module/components/Reels/ReelsSeries/ReelsSeriesItem.js.map +1 -1
- package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js +153 -0
- package/lib/module/components/Reels/ReelsSeries/components/AnimatedThreeLines.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/{Model → components}/Episodes.js +46 -36
- package/lib/module/components/Reels/ReelsSeries/components/Episodes.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js +35 -0
- package/lib/module/components/Reels/ReelsSeries/components/GradientOverlay.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/Like.js +37 -0
- package/lib/module/components/Reels/ReelsSeries/components/Like.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js +55 -0
- package/lib/module/components/Reels/ReelsSeries/components/RotatingLoader.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js +268 -0
- package/lib/module/components/Reels/ReelsSeries/components/Synopsis.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js +143 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/QualityControl.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js +56 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.js.map +1 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js +5 -0
- package/lib/module/components/Reels/ReelsSeries/components/VideoControls/index.js.map +1 -0
- package/lib/module/components/Reels/utils/Controls/gestureUtils.js +30 -0
- package/lib/module/components/Reels/utils/Controls/gestureUtils.js.map +1 -0
- package/lib/module/components/Reels/utils/Controls/index.js +7 -0
- package/lib/module/components/Reels/utils/Controls/index.js.map +1 -0
- package/lib/module/components/Reels/utils/Controls/overlayUtils.js +28 -0
- package/lib/module/components/Reels/utils/Controls/overlayUtils.js.map +1 -0
- package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js +27 -0
- package/lib/module/components/Reels/utils/Controls/videoControlsConstants.js.map +1 -0
- package/lib/module/components/Reels/utils/Controls/videoRef.js +5 -0
- package/lib/module/components/Reels/utils/Controls/videoRef.js.map +1 -0
- package/lib/module/components/Reels/utils/index.js +4 -0
- package/lib/module/components/Reels/utils/index.js.map +1 -0
- package/lib/module/components/Reels/utils/timeoutUtils.js +24 -0
- package/lib/module/components/Reels/utils/timeoutUtils.js.map +1 -0
- package/lib/module/components/index.js +1 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/theme/ThemeProvider.js +7 -4
- package/lib/module/theme/ThemeProvider.js.map +1 -1
- package/lib/module/theme/themes.js +3 -3
- package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +18 -0
- package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/BottomSheet/index.d.ts +3 -0
- package/lib/typescript/src/components/BottomSheet/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Button/BackBtn.d.ts +3 -1
- package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/index.d.ts +2 -0
- package/lib/typescript/src/components/Button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts +14 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/BottomControls.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts +60 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts +14 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts +14 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/RightControls.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts +12 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/MediaControls/TopControls.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts +16 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/DetailsModal.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts +15 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/SettingModal.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts +14 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/UnlockModal.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts +8 -2
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeries.d.ts.map +1 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts +8 -2
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelsSeriesItem.d.ts.map +1 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts +13 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/{Model → components}/Episodes.d.ts +3 -2
- package/lib/typescript/src/components/Reels/ReelsSeries/components/Episodes.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts +7 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/GradientOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts +7 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/Like.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts +12 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/RotatingLoader.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts +12 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/Synopsis.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts +11 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts +10 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts +3 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/components/VideoControls/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts +13 -0
- package/lib/typescript/src/components/Reels/ReelsSeries/types.d.ts.map +1 -1
- package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts +10 -0
- package/lib/typescript/src/components/Reels/utils/Controls/gestureUtils.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts +5 -0
- package/lib/typescript/src/components/Reels/utils/Controls/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts +12 -0
- package/lib/typescript/src/components/Reels/utils/Controls/overlayUtils.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts +24 -0
- package/lib/typescript/src/components/Reels/utils/Controls/videoControlsConstants.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts +3 -0
- package/lib/typescript/src/components/Reels/utils/Controls/videoRef.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/index.d.ts +2 -0
- package/lib/typescript/src/components/Reels/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts +14 -0
- package/lib/typescript/src/components/Reels/utils/timeoutUtils.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +1 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/BottomSheet/BottomSheet.tsx +195 -0
- package/src/components/BottomSheet/index.ts +2 -0
- package/src/components/Button/BackBtn.tsx +33 -0
- package/src/components/Reels/ReelsSeries/MediaControls/BottomControls.tsx +156 -0
- package/src/components/Reels/ReelsSeries/MediaControls/MediaControlsProvider.tsx +234 -0
- package/src/components/Reels/ReelsSeries/MediaControls/MiddleControls.tsx +196 -0
- package/src/components/Reels/ReelsSeries/MediaControls/RightControls.tsx +92 -0
- package/src/components/Reels/ReelsSeries/MediaControls/TopControls.tsx +163 -0
- package/src/components/Reels/ReelsSeries/Model/DetailsModal.tsx +210 -0
- package/src/components/Reels/ReelsSeries/Model/SettingModal.tsx +143 -0
- package/src/components/Reels/ReelsSeries/Model/UnlockModal.tsx +154 -0
- package/src/components/Reels/ReelsSeries/ReelsSeries.tsx +142 -74
- package/src/components/Reels/ReelsSeries/ReelsSeriesItem.tsx +349 -250
- package/src/components/Reels/ReelsSeries/components/AnimatedThreeLines.tsx +184 -0
- package/src/components/Reels/ReelsSeries/{Model → components}/Episodes.tsx +54 -33
- package/src/components/Reels/ReelsSeries/components/GradientOverlay.tsx +41 -0
- package/src/components/Reels/ReelsSeries/components/Like.tsx +40 -0
- package/src/components/Reels/ReelsSeries/components/RotatingLoader.tsx +79 -0
- package/src/components/Reels/ReelsSeries/components/Synopsis.tsx +332 -0
- package/src/components/Reels/ReelsSeries/components/VideoControls/QualityControl.tsx +190 -0
- package/src/components/Reels/ReelsSeries/components/VideoControls/SpeedControl.tsx +80 -0
- package/src/components/Reels/ReelsSeries/components/VideoControls/index.ts +2 -0
- package/src/components/Reels/ReelsSeries/types.ts +13 -2
- package/src/components/Reels/utils/Controls/gestureUtils.ts +42 -0
- package/src/components/Reels/utils/Controls/index.ts +4 -0
- package/src/components/Reels/utils/Controls/overlayUtils.ts +35 -0
- package/src/components/Reels/utils/Controls/videoControlsConstants.ts +25 -0
- package/src/components/Reels/utils/Controls/videoRef.ts +4 -0
- package/src/components/Reels/utils/index.ts +1 -0
- package/src/components/Reels/utils/timeoutUtils.ts +29 -0
- package/src/components/index.ts +1 -0
- package/src/theme/ThemeProvider.tsx +8 -2
- package/src/theme/themes.ts +3 -3
- package/lib/module/components/Reels/ReelsSeries/Model/Episodes.js.map +0 -1
- package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js +0 -212
- package/lib/module/components/Reels/ReelsSeries/Model/Synopsis.js.map +0 -1
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js +0 -182
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesDetailsModal.js.map +0 -1
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js +0 -203
- package/lib/module/components/Reels/ReelsSeries/ReelSeriesOverlay.js.map +0 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Episodes.d.ts.map +0 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts +0 -9
- package/lib/typescript/src/components/Reels/ReelsSeries/Model/Synopsis.d.ts.map +0 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts +0 -13
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.d.ts.map +0 -1
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts +0 -18
- package/lib/typescript/src/components/Reels/ReelsSeries/ReelSeriesOverlay.d.ts.map +0 -1
- package/src/components/Reels/ReelsSeries/Model/Synopsis.tsx +0 -242
- package/src/components/Reels/ReelsSeries/ReelSeriesDetailsModal.tsx +0 -209
- package/src/components/Reels/ReelsSeries/ReelSeriesOverlay.tsx +0 -185
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
|
|
5
|
+
import { BottomSheet } from "../../../../components/BottomSheet/index.js";
|
|
6
|
+
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
7
|
+
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
8
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
9
|
+
import { QualityControl, SpeedControl } from "../components/VideoControls/index.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const SettingModal = ({
|
|
12
|
+
theme,
|
|
13
|
+
speed,
|
|
14
|
+
quality,
|
|
15
|
+
videoUrl,
|
|
16
|
+
onSpeedChange,
|
|
17
|
+
onQualityChange,
|
|
18
|
+
isVisible,
|
|
19
|
+
onClose
|
|
20
|
+
}) => {
|
|
21
|
+
const [activeTab, setActiveTab] = useState('speed');
|
|
22
|
+
const handleSelect = (callback, value) => {
|
|
23
|
+
callback(value);
|
|
24
|
+
setTimeout(onClose, 200);
|
|
25
|
+
};
|
|
26
|
+
return /*#__PURE__*/_jsxs(BottomSheet, {
|
|
27
|
+
theme: theme,
|
|
28
|
+
title: "Video Settings",
|
|
29
|
+
height: "50%",
|
|
30
|
+
visible: isVisible,
|
|
31
|
+
onClose: onClose,
|
|
32
|
+
handleIndicatorStyle: {
|
|
33
|
+
backgroundColor: theme.colors.button
|
|
34
|
+
},
|
|
35
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
36
|
+
style: styles.tabContainer,
|
|
37
|
+
children: ['speed', 'quality'].map(tab => {
|
|
38
|
+
const isActive = activeTab === tab;
|
|
39
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
40
|
+
style: [styles.tab, isActive && {
|
|
41
|
+
borderBottomWidth: 2,
|
|
42
|
+
borderBottomColor: theme.colors.textPrimary
|
|
43
|
+
}],
|
|
44
|
+
onPress: () => setActiveTab(tab),
|
|
45
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
46
|
+
style: [styles.tabText, {
|
|
47
|
+
color: theme.colors.textPrimary,
|
|
48
|
+
opacity: isActive ? 1 : 0.5
|
|
49
|
+
}],
|
|
50
|
+
children: tab === 'speed' ? 'Playback' : 'Quality'
|
|
51
|
+
})
|
|
52
|
+
}, tab);
|
|
53
|
+
})
|
|
54
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
55
|
+
style: styles.contentContainer,
|
|
56
|
+
children: [activeTab === 'speed' && /*#__PURE__*/_jsx(Animated.View, {
|
|
57
|
+
entering: FadeIn.duration(150),
|
|
58
|
+
exiting: FadeOut.duration(150),
|
|
59
|
+
style: styles.animatedContent,
|
|
60
|
+
children: /*#__PURE__*/_jsx(SpeedControl, {
|
|
61
|
+
activeSpeed: speed,
|
|
62
|
+
theme: theme,
|
|
63
|
+
onSpeedChange: value => handleSelect(onSpeedChange, value)
|
|
64
|
+
})
|
|
65
|
+
}), activeTab === 'quality' && /*#__PURE__*/_jsx(Animated.View, {
|
|
66
|
+
entering: FadeIn.duration(150),
|
|
67
|
+
exiting: FadeOut.duration(150),
|
|
68
|
+
style: styles.animatedContent,
|
|
69
|
+
children: /*#__PURE__*/_jsx(QualityControl, {
|
|
70
|
+
activeQuality: quality,
|
|
71
|
+
videoUrl: videoUrl,
|
|
72
|
+
theme: theme,
|
|
73
|
+
onQualityChange: value => handleSelect(onQualityChange, value)
|
|
74
|
+
})
|
|
75
|
+
})]
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default SettingModal;
|
|
80
|
+
const styles = StyleSheet.create({
|
|
81
|
+
tabContainer: {
|
|
82
|
+
flexDirection: 'row',
|
|
83
|
+
paddingHorizontal: moderateScale(16),
|
|
84
|
+
marginTop: verticalScale(10)
|
|
85
|
+
},
|
|
86
|
+
tab: {
|
|
87
|
+
flex: 1,
|
|
88
|
+
alignItems: 'center',
|
|
89
|
+
paddingBottom: 8,
|
|
90
|
+
marginHorizontal: moderateScale(12)
|
|
91
|
+
},
|
|
92
|
+
tabText: {
|
|
93
|
+
fontSize: RFValue(14),
|
|
94
|
+
fontWeight: '700'
|
|
95
|
+
},
|
|
96
|
+
contentContainer: {
|
|
97
|
+
flex: 1,
|
|
98
|
+
marginTop: verticalScale(20),
|
|
99
|
+
paddingHorizontal: moderateScale(16)
|
|
100
|
+
},
|
|
101
|
+
animatedContent: {
|
|
102
|
+
width: '100%',
|
|
103
|
+
minHeight: verticalScale(200)
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=SettingModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","View","Text","TouchableOpacity","StyleSheet","BottomSheet","Animated","FadeIn","FadeOut","moderateScale","verticalScale","RFValue","QualityControl","SpeedControl","jsx","_jsx","jsxs","_jsxs","SettingModal","theme","speed","quality","videoUrl","onSpeedChange","onQualityChange","isVisible","onClose","activeTab","setActiveTab","handleSelect","callback","value","setTimeout","title","height","visible","handleIndicatorStyle","backgroundColor","colors","button","children","style","styles","tabContainer","map","tab","isActive","borderBottomWidth","borderBottomColor","textPrimary","onPress","tabText","color","opacity","contentContainer","entering","duration","exiting","animatedContent","activeSpeed","activeQuality","create","flexDirection","paddingHorizontal","marginTop","flex","alignItems","paddingBottom","marginHorizontal","fontSize","fontWeight","width","minHeight"],"sourceRoot":"../../../../../../src","sources":["components/Reels/ReelsSeries/Model/SettingModal.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AACvE,SAASC,WAAW,QAAQ,6CAAoC;AAChE,OAAOC,QAAQ,IAAIC,MAAM,EAAEC,OAAO,QAAQ,yBAAyB;AACnE,SAASC,aAAa,EAAEC,aAAa,QAAQ,2BAA2B;AACxE,SAASC,OAAO,QAAQ,kCAAkC;AAE1D,SAASC,cAAc,EAAEC,YAAY,QAAQ,sCAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAe3E,MAAMC,YAAyC,GAAGA,CAAC;EACjDC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,aAAa;EACbC,eAAe;EACfC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAG5B,QAAQ,CAAsB,OAAO,CAAC;EAExE,MAAM6B,YAAY,GAAGA,CAACC,QAAa,EAAEC,KAAU,KAAK;IAClDD,QAAQ,CAACC,KAAK,CAAC;IACfC,UAAU,CAACN,OAAO,EAAE,GAAG,CAAC;EAC1B,CAAC;EAED,oBACET,KAAA,CAACZ,WAAW;IACVc,KAAK,EAAEA,KAAM;IACbc,KAAK,EAAC,gBAAgB;IACtBC,MAAM,EAAC,KAAK;IACZC,OAAO,EAAEV,SAAU;IACnBC,OAAO,EAAEA,OAAQ;IACjBU,oBAAoB,EAAE;MAAEC,eAAe,EAAElB,KAAK,CAACmB,MAAM,CAACC;IAAO,CAAE;IAAAC,QAAA,gBAG/DzB,IAAA,CAACd,IAAI;MAACwC,KAAK,EAAEC,MAAM,CAACC,YAAa;MAAAH,QAAA,EAC9B,CAAC,OAAO,EAAE,SAAS,CAAC,CAACI,GAAG,CAAEC,GAAG,IAAK;QACjC,MAAMC,QAAQ,GAAGnB,SAAS,KAAKkB,GAAG;QAClC,oBACE9B,IAAA,CAACZ,gBAAgB;UAEfsC,KAAK,EAAE,CACLC,MAAM,CAACG,GAAG,EACVC,QAAQ,IAAI;YACVC,iBAAiB,EAAE,CAAC;YACpBC,iBAAiB,EAAE7B,KAAK,CAACmB,MAAM,CAACW;UAClC,CAAC,CACD;UACFC,OAAO,EAAEA,CAAA,KAAMtB,YAAY,CAACiB,GAA0B,CAAE;UAAAL,QAAA,eAExDzB,IAAA,CAACb,IAAI;YACHuC,KAAK,EAAE,CACLC,MAAM,CAACS,OAAO,EACd;cACEC,KAAK,EAAEjC,KAAK,CAACmB,MAAM,CAACW,WAAW;cAC/BI,OAAO,EAAEP,QAAQ,GAAG,CAAC,GAAG;YAC1B,CAAC,CACD;YAAAN,QAAA,EAEDK,GAAG,KAAK,OAAO,GAAG,UAAU,GAAG;UAAS,CACrC;QAAC,GApBFA,GAqBW,CAAC;MAEvB,CAAC;IAAC,CACE,CAAC,eAGP5B,KAAA,CAAChB,IAAI;MAACwC,KAAK,EAAEC,MAAM,CAACY,gBAAiB;MAAAd,QAAA,GAClCb,SAAS,KAAK,OAAO,iBACpBZ,IAAA,CAACT,QAAQ,CAACL,IAAI;QACZsD,QAAQ,EAAEhD,MAAM,CAACiD,QAAQ,CAAC,GAAG,CAAE;QAC/BC,OAAO,EAAEjD,OAAO,CAACgD,QAAQ,CAAC,GAAG,CAAE;QAC/Bf,KAAK,EAAEC,MAAM,CAACgB,eAAgB;QAAAlB,QAAA,eAE9BzB,IAAA,CAACF,YAAY;UACX8C,WAAW,EAAEvC,KAAM;UACnBD,KAAK,EAAEA,KAAM;UACbI,aAAa,EAAGQ,KAAK,IAAKF,YAAY,CAACN,aAAa,EAAEQ,KAAK;QAAE,CAC9D;MAAC,CACW,CAChB,EAEAJ,SAAS,KAAK,SAAS,iBACtBZ,IAAA,CAACT,QAAQ,CAACL,IAAI;QACZsD,QAAQ,EAAEhD,MAAM,CAACiD,QAAQ,CAAC,GAAG,CAAE;QAC/BC,OAAO,EAAEjD,OAAO,CAACgD,QAAQ,CAAC,GAAG,CAAE;QAC/Bf,KAAK,EAAEC,MAAM,CAACgB,eAAgB;QAAAlB,QAAA,eAE9BzB,IAAA,CAACH,cAAc;UACbgD,aAAa,EAAEvC,OAAQ;UACvBC,QAAQ,EAAEA,QAAS;UACnBH,KAAK,EAAEA,KAAM;UACbK,eAAe,EAAGO,KAAK,IAAKF,YAAY,CAACL,eAAe,EAAEO,KAAK;QAAE,CAClE;MAAC,CACW,CAChB;IAAA,CACG,CAAC;EAAA,CACI,CAAC;AAElB,CAAC;AAED,eAAeb,YAAY;AAE3B,MAAMwB,MAAM,GAAGtC,UAAU,CAACyD,MAAM,CAAC;EAC/BlB,YAAY,EAAE;IACZmB,aAAa,EAAE,KAAK;IACpBC,iBAAiB,EAAEtD,aAAa,CAAC,EAAE,CAAC;IACpCuD,SAAS,EAAEtD,aAAa,CAAC,EAAE;EAC7B,CAAC;EACDmC,GAAG,EAAE;IACHoB,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,CAAC;IAChBC,gBAAgB,EAAE3D,aAAa,CAAC,EAAE;EACpC,CAAC;EACD0C,OAAO,EAAE;IACPkB,QAAQ,EAAE1D,OAAO,CAAC,EAAE,CAAC;IACrB2D,UAAU,EAAE;EACd,CAAC;EACDhB,gBAAgB,EAAE;IAChBW,IAAI,EAAE,CAAC;IACPD,SAAS,EAAEtD,aAAa,CAAC,EAAE,CAAC;IAC5BqD,iBAAiB,EAAEtD,aAAa,CAAC,EAAE;EACrC,CAAC;EACDiD,eAAe,EAAE;IACfa,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE9D,aAAa,CAAC,GAAG;EAC9B;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View, Image } from 'react-native';
|
|
5
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
6
|
+
import { Button } from "../../../Button/index.js";
|
|
7
|
+
import { Text } from "../../../Text/index.js";
|
|
8
|
+
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
9
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
10
|
+
import { BottomSheet } from "../../../BottomSheet/index.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const UnLockModal = ({
|
|
13
|
+
episode,
|
|
14
|
+
data,
|
|
15
|
+
theme,
|
|
16
|
+
isVisible,
|
|
17
|
+
onClose,
|
|
18
|
+
onUnlockPress
|
|
19
|
+
}) => {
|
|
20
|
+
return /*#__PURE__*/_jsx(BottomSheet, {
|
|
21
|
+
theme: theme,
|
|
22
|
+
visible: isVisible,
|
|
23
|
+
onClose: onClose,
|
|
24
|
+
height: "55%" // prevent overflow
|
|
25
|
+
,
|
|
26
|
+
showCloseButton: true,
|
|
27
|
+
scrollable: false,
|
|
28
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
29
|
+
colors: [theme.colors.background, theme.colors.background],
|
|
30
|
+
style: styles.gradientContainer,
|
|
31
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
32
|
+
style: styles.contentWrapper,
|
|
33
|
+
children: [data.thumbnail ? /*#__PURE__*/_jsx(Image, {
|
|
34
|
+
source: {
|
|
35
|
+
uri: data.thumbnail
|
|
36
|
+
},
|
|
37
|
+
style: styles.thumbnail,
|
|
38
|
+
resizeMode: "cover"
|
|
39
|
+
}) : null, /*#__PURE__*/_jsx(Text, {
|
|
40
|
+
numberOfLines: 2,
|
|
41
|
+
ellipsizeMode: "tail",
|
|
42
|
+
style: [styles.title, {
|
|
43
|
+
color: theme.colors.textPrimary
|
|
44
|
+
}],
|
|
45
|
+
children: data.title
|
|
46
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
47
|
+
numberOfLines: 3,
|
|
48
|
+
ellipsizeMode: "tail",
|
|
49
|
+
style: [styles.description, {
|
|
50
|
+
color: theme.colors.textSecondary
|
|
51
|
+
}],
|
|
52
|
+
children: data.description
|
|
53
|
+
}), /*#__PURE__*/_jsx(Button.Primary, {
|
|
54
|
+
theme: {
|
|
55
|
+
dark: theme.colors,
|
|
56
|
+
light: theme.colors
|
|
57
|
+
},
|
|
58
|
+
title: "Unlock Now",
|
|
59
|
+
onPress: () => onUnlockPress?.(episode),
|
|
60
|
+
containerStyle: styles.unlockButton
|
|
61
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
62
|
+
numberOfLines: 2,
|
|
63
|
+
ellipsizeMode: "tail",
|
|
64
|
+
style: [styles.smallNote, {
|
|
65
|
+
color: theme.colors.textSecondary
|
|
66
|
+
}],
|
|
67
|
+
children: "Unlocking gives you full access to this and all future episodes."
|
|
68
|
+
})]
|
|
69
|
+
})
|
|
70
|
+
})
|
|
71
|
+
}, 'UnlockModal');
|
|
72
|
+
};
|
|
73
|
+
export default UnLockModal;
|
|
74
|
+
const styles = StyleSheet.create({
|
|
75
|
+
gradientContainer: {
|
|
76
|
+
flex: 1,
|
|
77
|
+
paddingTop: verticalScale(10),
|
|
78
|
+
marginHorizontal: moderateScale(15)
|
|
79
|
+
},
|
|
80
|
+
contentWrapper: {
|
|
81
|
+
flex: 1,
|
|
82
|
+
alignItems: 'center',
|
|
83
|
+
justifyContent: 'flex-start',
|
|
84
|
+
paddingTop: verticalScale(8),
|
|
85
|
+
paddingHorizontal: moderateScale(8)
|
|
86
|
+
},
|
|
87
|
+
thumbnail: {
|
|
88
|
+
width: moderateScale(110),
|
|
89
|
+
height: moderateScale(150),
|
|
90
|
+
borderRadius: moderateScale(10),
|
|
91
|
+
marginBottom: verticalScale(10),
|
|
92
|
+
flexShrink: 0 // Prevents image from shrinking
|
|
93
|
+
},
|
|
94
|
+
title: {
|
|
95
|
+
fontSize: RFValue(17),
|
|
96
|
+
fontWeight: '700',
|
|
97
|
+
textAlign: 'center',
|
|
98
|
+
marginBottom: verticalScale(5),
|
|
99
|
+
paddingHorizontal: moderateScale(10),
|
|
100
|
+
width: '95%',
|
|
101
|
+
flexShrink: 1 // prevents overflow
|
|
102
|
+
},
|
|
103
|
+
description: {
|
|
104
|
+
fontSize: RFValue(12),
|
|
105
|
+
textAlign: 'center',
|
|
106
|
+
marginBottom: verticalScale(15),
|
|
107
|
+
paddingHorizontal: moderateScale(20),
|
|
108
|
+
lineHeight: RFValue(16),
|
|
109
|
+
width: '95%',
|
|
110
|
+
flexShrink: 1 // prevents layout overflow
|
|
111
|
+
},
|
|
112
|
+
unlockButton: {
|
|
113
|
+
width: '95%',
|
|
114
|
+
marginBottom: verticalScale(10)
|
|
115
|
+
},
|
|
116
|
+
smallNote: {
|
|
117
|
+
fontSize: RFValue(10),
|
|
118
|
+
opacity: 0.7,
|
|
119
|
+
textAlign: 'center',
|
|
120
|
+
width: '95%',
|
|
121
|
+
flexShrink: 1 // ensures it stays inside modal
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=UnlockModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","Image","LinearGradient","Button","Text","moderateScale","verticalScale","RFValue","BottomSheet","jsx","_jsx","jsxs","_jsxs","UnLockModal","episode","data","theme","isVisible","onClose","onUnlockPress","visible","height","showCloseButton","scrollable","children","colors","background","style","styles","gradientContainer","contentWrapper","thumbnail","source","uri","resizeMode","numberOfLines","ellipsizeMode","title","color","textPrimary","description","textSecondary","Primary","dark","light","onPress","containerStyle","unlockButton","smallNote","create","flex","paddingTop","marginHorizontal","alignItems","justifyContent","paddingHorizontal","width","borderRadius","marginBottom","flexShrink","fontSize","fontWeight","textAlign","lineHeight","opacity"],"sourceRoot":"../../../../../../src","sources":["components/Reels/ReelsSeries/Model/UnlockModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useState, useCallback, useRef, useMemo } from 'react';
|
|
4
|
-
import { FlatList, Dimensions, StyleSheet,
|
|
4
|
+
import { FlatList, Dimensions, StyleSheet, Platform } from 'react-native';
|
|
5
5
|
import { debounce } from 'lodash';
|
|
6
6
|
import ReelsSeriesItem from "./ReelsSeriesItem.js";
|
|
7
7
|
import { verticalScale } from 'react-native-size-matters';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
9
|
+
import { useInternalTheme } from "../../../theme/hook/index.js";
|
|
10
|
+
import { View } from "../../View/index.js";
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
12
|
const {
|
|
11
13
|
height
|
|
12
14
|
} = Dimensions.get('window');
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
+
const PRELOAD_RANGE = 3;
|
|
16
|
+
const VIEWABILITY_THRESHOLD = 80;
|
|
17
|
+
const DEBOUNCE_DELAY = 100;
|
|
15
18
|
export const ReelsSeries = ({
|
|
16
19
|
data,
|
|
17
20
|
autoScroll,
|
|
@@ -20,102 +23,137 @@ export const ReelsSeries = ({
|
|
|
20
23
|
onEpisodesPress,
|
|
21
24
|
onSharePress,
|
|
22
25
|
onSearchPress,
|
|
23
|
-
|
|
26
|
+
onBackPress,
|
|
27
|
+
isFocused = true,
|
|
28
|
+
tabBarHeight,
|
|
29
|
+
isFullScreen = false,
|
|
30
|
+
theme: overrideTheme,
|
|
31
|
+
onEpisodeUnlockPress
|
|
24
32
|
}) => {
|
|
33
|
+
const {
|
|
34
|
+
theme
|
|
35
|
+
} = useInternalTheme(overrideTheme);
|
|
36
|
+
const insets = useSafeAreaInsets();
|
|
25
37
|
const [currentVisibleIndex, setCurrentVisibleIndex] = useState(0);
|
|
26
38
|
const listRef = useRef(null);
|
|
39
|
+
|
|
40
|
+
// Computed values
|
|
41
|
+
const calculatedTabBarHeight = useMemo(() => tabBarHeight ?? insets.bottom + verticalScale(Platform.OS === 'android' ? 45 : 30), [tabBarHeight, insets.bottom]);
|
|
42
|
+
const SCREEN_HEIGHT = useMemo(() => isFullScreen ? height - insets.bottom : height - calculatedTabBarHeight, [isFullScreen, insets.bottom, calculatedTabBarHeight]);
|
|
43
|
+
const backgroundColor = useMemo(() => isFullScreen ? theme.colors.black : theme.colors.background, [isFullScreen, theme.colors.black, theme.colors.background]);
|
|
44
|
+
|
|
45
|
+
// Flatten all episodes from all series items and track which series they belong to
|
|
46
|
+
const flattenedEpisodes = useMemo(() => {
|
|
47
|
+
const episodes = [];
|
|
48
|
+
data.forEach((seriesItem, seriesIndex) => {
|
|
49
|
+
seriesItem.episodes?.forEach(episode => {
|
|
50
|
+
episodes.push({
|
|
51
|
+
...episode,
|
|
52
|
+
seriesIndex
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return episodes;
|
|
57
|
+
}, [data]);
|
|
27
58
|
const keyExtractor = useCallback(item => item.episodeId.toString(), []);
|
|
28
|
-
const
|
|
29
|
-
|
|
59
|
+
const handlePlayEpisode = useCallback(episode => {
|
|
60
|
+
const index = flattenedEpisodes.findIndex(ep => ep.episodeId === episode.episodeId);
|
|
61
|
+
if (index < 0 || index >= flattenedEpisodes.length) return;
|
|
30
62
|
listRef.current?.scrollToIndex({
|
|
31
63
|
index,
|
|
32
64
|
animated: true
|
|
33
65
|
});
|
|
34
66
|
setCurrentVisibleIndex(index);
|
|
35
|
-
}, [
|
|
67
|
+
}, [flattenedEpisodes]);
|
|
36
68
|
const renderReelList = useCallback(({
|
|
37
69
|
item,
|
|
38
70
|
index
|
|
39
71
|
}) => {
|
|
72
|
+
const seriesData = data[item.seriesIndex];
|
|
73
|
+
if (!seriesData) return null;
|
|
74
|
+
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
|
+
const {
|
|
77
|
+
seriesIndex,
|
|
78
|
+
...episode
|
|
79
|
+
} = item;
|
|
80
|
+
const isVisible = index === currentVisibleIndex && isFocused;
|
|
81
|
+
const preload = Math.abs(index - currentVisibleIndex) <= PRELOAD_RANGE;
|
|
40
82
|
return /*#__PURE__*/_jsx(ReelsSeriesItem, {
|
|
41
|
-
reel:
|
|
42
|
-
data:
|
|
83
|
+
reel: episode,
|
|
84
|
+
data: seriesData,
|
|
43
85
|
videoHeight: SCREEN_HEIGHT,
|
|
44
86
|
onLikePress: onLikePress,
|
|
45
87
|
onEpisodesPress: () => onEpisodesPress?.(item.episodeId),
|
|
46
88
|
onSharePress: () => onSharePress?.(item.episodeId),
|
|
47
|
-
isVisible:
|
|
89
|
+
isVisible: isVisible,
|
|
48
90
|
activeEpisodeIndex: currentVisibleIndex,
|
|
49
|
-
preload:
|
|
50
|
-
onEpisodeSelect:
|
|
51
|
-
autoScroll: autoScroll
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
91
|
+
preload: preload,
|
|
92
|
+
onEpisodeSelect: handlePlayEpisode,
|
|
93
|
+
autoScroll: autoScroll,
|
|
94
|
+
theme: theme,
|
|
95
|
+
onBackPress: onBackPress,
|
|
96
|
+
onSearchPress: onSearchPress,
|
|
97
|
+
onEpisodeUnlockPress: onEpisodeUnlockPress
|
|
98
|
+
});
|
|
99
|
+
}, [data, currentVisibleIndex, isFocused, SCREEN_HEIGHT, onLikePress, handlePlayEpisode, autoScroll, theme, onBackPress, onSearchPress, onEpisodeUnlockPress, onEpisodesPress, onSharePress]);
|
|
100
|
+
|
|
101
|
+
// Viewability configuration
|
|
55
102
|
const viewabilityConfig = useRef({
|
|
56
|
-
itemVisiblePercentThreshold:
|
|
103
|
+
itemVisiblePercentThreshold: VIEWABILITY_THRESHOLD
|
|
57
104
|
}).current;
|
|
58
105
|
const onViewableItemsChanged = useRef(debounce(({
|
|
59
106
|
viewableItems
|
|
60
107
|
}) => {
|
|
61
|
-
|
|
62
|
-
|
|
108
|
+
const visibleIndex = viewableItems[0]?.index;
|
|
109
|
+
if (visibleIndex !== undefined && visibleIndex !== null && visibleIndex >= 0) {
|
|
110
|
+
setCurrentVisibleIndex(visibleIndex);
|
|
63
111
|
}
|
|
64
|
-
},
|
|
112
|
+
}, DEBOUNCE_DELAY)).current;
|
|
65
113
|
const getItemLayout = useCallback((_, index) => ({
|
|
66
114
|
length: SCREEN_HEIGHT,
|
|
67
115
|
offset: SCREEN_HEIGHT * index,
|
|
68
116
|
index
|
|
69
|
-
}), []);
|
|
70
|
-
return /*#__PURE__*/
|
|
71
|
-
style:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
top: verticalScale(40),
|
|
77
|
-
right: 16
|
|
117
|
+
}), [SCREEN_HEIGHT]);
|
|
118
|
+
return /*#__PURE__*/_jsx(View, {
|
|
119
|
+
style: styles.mainContainer,
|
|
120
|
+
backgroundColor: backgroundColor,
|
|
121
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
122
|
+
style: [styles.container, {
|
|
123
|
+
height: SCREEN_HEIGHT
|
|
78
124
|
}],
|
|
79
|
-
|
|
80
|
-
children: /*#__PURE__*/_jsx(
|
|
81
|
-
|
|
82
|
-
|
|
125
|
+
backgroundColor: backgroundColor,
|
|
126
|
+
children: /*#__PURE__*/_jsx(FlatList, {
|
|
127
|
+
ref: listRef,
|
|
128
|
+
data: flattenedEpisodes,
|
|
129
|
+
keyExtractor: keyExtractor,
|
|
130
|
+
renderItem: renderReelList,
|
|
131
|
+
onEndReached: onEndReached,
|
|
132
|
+
pagingEnabled: true,
|
|
133
|
+
viewabilityConfig: viewabilityConfig,
|
|
134
|
+
disableIntervalMomentum: true,
|
|
135
|
+
removeClippedSubviews: true,
|
|
136
|
+
maxToRenderPerBatch: 2,
|
|
137
|
+
onViewableItemsChanged: onViewableItemsChanged,
|
|
138
|
+
initialNumToRender: 1,
|
|
139
|
+
onEndReachedThreshold: 0.1,
|
|
140
|
+
decelerationRate: "fast",
|
|
141
|
+
showsVerticalScrollIndicator: false,
|
|
142
|
+
scrollEventThrottle: 16,
|
|
143
|
+
snapToInterval: SCREEN_HEIGHT,
|
|
144
|
+
snapToAlignment: "start",
|
|
145
|
+
getItemLayout: getItemLayout
|
|
83
146
|
})
|
|
84
|
-
})
|
|
85
|
-
ref: listRef,
|
|
86
|
-
data: data.episodes || [],
|
|
87
|
-
keyExtractor: keyExtractor,
|
|
88
|
-
renderItem: memoizedRenderReelList,
|
|
89
|
-
windowSize: 2,
|
|
90
|
-
onEndReached: onEndReached,
|
|
91
|
-
pagingEnabled: true,
|
|
92
|
-
viewabilityConfig: viewabilityConfig,
|
|
93
|
-
disableIntervalMomentum: true,
|
|
94
|
-
removeClippedSubviews: true,
|
|
95
|
-
maxToRenderPerBatch: 2,
|
|
96
|
-
onViewableItemsChanged: onViewableItemsChanged,
|
|
97
|
-
initialNumToRender: 1,
|
|
98
|
-
onEndReachedThreshold: 0.1,
|
|
99
|
-
decelerationRate: "fast",
|
|
100
|
-
showsVerticalScrollIndicator: false,
|
|
101
|
-
scrollEventThrottle: 16,
|
|
102
|
-
snapToInterval: SCREEN_HEIGHT,
|
|
103
|
-
snapToAlignment: "start",
|
|
104
|
-
getItemLayout: getItemLayout,
|
|
105
|
-
contentContainerStyle: {
|
|
106
|
-
paddingBottom: TAB_BAR_HEIGHT
|
|
107
|
-
}
|
|
108
|
-
})]
|
|
147
|
+
})
|
|
109
148
|
});
|
|
110
149
|
};
|
|
111
150
|
export default ReelsSeries;
|
|
112
151
|
const styles = StyleSheet.create({
|
|
113
|
-
|
|
152
|
+
mainContainer: {
|
|
114
153
|
flex: 1
|
|
115
154
|
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
zIndex: 10
|
|
155
|
+
container: {
|
|
156
|
+
overflow: 'hidden'
|
|
119
157
|
}
|
|
120
158
|
});
|
|
121
159
|
//# sourceMappingURL=ReelsSeries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useCallback","useRef","useMemo","FlatList","Dimensions","StyleSheet","
|
|
1
|
+
{"version":3,"names":["React","useState","useCallback","useRef","useMemo","FlatList","Dimensions","StyleSheet","Platform","debounce","ReelsSeriesItem","verticalScale","useSafeAreaInsets","useInternalTheme","View","jsx","_jsx","height","get","PRELOAD_RANGE","VIEWABILITY_THRESHOLD","DEBOUNCE_DELAY","ReelsSeries","data","autoScroll","onEndReached","onLikePress","onEpisodesPress","onSharePress","onSearchPress","onBackPress","isFocused","tabBarHeight","isFullScreen","theme","overrideTheme","onEpisodeUnlockPress","insets","currentVisibleIndex","setCurrentVisibleIndex","listRef","calculatedTabBarHeight","bottom","OS","SCREEN_HEIGHT","backgroundColor","colors","black","background","flattenedEpisodes","episodes","forEach","seriesItem","seriesIndex","episode","push","keyExtractor","item","episodeId","toString","handlePlayEpisode","index","findIndex","ep","length","current","scrollToIndex","animated","renderReelList","seriesData","isVisible","preload","Math","abs","reel","videoHeight","activeEpisodeIndex","onEpisodeSelect","viewabilityConfig","itemVisiblePercentThreshold","onViewableItemsChanged","viewableItems","visibleIndex","undefined","getItemLayout","_","offset","style","styles","mainContainer","children","container","ref","renderItem","pagingEnabled","disableIntervalMomentum","removeClippedSubviews","maxToRenderPerBatch","initialNumToRender","onEndReachedThreshold","decelerationRate","showsVerticalScrollIndicator","scrollEventThrottle","snapToInterval","snapToAlignment","create","flex","overflow"],"sourceRoot":"../../../../../src","sources":["components/Reels/ReelsSeries/ReelsSeries.tsx"],"mappings":"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","ignoreList":[]}
|