@zezosoft/zezo-ott-react-native-ui-kit 1.0.0 → 1.0.2
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/README.md +1 -1
- package/lib/module/components/Account/Account.js +7 -6
- package/lib/module/components/Account/Account.js.map +1 -1
- package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +39 -27
- package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
- package/lib/module/components/Auth/Login/LoginWithEmail.js +39 -25
- package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
- package/lib/module/components/Auth/Login/LoginWithPhone.js +34 -25
- package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
- package/lib/module/components/Auth/OTP/OTP.js +61 -42
- package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
- package/lib/module/components/Auth/SignUp/SignUp.js +41 -26
- package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js +132 -0
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -0
- package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +61 -0
- package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -0
- package/lib/module/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.js +8 -17
- package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -0
- package/lib/module/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.js +25 -11
- package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -0
- package/lib/module/components/Auth/index.js +3 -1
- package/lib/module/components/Auth/index.js.map +1 -1
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js +77 -57
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
- package/lib/module/components/BlogView/BlogView.js +28 -9
- package/lib/module/components/BlogView/BlogView.js.map +1 -1
- package/lib/module/components/Button/BackBtn.js +1 -1
- package/lib/module/components/Button/BackBtn.js.map +1 -1
- package/lib/module/components/Button/MenuBtn.js +5 -3
- package/lib/module/components/Button/MenuBtn.js.map +1 -1
- package/lib/module/components/Button/PrimaryBtn.js +3 -2
- package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
- package/lib/module/components/Button/TextButton.js +3 -2
- package/lib/module/components/Button/TextButton.js.map +1 -1
- package/lib/module/components/Content/Card/Category/Category.js +3 -2
- package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js +10 -7
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/One.js +6 -4
- package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js +3 -2
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/index.js +1 -1
- package/lib/module/components/Content/Card/Sliders/index.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Five.js +7 -6
- package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Four.js +9 -7
- package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/One.js +33 -70
- package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/RotateInOut.js +6 -5
- package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Six.js +7 -5
- package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Three.js +6 -5
- package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/TopTen.js +10 -12
- package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Two.js +8 -6
- package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/components/CardPoster.js +17 -9
- package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
- package/lib/module/components/Content/Card/components/NavigateToMore.js +4 -3
- package/lib/module/components/Content/Card/components/NavigateToMore.js.map +1 -1
- package/lib/module/components/Content/Card/components/NoContentFallback.js +5 -4
- package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
- package/lib/module/components/Content/Card/components/ThumbnailCard.js +2 -1
- package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
- package/lib/module/components/Content/Content.js +21 -7
- package/lib/module/components/Content/Content.js.map +1 -1
- package/lib/module/components/Content/Sections.js +1 -1
- package/lib/module/components/Content/Sections.js.map +1 -1
- package/lib/module/components/ContentView/ContentView.js +8 -6
- package/lib/module/components/ContentView/ContentView.js.map +1 -1
- package/lib/module/components/ContentView/MoreContentList.js +211 -0
- package/lib/module/components/ContentView/MoreContentList.js.map +1 -0
- package/lib/module/components/ContentView/components/AboutSection.js +5 -4
- package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
- package/lib/module/components/ContentView/components/CastCard.js +5 -4
- package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
- package/lib/module/components/ContentView/components/EpisodeCard.js +23 -3
- package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
- package/lib/module/components/ContentView/components/GenreTags.js +2 -1
- package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
- package/lib/module/components/ContentView/components/HeroBanner.js +14 -5
- package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
- package/lib/module/components/ContentView/components/Title.js +4 -3
- package/lib/module/components/ContentView/components/Title.js.map +1 -1
- package/lib/module/components/ContentView/index.js +1 -0
- package/lib/module/components/ContentView/index.js.map +1 -1
- package/lib/module/components/Headers/AppHeader.js +20 -25
- package/lib/module/components/Headers/AppHeader.js.map +1 -1
- package/lib/module/components/Headers/One.js +1 -1
- package/lib/module/components/Headers/Three.js +5 -3
- package/lib/module/components/Headers/Three.js.map +1 -1
- package/lib/module/components/Headers/Two.js +5 -3
- package/lib/module/components/Headers/Two.js.map +1 -1
- package/lib/module/components/Input/InputOne.js +6 -4
- package/lib/module/components/Input/InputOne.js.map +1 -1
- package/lib/module/components/Input/InputTwo.js +5 -4
- package/lib/module/components/Input/InputTwo.js.map +1 -1
- package/lib/module/components/Input/PhoneNumberInput.js +12 -11
- package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
- package/lib/module/components/Keyboard/HideKeyboard.js +40 -12
- package/lib/module/components/Keyboard/HideKeyboard.js.map +1 -1
- package/lib/module/components/Logo/Logo.js +2 -1
- package/lib/module/components/Logo/Logo.js.map +1 -1
- package/lib/module/components/Search/One.js +6 -4
- package/lib/module/components/Search/One.js.map +1 -1
- package/lib/module/components/Search/components/RecentSearchesSection.js +10 -9
- package/lib/module/components/Search/components/RecentSearchesSection.js.map +1 -1
- package/lib/module/components/Search/components/SearchCard.js +6 -5
- package/lib/module/components/Search/components/SearchCard.js.map +1 -1
- package/lib/module/components/Settings/AppSettings.js +5 -4
- package/lib/module/components/Settings/AppSettings.js.map +1 -1
- package/lib/module/components/Subscription/SubOne.js +16 -15
- package/lib/module/components/Subscription/SubOne.js.map +1 -1
- package/lib/module/components/TabBar/One.js +5 -3
- package/lib/module/components/TabBar/One.js.map +1 -1
- package/lib/module/components/TabBar/Three.js +18 -14
- package/lib/module/components/TabBar/Three.js.map +1 -1
- package/lib/module/components/TabBar/Two.js +4 -2
- package/lib/module/components/TabBar/Two.js.map +1 -1
- package/lib/module/components/Text/Text.js +4 -4
- package/lib/module/components/Text/Text.js.map +1 -1
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js +7 -6
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
- package/lib/module/components/User/WatchHistory/WatchHistory.js +6 -7
- package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
- package/lib/module/components/User/WatchLater/WatchLater.js +12 -9
- package/lib/module/components/User/WatchLater/WatchLater.js.map +1 -1
- package/lib/module/components/User/components/UserAvatar.js +1 -1
- package/lib/module/components/User/components/UserAvatar.js.map +1 -1
- package/lib/module/components/User/components/UserSection.js +5 -4
- package/lib/module/components/User/components/UserSection.js.map +1 -1
- package/lib/module/components/index.js +0 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/layout/SafeAreaWrapper.js +12 -11
- package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
- package/lib/module/hooks/useInitSplashCacheSync.js +67 -63
- package/lib/module/hooks/useInitSplashCacheSync.js.map +1 -1
- package/lib/module/hooks/useKeyboard.js +7 -9
- package/lib/module/hooks/useKeyboard.js.map +1 -1
- package/lib/module/hooks/usePaginatedSection.js +10 -3
- package/lib/module/hooks/usePaginatedSection.js.map +1 -1
- package/lib/module/theme/ThemeProvider.js +55 -52
- package/lib/module/theme/ThemeProvider.js.map +1 -1
- package/lib/module/theme/hook/useTheme.js +45 -0
- package/lib/module/theme/hook/useTheme.js.map +1 -0
- package/lib/module/theme/index.js +1 -0
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/themes.js +1 -1
- package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts +9 -6
- package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts +6 -2
- package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts +6 -2
- package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/OTP/OTP.d.ts +7 -3
- package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts +6 -2
- package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts +34 -0
- package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -0
- package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashImage/SplashImage.d.ts +2 -3
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -0
- package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.d.ts +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +1 -0
- package/lib/typescript/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.d.ts +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -0
- package/lib/typescript/src/components/Auth/index.d.ts +49 -11
- package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
- package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts +5 -4
- package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
- package/lib/typescript/src/components/BlogView/BlogView.d.ts +1 -0
- package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/MenuBtn.d.ts +1 -8
- package/lib/typescript/src/components/Button/MenuBtn.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/PrimaryBtn.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/TextButton.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Category/Category.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/NowWatching/NowWatching.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Sliders/index.d.ts +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Five.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Four.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/RotateInOut.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Six.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/TopTen.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/Styles/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts +4 -0
- package/lib/typescript/src/components/Content/Card/components/CardPoster.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/NavigateToMore.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/ThumbnailCard.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Content.d.ts +1 -0
- package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/MoreContentList.d.ts +27 -0
- package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -0
- package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/index.d.ts +1 -0
- package/lib/typescript/src/components/ContentView/index.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/Three.d.ts +1 -0
- package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/Two.d.ts +1 -0
- package/lib/typescript/src/components/Headers/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/Input/InputOne.d.ts.map +1 -1
- package/lib/typescript/src/components/Input/InputTwo.d.ts.map +1 -1
- package/lib/typescript/src/components/Input/PhoneNumberInput.d.ts.map +1 -1
- package/lib/typescript/src/components/Keyboard/HideKeyboard.d.ts +1 -1
- package/lib/typescript/src/components/Keyboard/HideKeyboard.d.ts.map +1 -1
- package/lib/typescript/src/components/Logo/Logo.d.ts.map +1 -1
- package/lib/typescript/src/components/Search/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Search/components/RecentSearchesSection.d.ts.map +1 -1
- package/lib/typescript/src/components/Search/components/SearchCard.d.ts.map +1 -1
- package/lib/typescript/src/components/Settings/AppSettings.d.ts.map +1 -1
- package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
- package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/Three.d.ts +2 -2
- package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts.map +1 -1
- package/lib/typescript/src/components/User/WatchHistory/WatchHistory.d.ts.map +1 -1
- package/lib/typescript/src/components/User/WatchLater/WatchLater.d.ts.map +1 -1
- package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
- package/lib/typescript/src/components/index.d.ts +0 -1
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts +2 -4
- package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts +1 -1
- package/lib/typescript/src/hooks/useInitSplashCacheSync.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useKeyboard.d.ts.map +1 -1
- package/lib/typescript/src/hooks/usePaginatedSection.d.ts +1 -0
- package/lib/typescript/src/hooks/usePaginatedSection.d.ts.map +1 -1
- package/lib/typescript/src/theme/ThemeProvider.d.ts +8 -4
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theme/hook/useTheme.d.ts +9 -0
- package/lib/typescript/src/theme/hook/useTheme.d.ts.map +1 -0
- package/lib/typescript/src/theme/index.d.ts +1 -0
- package/lib/typescript/src/theme/index.d.ts.map +1 -1
- package/lib/typescript/src/types/content/content-view.types.d.ts +7 -3
- package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/components/Account/Account.tsx +7 -6
- package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +51 -32
- package/src/components/Auth/Login/LoginWithEmail.tsx +45 -26
- package/src/components/Auth/Login/LoginWithPhone.tsx +38 -24
- package/src/components/Auth/OTP/OTP.tsx +96 -61
- package/src/components/Auth/SignUp/SignUp.tsx +49 -31
- package/src/components/Auth/SplashScreen/SplashScreen.tsx +166 -0
- package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +66 -0
- package/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashLottie/SplashLottie.tsx +7 -19
- package/src/components/{SplashScreen → Auth/SplashScreen}/components/SplashVideo/SplashVideo.tsx +23 -14
- package/src/components/Auth/index.ts +3 -1
- package/src/components/BackgroundLayout/BackgroundLayout.tsx +72 -50
- package/src/components/BlogView/BlogView.tsx +29 -9
- package/src/components/Button/BackBtn.tsx +1 -1
- package/src/components/Button/MenuBtn.tsx +6 -9
- package/src/components/Button/PrimaryBtn.tsx +3 -2
- package/src/components/Button/TextButton.tsx +3 -2
- package/src/components/Content/Card/Category/Category.tsx +3 -2
- package/src/components/Content/Card/NowWatching/NowWatching.tsx +15 -8
- package/src/components/Content/Card/Sliders/Styles/One.tsx +4 -3
- package/src/components/Content/Card/Sliders/Styles/Two.tsx +3 -2
- package/src/components/Content/Card/Sliders/index.ts +1 -1
- package/src/components/Content/Card/Styles/Five.tsx +7 -6
- package/src/components/Content/Card/Styles/Four.tsx +7 -6
- package/src/components/Content/Card/Styles/One.tsx +44 -111
- package/src/components/Content/Card/Styles/RotateInOut.tsx +5 -5
- package/src/components/Content/Card/Styles/Six.tsx +7 -5
- package/src/components/Content/Card/Styles/Three.tsx +5 -5
- package/src/components/Content/Card/Styles/TopTen.tsx +10 -14
- package/src/components/Content/Card/Styles/Two.tsx +9 -7
- package/src/components/Content/Card/components/CardPoster.tsx +24 -11
- package/src/components/Content/Card/components/NavigateToMore.tsx +4 -3
- package/src/components/Content/Card/components/NoContentFallback.tsx +5 -4
- package/src/components/Content/Card/components/ThumbnailCard.tsx +2 -1
- package/src/components/Content/Content.tsx +38 -7
- package/src/components/Content/Sections.tsx +1 -1
- package/src/components/ContentView/ContentView.tsx +6 -6
- package/src/components/ContentView/MoreContentList.tsx +238 -0
- package/src/components/ContentView/components/AboutSection.tsx +5 -4
- package/src/components/ContentView/components/CastCard.tsx +5 -4
- package/src/components/ContentView/components/EpisodeCard.tsx +30 -4
- package/src/components/ContentView/components/GenreTags.tsx +2 -1
- package/src/components/ContentView/components/HeroBanner.tsx +10 -6
- package/src/components/ContentView/components/Title.tsx +4 -3
- package/src/components/ContentView/index.ts +1 -0
- package/src/components/Headers/AppHeader.tsx +20 -34
- package/src/components/Headers/One.tsx +1 -1
- package/src/components/Headers/Three.tsx +4 -3
- package/src/components/Headers/Two.tsx +4 -3
- package/src/components/Input/InputOne.tsx +6 -4
- package/src/components/Input/InputTwo.tsx +5 -4
- package/src/components/Input/PhoneNumberInput.tsx +12 -11
- package/src/components/Keyboard/HideKeyboard.tsx +41 -15
- package/src/components/Logo/Logo.tsx +2 -1
- package/src/components/Search/One.tsx +6 -5
- package/src/components/Search/components/RecentSearchesSection.tsx +10 -9
- package/src/components/Search/components/SearchCard.tsx +6 -5
- package/src/components/Settings/AppSettings.tsx +14 -13
- package/src/components/Subscription/SubOne.tsx +16 -15
- package/src/components/TabBar/One.tsx +6 -3
- package/src/components/TabBar/Three.tsx +28 -14
- package/src/components/TabBar/Two.tsx +4 -2
- package/src/components/Text/Text.tsx +4 -4
- package/src/components/User/DeviceSessions/DeviceSessions.tsx +7 -6
- package/src/components/User/WatchHistory/WatchHistory.tsx +5 -7
- package/src/components/User/WatchLater/WatchLater.tsx +12 -9
- package/src/components/User/components/UserAvatar.tsx +1 -1
- package/src/components/User/components/UserSection.tsx +5 -4
- package/src/components/index.ts +0 -1
- package/src/components/layout/SafeAreaWrapper.tsx +16 -9
- package/src/hooks/useInitSplashCacheSync.ts +74 -87
- package/src/hooks/useKeyboard.ts +9 -8
- package/src/hooks/usePaginatedSection.ts +7 -3
- package/src/theme/ThemeProvider.tsx +59 -55
- package/src/theme/hook/useTheme.ts +41 -0
- package/src/theme/index.ts +1 -0
- package/src/theme/themes.ts +1 -1
- package/src/types/content/content-view.types.ts +4 -2
- package/lib/module/components/SplashScreen/SplashScreen.js +0 -109
- package/lib/module/components/SplashScreen/SplashScreen.js.map +0 -1
- package/lib/module/components/SplashScreen/components/SplashImage/SplashImage.js +0 -68
- package/lib/module/components/SplashScreen/components/SplashImage/SplashImage.js.map +0 -1
- package/lib/module/components/SplashScreen/components/SplashLottie/SplashLottie.js.map +0 -1
- package/lib/module/components/SplashScreen/components/SplashVideo/SplashVideo.js.map +0 -1
- package/lib/module/components/SplashScreen/index.js +0 -9
- package/lib/module/components/SplashScreen/index.js.map +0 -1
- package/lib/typescript/src/components/SplashScreen/SplashScreen.d.ts +0 -32
- package/lib/typescript/src/components/SplashScreen/SplashScreen.d.ts.map +0 -1
- package/lib/typescript/src/components/SplashScreen/components/SplashImage/SplashImage.d.ts.map +0 -1
- package/lib/typescript/src/components/SplashScreen/components/SplashLottie/SplashLottie.d.ts.map +0 -1
- package/lib/typescript/src/components/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +0 -1
- package/lib/typescript/src/components/SplashScreen/index.d.ts +0 -6
- package/lib/typescript/src/components/SplashScreen/index.d.ts.map +0 -1
- package/src/components/SplashScreen/SplashScreen.tsx +0 -131
- package/src/components/SplashScreen/components/SplashImage/SplashImage.tsx +0 -84
- package/src/components/SplashScreen/index.ts +0 -6
|
@@ -22,11 +22,12 @@ import { Play } from 'lucide-react-native';
|
|
|
22
22
|
import Animated, { useSharedValue, useAnimatedStyle, withTiming } from 'react-native-reanimated';
|
|
23
23
|
|
|
24
24
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
25
|
-
import { useTheme } from '../../../../theme';
|
|
25
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
26
26
|
import NavigateToMore from '../components/NavigateToMore';
|
|
27
27
|
import type { IContentData, IGetSectionData, MoreFetchData } from '../../../../types';
|
|
28
28
|
import type { AppTheme, ITheme } from '../../../../theme/themes';
|
|
29
29
|
import { Text } from '../../../Text';
|
|
30
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
30
31
|
|
|
31
32
|
export interface IHistoryItem {
|
|
32
33
|
_id: string;
|
|
@@ -107,7 +108,6 @@ const NowWatchingItem = memo(
|
|
|
107
108
|
() => getStyles(appliedTheme, itemWidth, borderRadius),
|
|
108
109
|
[appliedTheme, itemWidth, borderRadius]
|
|
109
110
|
);
|
|
110
|
-
|
|
111
111
|
return (
|
|
112
112
|
<TouchableOpacity
|
|
113
113
|
style={[styles.item, itemStyle, index === 0 && styles.firstItem, isLast && { marginRight: moderateScale(12) }]}
|
|
@@ -118,7 +118,14 @@ const NowWatchingItem = memo(
|
|
|
118
118
|
{renderItemImage ? (
|
|
119
119
|
renderItemImage({ item: item.content, index })
|
|
120
120
|
) : (
|
|
121
|
-
<FastImage
|
|
121
|
+
<FastImage
|
|
122
|
+
source={{
|
|
123
|
+
uri: item.content?.thumbnail || item.content?.poster,
|
|
124
|
+
cache: FastImage.cacheControl.immutable,
|
|
125
|
+
priority: FastImage.priority.normal
|
|
126
|
+
}}
|
|
127
|
+
style={styles.poster}
|
|
128
|
+
>
|
|
122
129
|
<LinearGradient
|
|
123
130
|
colors={['rgba(0,0,0,0.95)', 'transparent']}
|
|
124
131
|
start={{ x: 0, y: 1 }}
|
|
@@ -314,14 +321,14 @@ const getStyles = (theme: ITheme, itemWidth: number, borderRadius: number) =>
|
|
|
314
321
|
marginRight: moderateScale(12)
|
|
315
322
|
},
|
|
316
323
|
firstItem: {
|
|
317
|
-
marginLeft: moderateScale(
|
|
324
|
+
marginLeft: moderateScale(10)
|
|
318
325
|
},
|
|
319
326
|
navigateToMoreContainer: {
|
|
320
|
-
paddingHorizontal: moderateScale(
|
|
327
|
+
paddingHorizontal: moderateScale(10),
|
|
321
328
|
marginBottom: verticalScale(8)
|
|
322
329
|
},
|
|
323
330
|
title: {
|
|
324
|
-
fontSize:
|
|
331
|
+
fontSize: RFValue(13),
|
|
325
332
|
fontWeight: '600'
|
|
326
333
|
},
|
|
327
334
|
cardWrapper: {
|
|
@@ -362,11 +369,11 @@ const getStyles = (theme: ITheme, itemWidth: number, borderRadius: number) =>
|
|
|
362
369
|
titleText: {
|
|
363
370
|
color: theme.colors.textPrimary,
|
|
364
371
|
fontWeight: '600',
|
|
365
|
-
fontSize:
|
|
372
|
+
fontSize: RFValue(11)
|
|
366
373
|
},
|
|
367
374
|
subTitleText: {
|
|
368
375
|
color: theme.colors.textSecondary,
|
|
369
|
-
fontSize:
|
|
376
|
+
fontSize: RFValue(10),
|
|
370
377
|
opacity: 0.85,
|
|
371
378
|
marginTop: verticalScale(2)
|
|
372
379
|
},
|
|
@@ -12,10 +12,11 @@ import LinearGradient from 'react-native-linear-gradient';
|
|
|
12
12
|
import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
13
13
|
import { Play } from 'lucide-react-native';
|
|
14
14
|
import { Text } from '../../../../Text';
|
|
15
|
-
import { useTheme } from '../../../../../theme/ThemeProvider';
|
|
16
15
|
import Display from '../../../../../utils/Display';
|
|
17
16
|
import type { IContentData, ISectionContent } from '../../../../../types';
|
|
18
17
|
import type { AppTheme } from '../../../../../theme/themes';
|
|
18
|
+
import { useTheme } from '../../../../../theme/hook/useTheme';
|
|
19
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
19
20
|
|
|
20
21
|
// Constants
|
|
21
22
|
const DEFAULT_SKELETON_COUNT = 3;
|
|
@@ -275,7 +276,7 @@ const styles = StyleSheet.create({
|
|
|
275
276
|
justifyContent: 'center'
|
|
276
277
|
},
|
|
277
278
|
playText: {
|
|
278
|
-
fontSize:
|
|
279
|
+
fontSize: RFValue(15),
|
|
279
280
|
fontWeight: 'bold',
|
|
280
281
|
maxWidth: scale(220)
|
|
281
282
|
},
|
|
@@ -310,7 +311,7 @@ const styles = StyleSheet.create({
|
|
|
310
311
|
justifyContent: 'center'
|
|
311
312
|
},
|
|
312
313
|
emptyText: {
|
|
313
|
-
fontSize:
|
|
314
|
+
fontSize: RFValue(13),
|
|
314
315
|
fontWeight: '500',
|
|
315
316
|
color: '#fff',
|
|
316
317
|
textAlign: 'center'
|
|
@@ -10,11 +10,12 @@ import FastImage from 'react-native-fast-image';
|
|
|
10
10
|
import LinearGradient from 'react-native-linear-gradient';
|
|
11
11
|
import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
12
12
|
import { Text } from '../../../../Text';
|
|
13
|
-
import { useTheme } from '../../../../../theme/
|
|
13
|
+
import { useTheme } from '../../../../../theme/hook/useTheme';
|
|
14
14
|
import Display from '../../../../../utils/Display';
|
|
15
15
|
import { ThumbnailCard } from '../../components/ThumbnailCard';
|
|
16
16
|
import type { IContentData, ISectionContent } from '../../../../../types';
|
|
17
17
|
import type { AppTheme } from '../../../../../theme/themes';
|
|
18
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
18
19
|
|
|
19
20
|
const FULL_WIDTH = Display.fullWidth;
|
|
20
21
|
const FULL_HEIGHT = FULL_WIDTH * (9 / 16);
|
|
@@ -199,7 +200,7 @@ const styles = StyleSheet.create({
|
|
|
199
200
|
justifyContent: 'center'
|
|
200
201
|
},
|
|
201
202
|
emptyText: {
|
|
202
|
-
fontSize:
|
|
203
|
+
fontSize: RFValue(13),
|
|
203
204
|
fontWeight: '500',
|
|
204
205
|
color: '#fff',
|
|
205
206
|
textAlign: 'center'
|
|
@@ -23,9 +23,10 @@ import FastImage from 'react-native-fast-image';
|
|
|
23
23
|
import CardPoster from '../components/CardPoster';
|
|
24
24
|
import NavigateToMore from '../components/NavigateToMore';
|
|
25
25
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
26
|
-
import { useTheme } from '../../../../theme';
|
|
26
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
27
27
|
import type { AppTheme, ITheme } from '../../../../theme/themes';
|
|
28
28
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
29
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
29
30
|
|
|
30
31
|
const DEFAULT_ITEM_WIDTH = moderateScale(140);
|
|
31
32
|
const DEFAULT_BORDER_RADIUS = moderateScale(5);
|
|
@@ -114,13 +115,13 @@ const MovieCardFive: React.FC<MovieCardFiveProps> = ({
|
|
|
114
115
|
borderRadius={borderRadius}
|
|
115
116
|
posterWrapperStyle={styles.image}
|
|
116
117
|
resizeMode={FastImage.resizeMode.cover}
|
|
117
|
-
isLoading={
|
|
118
|
+
isLoading={isLoading}
|
|
118
119
|
/>
|
|
119
120
|
)}
|
|
120
121
|
</TouchableOpacity>
|
|
121
122
|
);
|
|
122
123
|
},
|
|
123
|
-
[
|
|
124
|
+
[styles.item, styles.image, itemStyle, renderItemImage, appliedTheme, borderRadius, isLoading, handleItemPress]
|
|
124
125
|
);
|
|
125
126
|
if (!initialData) {
|
|
126
127
|
return null;
|
|
@@ -210,7 +211,7 @@ const getStyles = (theme: ITheme, width: number, radius: number) =>
|
|
|
210
211
|
marginVertical: verticalScale(6)
|
|
211
212
|
},
|
|
212
213
|
item: {
|
|
213
|
-
marginLeft: moderateScale(
|
|
214
|
+
marginLeft: moderateScale(10),
|
|
214
215
|
marginBottom: verticalScale(2)
|
|
215
216
|
},
|
|
216
217
|
image: {
|
|
@@ -220,11 +221,11 @@ const getStyles = (theme: ITheme, width: number, radius: number) =>
|
|
|
220
221
|
backgroundColor: theme.colors.surfaceVariant
|
|
221
222
|
},
|
|
222
223
|
navigateToMoreContainer: {
|
|
223
|
-
paddingHorizontal: moderateScale(
|
|
224
|
+
paddingHorizontal: moderateScale(10),
|
|
224
225
|
marginBottom: verticalScale(8)
|
|
225
226
|
},
|
|
226
227
|
title: {
|
|
227
|
-
fontSize:
|
|
228
|
+
fontSize: RFValue(13),
|
|
228
229
|
fontWeight: '600'
|
|
229
230
|
},
|
|
230
231
|
listContent: {
|
|
@@ -20,11 +20,12 @@ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
|
20
20
|
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
21
21
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
22
22
|
import NavigateToMore from '../components/NavigateToMore';
|
|
23
|
-
import { useTheme } from '../../../../theme';
|
|
23
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
24
24
|
import CardPoster from '../components/CardPoster';
|
|
25
25
|
import FastImage from 'react-native-fast-image';
|
|
26
26
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
27
27
|
import type { AppTheme, ITheme } from '../../../../theme/themes';
|
|
28
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
28
29
|
|
|
29
30
|
// default values
|
|
30
31
|
const DEFAULT_ITEM_WIDTH = moderateScale(100);
|
|
@@ -119,13 +120,13 @@ const MovieCardFour: React.FC<MovieCardFourProps> = ({
|
|
|
119
120
|
borderRadius={borderRadius}
|
|
120
121
|
posterWrapperStyle={styles.image}
|
|
121
122
|
resizeMode={FastImage.resizeMode.cover}
|
|
122
|
-
isLoading={
|
|
123
|
+
isLoading={isLoading}
|
|
123
124
|
/>
|
|
124
125
|
)}
|
|
125
126
|
</TouchableOpacity>
|
|
126
127
|
);
|
|
127
128
|
},
|
|
128
|
-
[
|
|
129
|
+
[styles.item, styles.image, itemStyle, renderItemImage, appliedTheme, borderRadius, isLoading, handleItemPress]
|
|
129
130
|
);
|
|
130
131
|
|
|
131
132
|
const renderSkeletonItem = ({ index }: { index: number }) => (
|
|
@@ -216,7 +217,7 @@ const getStyles = (theme: ITheme, width: number, height: number, radius: number)
|
|
|
216
217
|
marginVertical: verticalScale(6)
|
|
217
218
|
},
|
|
218
219
|
item: {
|
|
219
|
-
marginLeft: moderateScale(
|
|
220
|
+
marginLeft: moderateScale(10)
|
|
220
221
|
},
|
|
221
222
|
image: {
|
|
222
223
|
width,
|
|
@@ -225,11 +226,11 @@ const getStyles = (theme: ITheme, width: number, height: number, radius: number)
|
|
|
225
226
|
backgroundColor: theme.colors.surfaceVariant
|
|
226
227
|
},
|
|
227
228
|
navigateToMoreContainer: {
|
|
228
|
-
paddingHorizontal: moderateScale(
|
|
229
|
+
paddingHorizontal: moderateScale(10),
|
|
229
230
|
marginBottom: verticalScale(8)
|
|
230
231
|
},
|
|
231
232
|
title: {
|
|
232
|
-
fontSize:
|
|
233
|
+
fontSize: RFValue(13),
|
|
233
234
|
fontWeight: '600'
|
|
234
235
|
},
|
|
235
236
|
listContent: {
|
|
@@ -13,21 +13,21 @@ import {
|
|
|
13
13
|
type ViewStyle,
|
|
14
14
|
type TextStyle,
|
|
15
15
|
type AccessibilityProps,
|
|
16
|
-
type ListRenderItemInfo
|
|
17
|
-
type ListRenderItem
|
|
16
|
+
type ListRenderItemInfo
|
|
18
17
|
} from 'react-native';
|
|
19
18
|
import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
20
19
|
import FastImage from 'react-native-fast-image';
|
|
21
20
|
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
22
|
-
import { useTheme } from '../../../../theme';
|
|
21
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
23
22
|
import CardPoster from '../components/CardPoster';
|
|
24
23
|
import NavigateToMore from '../components/NavigateToMore';
|
|
25
24
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
26
25
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
27
|
-
import type { AppTheme } from '../../../../theme/themes';
|
|
26
|
+
import type { AppTheme, ITheme } from '../../../../theme/themes';
|
|
27
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
28
28
|
|
|
29
29
|
// Constants
|
|
30
|
-
const DEFAULT_ITEM_WIDTH = moderateScale(
|
|
30
|
+
const DEFAULT_ITEM_WIDTH = moderateScale(105);
|
|
31
31
|
const DEFAULT_ITEM_HEIGHT = moderateScale(160);
|
|
32
32
|
const DEFAULT_BORDER_RADIUS = moderateScale(6);
|
|
33
33
|
const DEFAULT_SKELETON_COUNT = 5;
|
|
@@ -80,6 +80,7 @@ const MovieCard: React.FC<MovieCardProps> = ({
|
|
|
80
80
|
const flatListRef = useRef<FlatList<IContentData>>(null);
|
|
81
81
|
const onEndReachedCalledDuringMomentum = useRef(false);
|
|
82
82
|
const { theme: appliedTheme } = useTheme(theme);
|
|
83
|
+
|
|
83
84
|
const styles = useMemo(
|
|
84
85
|
() => getStyles(appliedTheme, itemWidth, itemHeight, borderRadius),
|
|
85
86
|
[appliedTheme, itemWidth, itemHeight, borderRadius]
|
|
@@ -87,46 +88,28 @@ const MovieCard: React.FC<MovieCardProps> = ({
|
|
|
87
88
|
|
|
88
89
|
const {
|
|
89
90
|
data,
|
|
90
|
-
pagination
|
|
91
|
+
pagination,
|
|
91
92
|
loading: isPaginating,
|
|
92
93
|
loadMoreData
|
|
93
|
-
} = usePaginatedSection(section_id, moreFetchData, initialData?.data, isLoading);
|
|
94
|
-
|
|
95
|
-
const listData = useMemo(() => data ?? [], [data]);
|
|
94
|
+
} = usePaginatedSection(section_id, moreFetchData, initialData?.data || [], isLoading);
|
|
96
95
|
|
|
97
|
-
const handleItemPress = useCallback(
|
|
98
|
-
(item: IContentData) => {
|
|
99
|
-
onPressItem?.(item);
|
|
100
|
-
},
|
|
101
|
-
[onPressItem]
|
|
102
|
-
);
|
|
96
|
+
const handleItemPress = useCallback((item: IContentData) => onPressItem?.(item), [onPressItem]);
|
|
103
97
|
|
|
104
98
|
const handlePressMore = useCallback(() => {
|
|
105
|
-
|
|
106
|
-
section_id,
|
|
107
|
-
name: title,
|
|
108
|
-
type
|
|
109
|
-
});
|
|
99
|
+
onPressMore?.({ section_id, name: title, type });
|
|
110
100
|
}, [onPressMore, section_id, title, type]);
|
|
111
101
|
|
|
112
102
|
const handleEndReached = useCallback(() => {
|
|
113
|
-
if (!onEndReachedCalledDuringMomentum.current &&
|
|
103
|
+
if (!onEndReachedCalledDuringMomentum.current && pagination?.hasNextPage && pagination?.nextPage) {
|
|
114
104
|
onEndReachedCalledDuringMomentum.current = true;
|
|
115
|
-
loadMoreData(
|
|
105
|
+
loadMoreData(pagination.nextPage);
|
|
116
106
|
}
|
|
117
|
-
}, [loadMoreData,
|
|
107
|
+
}, [loadMoreData, pagination]);
|
|
118
108
|
|
|
119
109
|
const renderItem = useCallback(
|
|
120
110
|
({ item, index }: ListRenderItemInfo<IContentData>) => {
|
|
121
111
|
return (
|
|
122
|
-
<TouchableOpacity
|
|
123
|
-
style={[styles.item, index === 0 && styles.firstItem, itemStyle]}
|
|
124
|
-
onPress={() => handleItemPress(item)}
|
|
125
|
-
activeOpacity={0.8}
|
|
126
|
-
testID={`movie-card-item-${index}`}
|
|
127
|
-
accessibilityLabel={`Movie ${item.name || 'item'} ${index + 1}`}
|
|
128
|
-
accessibilityHint="Press to view movie details"
|
|
129
|
-
>
|
|
112
|
+
<TouchableOpacity style={[styles.item, itemStyle]} onPress={() => handleItemPress(item)} activeOpacity={0.8}>
|
|
130
113
|
{renderItemImage ? (
|
|
131
114
|
renderItemImage({ item, index })
|
|
132
115
|
) : (
|
|
@@ -136,49 +119,34 @@ const MovieCard: React.FC<MovieCardProps> = ({
|
|
|
136
119
|
borderRadius={borderRadius}
|
|
137
120
|
posterWrapperStyle={styles.image}
|
|
138
121
|
resizeMode={FastImage.resizeMode.cover}
|
|
139
|
-
isLoading={
|
|
122
|
+
isLoading={isLoading}
|
|
140
123
|
/>
|
|
141
124
|
)}
|
|
142
125
|
</TouchableOpacity>
|
|
143
126
|
);
|
|
144
127
|
},
|
|
145
|
-
[
|
|
146
|
-
renderItemImage,
|
|
147
|
-
styles.item,
|
|
148
|
-
styles.firstItem,
|
|
149
|
-
styles.image,
|
|
150
|
-
itemStyle,
|
|
151
|
-
appliedTheme,
|
|
152
|
-
borderRadius,
|
|
153
|
-
isPaginating,
|
|
154
|
-
handleItemPress
|
|
155
|
-
]
|
|
128
|
+
[styles.item, styles.image, itemStyle, renderItemImage, appliedTheme, borderRadius, isLoading, handleItemPress]
|
|
156
129
|
);
|
|
157
130
|
|
|
158
|
-
const renderSkeletonItem:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
</SkeletonPlaceholder>
|
|
173
|
-
),
|
|
174
|
-
[appliedTheme, itemWidth, itemHeight, borderRadius]
|
|
131
|
+
const renderSkeletonItem = ({ index }: { index: number }) => (
|
|
132
|
+
<SkeletonPlaceholder
|
|
133
|
+
key={`skeleton-${index}`}
|
|
134
|
+
highlightColor={appliedTheme.colors.skeletonHighlightColor}
|
|
135
|
+
backgroundColor={appliedTheme.colors.skeletonBaseColor}
|
|
136
|
+
>
|
|
137
|
+
<SkeletonPlaceholder.Item
|
|
138
|
+
width={itemWidth}
|
|
139
|
+
height={itemHeight}
|
|
140
|
+
borderRadius={borderRadius}
|
|
141
|
+
marginLeft={index === 0 ? moderateScale(12) : 0}
|
|
142
|
+
marginRight={moderateScale(12)}
|
|
143
|
+
/>
|
|
144
|
+
</SkeletonPlaceholder>
|
|
175
145
|
);
|
|
176
146
|
if (!initialData) {
|
|
177
147
|
return null;
|
|
178
148
|
}
|
|
179
|
-
if (!isLoading &&
|
|
180
|
-
return null;
|
|
181
|
-
}
|
|
149
|
+
if (!isLoading && data.length === 0) return null;
|
|
182
150
|
|
|
183
151
|
if (isLoading) {
|
|
184
152
|
return (
|
|
@@ -223,86 +191,51 @@ const MovieCard: React.FC<MovieCardProps> = ({
|
|
|
223
191
|
/>
|
|
224
192
|
<FlatList
|
|
225
193
|
ref={flatListRef}
|
|
226
|
-
data={
|
|
194
|
+
data={data}
|
|
227
195
|
horizontal
|
|
228
|
-
|
|
229
|
-
keyExtractor={(item, index) => `${item._id ?? item.name}-${index}`}
|
|
196
|
+
keyExtractor={(item, index) => `${item._id}-${index}`}
|
|
230
197
|
renderItem={renderItem}
|
|
198
|
+
showsHorizontalScrollIndicator={false}
|
|
231
199
|
contentContainerStyle={styles.listContent}
|
|
232
200
|
initialNumToRender={5}
|
|
233
|
-
|
|
234
|
-
windowSize={5}
|
|
201
|
+
onEndReached={handleEndReached}
|
|
235
202
|
onEndReachedThreshold={0.5}
|
|
203
|
+
onScrollBeginDrag={() => {
|
|
204
|
+
onEndReachedCalledDuringMomentum.current = false;
|
|
205
|
+
}}
|
|
236
206
|
onMomentumScrollBegin={() => {
|
|
237
207
|
onEndReachedCalledDuringMomentum.current = false;
|
|
238
208
|
}}
|
|
239
|
-
|
|
240
|
-
ListFooterComponent={
|
|
241
|
-
isPaginating ? (
|
|
242
|
-
<SkeletonPlaceholder
|
|
243
|
-
highlightColor={appliedTheme.colors.skeletonHighlightColor}
|
|
244
|
-
backgroundColor={appliedTheme.colors.skeletonBaseColor}
|
|
245
|
-
>
|
|
246
|
-
<SkeletonPlaceholder.Item
|
|
247
|
-
width={itemWidth}
|
|
248
|
-
height={itemHeight}
|
|
249
|
-
borderRadius={borderRadius}
|
|
250
|
-
marginRight={moderateScale(12)}
|
|
251
|
-
/>
|
|
252
|
-
</SkeletonPlaceholder>
|
|
253
|
-
) : null
|
|
254
|
-
}
|
|
209
|
+
ListFooterComponent={isPaginating ? renderSkeletonItem({ index: 0 }) : null}
|
|
255
210
|
/>
|
|
256
211
|
</View>
|
|
257
212
|
);
|
|
258
213
|
};
|
|
259
214
|
|
|
260
|
-
const getStyles = (theme:
|
|
215
|
+
const getStyles = (theme: ITheme, width: number, height: number, radius: number) =>
|
|
261
216
|
StyleSheet.create({
|
|
262
217
|
root: {
|
|
263
218
|
marginVertical: verticalScale(6)
|
|
264
219
|
},
|
|
265
220
|
item: {
|
|
266
|
-
|
|
267
|
-
borderRadius: radius,
|
|
268
|
-
overflow: 'hidden',
|
|
269
|
-
backgroundColor: theme.colors?.surfaceVariant ?? '#2c2c2c',
|
|
270
|
-
elevation: 2,
|
|
271
|
-
shadowColor: theme.colors?.shadow ?? '#000',
|
|
272
|
-
shadowOffset: { width: 0, height: 2 },
|
|
273
|
-
shadowOpacity: 0.1,
|
|
274
|
-
shadowRadius: 4
|
|
275
|
-
},
|
|
276
|
-
firstItem: {
|
|
277
|
-
marginLeft: moderateScale(12)
|
|
221
|
+
marginLeft: moderateScale(10)
|
|
278
222
|
},
|
|
279
223
|
image: {
|
|
280
224
|
width,
|
|
281
225
|
height,
|
|
282
226
|
borderRadius: radius,
|
|
283
|
-
backgroundColor: theme.colors
|
|
227
|
+
backgroundColor: theme.colors.surfaceVariant
|
|
284
228
|
},
|
|
285
229
|
navigateToMoreContainer: {
|
|
286
|
-
paddingHorizontal: moderateScale(
|
|
230
|
+
paddingHorizontal: moderateScale(10),
|
|
287
231
|
marginBottom: verticalScale(8)
|
|
288
232
|
},
|
|
289
233
|
title: {
|
|
290
|
-
fontSize:
|
|
234
|
+
fontSize: RFValue(13),
|
|
291
235
|
fontWeight: '600'
|
|
292
236
|
},
|
|
293
237
|
listContent: {
|
|
294
238
|
paddingRight: moderateScale(15)
|
|
295
|
-
},
|
|
296
|
-
emptyState: {
|
|
297
|
-
padding: moderateScale(12),
|
|
298
|
-
alignItems: 'center',
|
|
299
|
-
justifyContent: 'center'
|
|
300
|
-
},
|
|
301
|
-
emptyText: {
|
|
302
|
-
color: theme.colors?.textPrimary ?? '#fff',
|
|
303
|
-
fontSize: moderateScale(14),
|
|
304
|
-
fontWeight: '500',
|
|
305
|
-
textAlign: 'center'
|
|
306
239
|
}
|
|
307
240
|
});
|
|
308
241
|
|
|
@@ -19,13 +19,14 @@ import Carousel from 'react-native-snap-carousel';
|
|
|
19
19
|
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
20
20
|
import { debounce } from 'lodash';
|
|
21
21
|
|
|
22
|
-
import { useTheme } from '../../../../theme';
|
|
22
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
23
23
|
import CardPoster from '../components/CardPoster';
|
|
24
24
|
import NavigateToMore from '../components/NavigateToMore';
|
|
25
25
|
|
|
26
26
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
27
27
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
28
28
|
import type { AppTheme } from '../../../../theme/themes';
|
|
29
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
29
30
|
|
|
30
31
|
const { width, height } = Dimensions.get('window');
|
|
31
32
|
|
|
@@ -39,11 +40,11 @@ const staticStyles = StyleSheet.create({
|
|
|
39
40
|
marginVertical: verticalScale(6)
|
|
40
41
|
},
|
|
41
42
|
navigateToMoreContainer: {
|
|
42
|
-
paddingHorizontal: moderateScale(
|
|
43
|
+
paddingHorizontal: moderateScale(10),
|
|
43
44
|
marginBottom: verticalScale(8)
|
|
44
45
|
},
|
|
45
46
|
title: {
|
|
46
|
-
fontSize:
|
|
47
|
+
fontSize: RFValue(13),
|
|
47
48
|
fontWeight: '600',
|
|
48
49
|
marginHorizontal: moderateScale(15),
|
|
49
50
|
marginVertical: moderateScale(5)
|
|
@@ -205,7 +206,7 @@ const RotateCarousel: React.FC<Props> = ({
|
|
|
205
206
|
borderRadius={borderRadius}
|
|
206
207
|
posterWrapperStyle={styles.image}
|
|
207
208
|
resizeMode={FastImage.resizeMode.cover}
|
|
208
|
-
isLoading={
|
|
209
|
+
isLoading={isLoading}
|
|
209
210
|
/>
|
|
210
211
|
)}
|
|
211
212
|
</TouchableOpacity>
|
|
@@ -221,7 +222,6 @@ const RotateCarousel: React.FC<Props> = ({
|
|
|
221
222
|
renderItemImage,
|
|
222
223
|
appliedTheme,
|
|
223
224
|
borderRadius,
|
|
224
|
-
isPaginating,
|
|
225
225
|
itemWidth,
|
|
226
226
|
itemHeight,
|
|
227
227
|
handleItemPress
|
|
@@ -20,13 +20,14 @@ import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
|
20
20
|
import { moderateScale, verticalScale } from 'react-native-size-matters';
|
|
21
21
|
import FastImage from 'react-native-fast-image';
|
|
22
22
|
|
|
23
|
-
import { useTheme } from '../../../../theme';
|
|
23
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
24
24
|
import NavigateToMore from '../components/NavigateToMore';
|
|
25
25
|
import { ThumbnailCard } from '../components/ThumbnailCard';
|
|
26
26
|
import { Text } from '../../../Text';
|
|
27
27
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
28
28
|
import type { AppTheme } from '../../../../theme/themes';
|
|
29
29
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
30
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
30
31
|
const DEFAULT_ITEM_WIDTH = moderateScale(160);
|
|
31
32
|
const DEFAULT_BORDER_RADIUS = moderateScale(5);
|
|
32
33
|
const DEFAULT_SKELETON_COUNT = 3;
|
|
@@ -128,6 +129,7 @@ const MovieCardSix: React.FC<MovieCardSixProps> = ({
|
|
|
128
129
|
key={`skeleton-${index}`}
|
|
129
130
|
highlightColor={appliedTheme.colors.skeletonHighlightColor}
|
|
130
131
|
backgroundColor={appliedTheme.colors.skeletonBaseColor}
|
|
132
|
+
borderRadius={borderRadius}
|
|
131
133
|
>
|
|
132
134
|
<SkeletonPlaceholder.Item
|
|
133
135
|
flexDirection="column"
|
|
@@ -218,18 +220,18 @@ const styles = StyleSheet.create({
|
|
|
218
220
|
marginVertical: verticalScale(6)
|
|
219
221
|
},
|
|
220
222
|
item: {
|
|
221
|
-
marginLeft: moderateScale(
|
|
223
|
+
marginLeft: moderateScale(10)
|
|
222
224
|
},
|
|
223
225
|
navigateToMoreContainer: {
|
|
224
|
-
paddingHorizontal: moderateScale(
|
|
226
|
+
paddingHorizontal: moderateScale(10),
|
|
225
227
|
marginBottom: verticalScale(8)
|
|
226
228
|
},
|
|
227
229
|
title: {
|
|
228
|
-
fontSize:
|
|
230
|
+
fontSize: RFValue(13),
|
|
229
231
|
fontWeight: '600'
|
|
230
232
|
},
|
|
231
233
|
itemTitle: {
|
|
232
|
-
fontSize:
|
|
234
|
+
fontSize: RFValue(9),
|
|
233
235
|
fontWeight: '500',
|
|
234
236
|
lineHeight: moderateScale(13),
|
|
235
237
|
height: moderateScale(13)
|
|
@@ -21,11 +21,12 @@ import { debounce } from 'lodash';
|
|
|
21
21
|
|
|
22
22
|
import { usePaginatedSection } from '../../../../hooks/usePaginatedSection';
|
|
23
23
|
|
|
24
|
-
import { useTheme } from '../../../../theme';
|
|
24
|
+
import { useTheme } from '../../../../theme/hook/useTheme';
|
|
25
25
|
import CardPoster from '../components/CardPoster';
|
|
26
26
|
import NavigateToMore from '../components/NavigateToMore';
|
|
27
27
|
import type { IContentData, IGetSectionData, ISectionContent, MoreFetchData } from '../../../../types';
|
|
28
28
|
import type { AppTheme } from '../../../../theme/themes';
|
|
29
|
+
import { RFValue } from 'react-native-responsive-fontsize';
|
|
29
30
|
|
|
30
31
|
const { width, height } = Dimensions.get('window');
|
|
31
32
|
|
|
@@ -39,11 +40,11 @@ const staticStyles = StyleSheet.create({
|
|
|
39
40
|
marginVertical: verticalScale(6)
|
|
40
41
|
},
|
|
41
42
|
navigateToMoreContainer: {
|
|
42
|
-
paddingHorizontal: moderateScale(
|
|
43
|
+
paddingHorizontal: moderateScale(10),
|
|
43
44
|
marginBottom: verticalScale(8)
|
|
44
45
|
},
|
|
45
46
|
title: {
|
|
46
|
-
fontSize:
|
|
47
|
+
fontSize: RFValue(13),
|
|
47
48
|
fontWeight: '600',
|
|
48
49
|
marginHorizontal: moderateScale(15),
|
|
49
50
|
marginVertical: moderateScale(5)
|
|
@@ -206,7 +207,7 @@ const MovieCardThree: React.FC<Props> = ({
|
|
|
206
207
|
borderRadius={borderRadius}
|
|
207
208
|
posterWrapperStyle={styles.image}
|
|
208
209
|
resizeMode={FastImage.resizeMode.cover}
|
|
209
|
-
isLoading={
|
|
210
|
+
isLoading={isLoading}
|
|
210
211
|
/>
|
|
211
212
|
)}
|
|
212
213
|
</TouchableOpacity>
|
|
@@ -222,7 +223,6 @@ const MovieCardThree: React.FC<Props> = ({
|
|
|
222
223
|
renderItemImage,
|
|
223
224
|
appliedTheme,
|
|
224
225
|
borderRadius,
|
|
225
|
-
isPaginating,
|
|
226
226
|
itemWidth,
|
|
227
227
|
itemHeight,
|
|
228
228
|
handleItemPress
|