@zezosoft/zezo-ott-react-native-ui-kit 1.0.2 → 1.0.3
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/LICENSE +0 -0
- package/README.md +6 -0
- package/lib/module/assets/animations/135037-payment-processing-error.json +1347 -1
- package/lib/module/assets/animations/7227-vui-animation.json +3377 -1
- package/lib/module/assets/animations/succesfull-payment.json +2379 -1
- package/lib/module/assets/animations/voice-icon.json +542 -1
- package/lib/module/components/Account/Account.js +6 -6
- package/lib/module/components/Account/Account.js.map +1 -1
- package/lib/module/components/Account/index.js +1 -1
- package/lib/module/components/Account/index.js.map +1 -1
- package/lib/module/components/Alert/UAAlert.js +138 -0
- package/lib/module/components/Alert/UAAlert.js.map +1 -0
- package/lib/module/components/Alert/index.js +4 -0
- package/lib/module/components/Alert/index.js.map +1 -0
- package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js +9 -9
- package/lib/module/components/Auth/ForgotPassword/ForgotPassword.js.map +1 -1
- package/lib/module/components/Auth/Login/LoginWithEmail.js +10 -10
- package/lib/module/components/Auth/Login/LoginWithEmail.js.map +1 -1
- package/lib/module/components/Auth/Login/LoginWithPhone.js +10 -10
- package/lib/module/components/Auth/Login/LoginWithPhone.js.map +1 -1
- package/lib/module/components/Auth/OTP/OTP.js +9 -9
- package/lib/module/components/Auth/OTP/OTP.js.map +1 -1
- package/lib/module/components/Auth/SignUp/SignUp.js +10 -10
- package/lib/module/components/Auth/SignUp/SignUp.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js +6 -6
- package/lib/module/components/Auth/SplashScreen/SplashScreen.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js +1 -6
- package/lib/module/components/Auth/SplashScreen/components/SplashImage/SplashImage.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.js.map +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js +1 -1
- package/lib/module/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.js.map +1 -1
- package/lib/module/components/Auth/index.js +6 -6
- package/lib/module/components/Auth/index.js.map +1 -1
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js +1 -1
- package/lib/module/components/BackgroundLayout/BackgroundLayout.js.map +1 -1
- package/lib/module/components/BlogView/BlogView.js +4 -10
- package/lib/module/components/BlogView/BlogView.js.map +1 -1
- package/lib/module/components/BlogView/index.js +1 -1
- package/lib/module/components/BlogView/index.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 +1 -1
- package/lib/module/components/Button/MenuBtn.js.map +1 -1
- package/lib/module/components/Button/PrimaryBtn.js +2 -2
- package/lib/module/components/Button/PrimaryBtn.js.map +1 -1
- package/lib/module/components/Button/TextButton.js +2 -2
- package/lib/module/components/Button/TextButton.js.map +1 -1
- package/lib/module/components/Button/index.js +3 -3
- package/lib/module/components/Button/index.js.map +1 -1
- package/lib/module/components/Content/Card/Category/Category.js +2 -2
- package/lib/module/components/Content/Card/Category/Category.js.map +1 -1
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js +6 -6
- package/lib/module/components/Content/Card/NowWatching/NowWatching.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/One.js +3 -3
- package/lib/module/components/Content/Card/Sliders/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js +4 -4
- package/lib/module/components/Content/Card/Sliders/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/Sliders/index.js +2 -2
- package/lib/module/components/Content/Card/Sliders/index.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Five.js +4 -4
- package/lib/module/components/Content/Card/Styles/Five.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Four.js +4 -4
- package/lib/module/components/Content/Card/Styles/Four.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/One.js +4 -4
- package/lib/module/components/Content/Card/Styles/One.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/RotateInOut.js +4 -4
- package/lib/module/components/Content/Card/Styles/RotateInOut.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Six.js +5 -5
- package/lib/module/components/Content/Card/Styles/Six.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Three.js +4 -4
- package/lib/module/components/Content/Card/Styles/Three.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/TopTen.js +5 -5
- package/lib/module/components/Content/Card/Styles/TopTen.js.map +1 -1
- package/lib/module/components/Content/Card/Styles/Two.js +4 -4
- package/lib/module/components/Content/Card/Styles/Two.js.map +1 -1
- package/lib/module/components/Content/Card/components/CardPoster.js +1 -10
- package/lib/module/components/Content/Card/components/CardPoster.js.map +1 -1
- package/lib/module/components/Content/Card/components/NavigateToMore.js +2 -2
- package/lib/module/components/Content/Card/components/NavigateToMore.js.map +1 -1
- package/lib/module/components/Content/Card/components/NoContentFallback.js +3 -3
- package/lib/module/components/Content/Card/components/NoContentFallback.js.map +1 -1
- package/lib/module/components/Content/Card/components/ShowAllButton.js +1 -1
- package/lib/module/components/Content/Card/components/ShowAllButton.js.map +1 -1
- package/lib/module/components/Content/Card/components/ThumbnailCard.js +1 -1
- package/lib/module/components/Content/Card/components/ThumbnailCard.js.map +1 -1
- package/lib/module/components/Content/Card/index.js +10 -10
- package/lib/module/components/Content/Card/index.js.map +1 -1
- package/lib/module/components/Content/Content.js +4 -4
- package/lib/module/components/Content/Content.js.map +1 -1
- package/lib/module/components/Content/Sections.js +2 -2
- package/lib/module/components/Content/Sections.js.map +1 -1
- package/lib/module/components/ContentView/ContentView.js +8 -9
- package/lib/module/components/ContentView/ContentView.js.map +1 -1
- package/lib/module/components/ContentView/MoreContentList.js +6 -6
- package/lib/module/components/ContentView/MoreContentList.js.map +1 -1
- package/lib/module/components/ContentView/components/AboutSection.js +2 -2
- package/lib/module/components/ContentView/components/AboutSection.js.map +1 -1
- package/lib/module/components/ContentView/components/CastCard.js +2 -2
- package/lib/module/components/ContentView/components/CastCard.js.map +1 -1
- package/lib/module/components/ContentView/components/EpisodeCard.js +3 -3
- package/lib/module/components/ContentView/components/EpisodeCard.js.map +1 -1
- package/lib/module/components/ContentView/components/GenreTags.js +1 -1
- package/lib/module/components/ContentView/components/GenreTags.js.map +1 -1
- package/lib/module/components/ContentView/components/HeroBanner.js +5 -5
- package/lib/module/components/ContentView/components/HeroBanner.js.map +1 -1
- package/lib/module/components/ContentView/components/PlayButton.js +0 -1
- package/lib/module/components/ContentView/components/PlayButton.js.map +1 -1
- package/lib/module/components/ContentView/components/Title.js +1 -1
- package/lib/module/components/ContentView/components/Title.js.map +1 -1
- package/lib/module/components/ContentView/components/TrailerButton.js +1 -2
- package/lib/module/components/ContentView/components/TrailerButton.js.map +1 -1
- package/lib/module/components/ContentView/index.js +2 -2
- package/lib/module/components/ContentView/index.js.map +1 -1
- package/lib/module/components/Headers/AppHeader.js +2 -2
- package/lib/module/components/Headers/AppHeader.js.map +1 -1
- package/lib/module/components/Headers/One.js +2 -2
- package/lib/module/components/Headers/One.js.map +1 -1
- package/lib/module/components/Headers/Three.js +2 -2
- package/lib/module/components/Headers/Three.js.map +1 -1
- package/lib/module/components/Headers/Two.js +5 -6
- package/lib/module/components/Headers/Two.js.map +1 -1
- package/lib/module/components/Headers/index.js +3 -3
- package/lib/module/components/Headers/index.js.map +1 -1
- package/lib/module/components/Input/Input.js +3 -3
- package/lib/module/components/Input/Input.js.map +1 -1
- package/lib/module/components/Input/InputOne.js +1 -1
- package/lib/module/components/Input/InputOne.js.map +1 -1
- package/lib/module/components/Input/InputTwo.js +1 -1
- package/lib/module/components/Input/InputTwo.js.map +1 -1
- package/lib/module/components/Input/PhoneNumberInput.js +1 -1
- package/lib/module/components/Input/PhoneNumberInput.js.map +1 -1
- package/lib/module/components/Keyboard/HideKeyboard.js.map +1 -1
- package/lib/module/components/Loader/Loader.js +1 -6
- package/lib/module/components/Loader/Loader.js.map +1 -1
- package/lib/module/components/Logo/Logo.js +2 -2
- package/lib/module/components/Logo/Logo.js.map +1 -1
- package/lib/module/components/Search/One.js +9 -9
- package/lib/module/components/Search/One.js.map +1 -1
- package/lib/module/components/Search/components/RecentSearchesSection.js +1 -1
- package/lib/module/components/Search/components/RecentSearchesSection.js.map +1 -1
- package/lib/module/components/Search/components/SearchCard.js +3 -3
- package/lib/module/components/Search/components/SearchCard.js.map +1 -1
- package/lib/module/components/Search/index.js +2 -2
- package/lib/module/components/Search/index.js.map +1 -1
- package/lib/module/components/Settings/AppSettings.js +4 -4
- package/lib/module/components/Settings/AppSettings.js.map +1 -1
- package/lib/module/components/Settings/index.js +1 -1
- package/lib/module/components/Settings/index.js.map +1 -1
- package/lib/module/components/Subscription/SubOne.js +4 -4
- package/lib/module/components/Subscription/SubOne.js.map +1 -1
- package/lib/module/components/Subscription/index.js +1 -1
- package/lib/module/components/Subscription/index.js.map +1 -1
- package/lib/module/components/TabBar/One.js +2 -2
- package/lib/module/components/TabBar/One.js.map +1 -1
- package/lib/module/components/TabBar/Three.js +1 -1
- package/lib/module/components/TabBar/Three.js.map +1 -1
- package/lib/module/components/TabBar/Two.js +2 -2
- package/lib/module/components/TabBar/Two.js.map +1 -1
- package/lib/module/components/TabBar/index.js +3 -3
- package/lib/module/components/TabBar/index.js.map +1 -1
- package/lib/module/components/Text/Text.js +1 -1
- package/lib/module/components/Text/Text.js.map +1 -1
- package/lib/module/components/Text/index.js +1 -1
- package/lib/module/components/Text/index.js.map +1 -1
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js +3 -3
- package/lib/module/components/User/DeviceSessions/DeviceSessions.js.map +1 -1
- package/lib/module/components/User/WatchHistory/WatchHistory.js +4 -4
- package/lib/module/components/User/WatchHistory/WatchHistory.js.map +1 -1
- package/lib/module/components/User/WatchLater/WatchLater.js +5 -5
- 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 +3 -3
- package/lib/module/components/User/components/UserSection.js.map +1 -1
- package/lib/module/components/User/index.js +3 -3
- package/lib/module/components/User/index.js.map +1 -1
- package/lib/module/components/View/View.js.map +1 -1
- package/lib/module/components/View/index.js +1 -1
- package/lib/module/components/View/index.js.map +1 -1
- package/lib/module/components/index.js +19 -18
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/layout/SafeAreaWrapper.js +1 -1
- package/lib/module/components/layout/SafeAreaWrapper.js.map +1 -1
- package/lib/module/components/layout/index.js +1 -1
- package/lib/module/components/layout/index.js.map +1 -1
- package/lib/module/constants/dummySections.js.map +1 -1
- package/lib/module/hooks/useDebounce.js.map +1 -1
- package/lib/module/hooks/useInitSplashCacheSync.js +7 -7
- package/lib/module/hooks/useInitSplashCacheSync.js.map +1 -1
- package/lib/module/hooks/useKeyboard.js.map +1 -1
- package/lib/module/hooks/usePaginatedSection.js.map +1 -1
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/store/RecentSearchesStore.js.map +1 -1
- package/lib/module/store/splashStore.js.map +1 -1
- package/lib/module/theme/ThemeProvider.js +11 -8
- package/lib/module/theme/ThemeProvider.js.map +1 -1
- package/lib/module/theme/hook/useTheme.js +2 -2
- package/lib/module/theme/hook/useTheme.js.map +1 -1
- package/lib/module/theme/index.js +3 -2
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/themes.js +0 -13
- package/lib/module/theme/themes.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/Account/Account.d.ts +0 -1
- package/lib/typescript/src/components/Account/Account.d.ts.map +1 -1
- package/lib/typescript/src/components/Alert/UAAlert.d.ts +16 -0
- package/lib/typescript/src/components/Alert/UAAlert.d.ts.map +1 -0
- package/lib/typescript/src/components/Alert/index.d.ts +2 -0
- package/lib/typescript/src/components/Alert/index.d.ts.map +1 -0
- package/lib/typescript/src/components/Auth/ForgotPassword/ForgotPassword.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/Login/LoginWithEmail.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/Login/LoginWithPhone.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/OTP/OTP.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SignUp/SignUp.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/SplashScreen.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts +0 -4
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.d.ts.map +1 -1
- package/lib/typescript/src/components/Auth/index.d.ts +1 -1
- package/lib/typescript/src/components/Auth/index.d.ts.map +1 -1
- package/lib/typescript/src/components/BackgroundLayout/BackgroundLayout.d.ts.map +1 -1
- package/lib/typescript/src/components/BlogView/BlogView.d.ts +0 -4
- package/lib/typescript/src/components/BlogView/BlogView.d.ts.map +1 -1
- package/lib/typescript/src/components/Button/BackBtn.d.ts.map +1 -1
- 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 +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/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 +0 -8
- 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 +1 -2
- package/lib/typescript/src/components/Content/Card/components/NoContentFallback.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Card/components/ShowAllButton.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/Card/index.d.ts +2 -2
- package/lib/typescript/src/components/Content/Content.d.ts.map +1 -1
- package/lib/typescript/src/components/Content/Sections.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/ContentView.d.ts +1 -2
- package/lib/typescript/src/components/ContentView/ContentView.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/MoreContentList.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts +1 -2
- package/lib/typescript/src/components/ContentView/components/AboutSection.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/CastCard.d.ts +1 -6
- package/lib/typescript/src/components/ContentView/components/CastCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts +1 -2
- package/lib/typescript/src/components/ContentView/components/EpisodeCard.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/GenreTags.d.ts +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 +1 -2
- package/lib/typescript/src/components/ContentView/components/HeroBanner.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts +1 -2
- package/lib/typescript/src/components/ContentView/components/PlayButton.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/Title.d.ts +1 -1
- package/lib/typescript/src/components/ContentView/components/Title.d.ts.map +1 -1
- package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts +1 -2
- package/lib/typescript/src/components/ContentView/components/TrailerButton.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/AppHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/One.d.ts.map +1 -1
- package/lib/typescript/src/components/Headers/Three.d.ts.map +1 -1
- 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.map +1 -1
- package/lib/typescript/src/components/Loader/Loader.d.ts +0 -4
- package/lib/typescript/src/components/Loader/Loader.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 +1 -1
- package/lib/typescript/src/components/Subscription/SubOne.d.ts.map +1 -1
- package/lib/typescript/src/components/Subscription/index.d.ts +2 -2
- package/lib/typescript/src/components/Subscription/index.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/One.d.ts +2 -2
- package/lib/typescript/src/components/TabBar/One.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/Three.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/Two.d.ts +1 -1
- package/lib/typescript/src/components/TabBar/Two.d.ts.map +1 -1
- package/lib/typescript/src/components/TabBar/index.d.ts +2 -2
- package/lib/typescript/src/components/Text/Text.d.ts.map +1 -1
- package/lib/typescript/src/components/User/DeviceSessions/DeviceSessions.d.ts +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/UserAvatar.d.ts.map +1 -1
- package/lib/typescript/src/components/User/components/UserSection.d.ts.map +1 -1
- package/lib/typescript/src/components/View/View.d.ts.map +1 -1
- package/lib/typescript/src/components/index.d.ts +1 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/layout/SafeAreaWrapper.d.ts.map +1 -1
- package/lib/typescript/src/constants/dummySections.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useDebounce.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.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/store/RecentSearchesStore.d.ts +5 -3
- package/lib/typescript/src/store/RecentSearchesStore.d.ts.map +1 -1
- package/lib/typescript/src/store/splashStore.d.ts +5 -3
- package/lib/typescript/src/store/splashStore.d.ts.map +1 -1
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theme/hook/useTheme.d.ts.map +1 -1
- package/lib/typescript/src/theme/index.d.ts +5 -0
- package/lib/typescript/src/theme/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/themes.d.ts +11 -4
- package/lib/typescript/src/theme/themes.d.ts.map +1 -1
- package/lib/typescript/src/types/content/content-view.types.d.ts.map +1 -1
- package/lib/typescript/src/types/hook/usePaginatedSetion.d.ts +1 -1
- package/lib/typescript/src/types/hook/usePaginatedSetion.d.ts.map +1 -1
- package/package.json +167 -70
- package/src/Styles/globalStyles.ts +18 -18
- package/src/assets/animations/135037-payment-processing-error.json +1347 -1
- package/src/assets/animations/7227-vui-animation.json +3377 -1
- package/src/assets/animations/succesfull-payment.json +2379 -1
- package/src/assets/animations/voice-icon.json +542 -1
- package/src/components/Account/Account.tsx +139 -61
- package/src/components/Alert/UAAlert.tsx +168 -0
- package/src/components/Alert/index.ts +1 -0
- package/src/components/Auth/ForgotPassword/ForgotPassword.tsx +53 -23
- package/src/components/Auth/Login/LoginWithEmail.tsx +62 -32
- package/src/components/Auth/Login/LoginWithPhone.tsx +55 -24
- package/src/components/Auth/OTP/OTP.tsx +77 -32
- package/src/components/Auth/SignUp/SignUp.tsx +67 -32
- package/src/components/Auth/SplashScreen/SplashScreen.tsx +44 -16
- package/src/components/Auth/SplashScreen/components/SplashImage/SplashImage.tsx +21 -12
- package/src/components/Auth/SplashScreen/components/SplashLottie/SplashLottie.tsx +5 -5
- package/src/components/Auth/SplashScreen/components/SplashVideo/SplashVideo.tsx +15 -5
- package/src/components/Auth/index.ts +1 -1
- package/src/components/BackgroundLayout/BackgroundLayout.tsx +45 -17
- package/src/components/BlogView/BlogView.tsx +51 -31
- package/src/components/Button/BackBtn.tsx +31 -9
- package/src/components/Button/MenuBtn.tsx +61 -22
- package/src/components/Button/PrimaryBtn.tsx +30 -10
- package/src/components/Button/TextButton.tsx +30 -15
- package/src/components/Button/index.ts +1 -1
- package/src/components/Content/Card/Category/Category.tsx +73 -32
- package/src/components/Content/Card/NowWatching/NowWatching.tsx +102 -44
- package/src/components/Content/Card/Sliders/Styles/One.tsx +89 -38
- package/src/components/Content/Card/Sliders/Styles/Two.tsx +47 -21
- package/src/components/Content/Card/Sliders/index.ts +2 -2
- package/src/components/Content/Card/Styles/Five.tsx +65 -22
- package/src/components/Content/Card/Styles/Four.tsx +73 -23
- package/src/components/Content/Card/Styles/One.tsx +68 -21
- package/src/components/Content/Card/Styles/RotateInOut.tsx +59 -23
- package/src/components/Content/Card/Styles/Six.tsx +57 -19
- package/src/components/Content/Card/Styles/Three.tsx +59 -23
- package/src/components/Content/Card/Styles/TopTen.tsx +59 -26
- package/src/components/Content/Card/Styles/Two.tsx +39 -18
- package/src/components/Content/Card/components/CardPoster.tsx +34 -32
- package/src/components/Content/Card/components/NavigateToMore.tsx +17 -7
- package/src/components/Content/Card/components/NoContentFallback.tsx +36 -19
- package/src/components/Content/Card/components/ShowAllButton.tsx +12 -8
- package/src/components/Content/Card/components/ThumbnailCard.tsx +26 -17
- package/src/components/Content/Card/index.ts +2 -2
- package/src/components/Content/Content.tsx +41 -17
- package/src/components/Content/Sections.tsx +14 -8
- package/src/components/ContentView/ContentView.tsx +34 -27
- package/src/components/ContentView/MoreContentList.tsx +40 -18
- package/src/components/ContentView/components/AboutSection.tsx +30 -12
- package/src/components/ContentView/components/CastCard.tsx +65 -24
- package/src/components/ContentView/components/EpisodeCard.tsx +109 -44
- package/src/components/ContentView/components/GenreTags.tsx +35 -11
- package/src/components/ContentView/components/HeroBanner.tsx +52 -21
- package/src/components/ContentView/components/PlayButton.tsx +13 -5
- package/src/components/ContentView/components/Title.tsx +30 -10
- package/src/components/ContentView/components/TrailerButton.tsx +16 -7
- package/src/components/Headers/AppHeader.tsx +40 -14
- package/src/components/Headers/One.tsx +18 -9
- package/src/components/Headers/Three.tsx +22 -7
- package/src/components/Headers/Two.tsx +24 -13
- package/src/components/Headers/index.ts +1 -1
- package/src/components/Input/Input.ts +1 -1
- package/src/components/Input/InputOne.tsx +69 -23
- package/src/components/Input/InputTwo.tsx +41 -18
- package/src/components/Input/PhoneNumberInput.tsx +94 -48
- package/src/components/Keyboard/HideKeyboard.tsx +16 -10
- package/src/components/Loader/Loader.tsx +3 -8
- package/src/components/Logo/Logo.tsx +17 -9
- package/src/components/Search/One.tsx +46 -17
- package/src/components/Search/components/RecentSearchesSection.tsx +48 -21
- package/src/components/Search/components/SearchCard.tsx +34 -16
- package/src/components/Search/index.ts +1 -1
- package/src/components/Settings/AppSettings.tsx +80 -29
- package/src/components/Subscription/SubOne.tsx +84 -39
- package/src/components/Subscription/index.ts +1 -1
- package/src/components/TabBar/One.tsx +22 -18
- package/src/components/TabBar/Three.tsx +55 -19
- package/src/components/TabBar/Two.tsx +16 -12
- package/src/components/TabBar/index.ts +1 -1
- package/src/components/Text/Text.tsx +7 -3
- package/src/components/User/DeviceSessions/DeviceSessions.tsx +93 -38
- package/src/components/User/WatchHistory/WatchHistory.tsx +37 -12
- package/src/components/User/WatchLater/WatchLater.tsx +94 -31
- package/src/components/User/components/UserAvatar.tsx +8 -4
- package/src/components/User/components/UserSection.tsx +34 -19
- package/src/components/View/View.tsx +11 -2
- package/src/components/index.ts +1 -0
- package/src/components/layout/SafeAreaWrapper.tsx +10 -4
- package/src/constants/dummySections.ts +9 -7
- package/src/hooks/useDebounce.ts +4 -1
- package/src/hooks/useInitSplashCacheSync.ts +46 -18
- package/src/hooks/useKeyboard.ts +5 -3
- package/src/hooks/usePaginatedSection.ts +11 -7
- package/src/store/RecentSearchesStore.ts +12 -7
- package/src/store/splashStore.ts +16 -16
- package/src/theme/ThemeProvider.tsx +50 -20
- package/src/theme/hook/useTheme.ts +7 -3
- package/src/theme/index.ts +6 -0
- package/src/theme/themes.ts +42 -31
- package/src/types/content/content-view.types.ts +4 -1
- package/src/types/hook/usePaginatedSetion.ts +1 -1
- package/lib/module/components/Icons/AlertIcon.js +0 -33
- package/lib/module/components/Icons/AlertIcon.js.map +0 -1
- package/lib/module/components/Icons/DeviceIcon.js +0 -25
- package/lib/module/components/Icons/DeviceIcon.js.map +0 -1
- package/lib/module/components/Icons/DoneIcon/DoneIcon.js +0 -23
- package/lib/module/components/Icons/DoneIcon/DoneIcon.js.map +0 -1
- package/lib/module/components/Icons/ForgotPasswordMessageIcon.js +0 -65
- package/lib/module/components/Icons/ForgotPasswordMessageIcon.js.map +0 -1
- package/lib/module/components/Icons/ForgotPasswordMessageIconTwo.js +0 -56
- package/lib/module/components/Icons/ForgotPasswordMessageIconTwo.js.map +0 -1
- package/lib/module/components/Icons/NewIndex.js +0 -36
- package/lib/module/components/Icons/NewIndex.js.map +0 -1
- package/lib/module/components/Icons/ResendOTP.js +0 -21
- package/lib/module/components/Icons/ResendOTP.js.map +0 -1
- package/lib/typescript/src/components/Icons/AlertIcon.d.ts +0 -7
- package/lib/typescript/src/components/Icons/AlertIcon.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/DeviceIcon.d.ts +0 -7
- package/lib/typescript/src/components/Icons/DeviceIcon.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/DoneIcon/DoneIcon.d.ts +0 -6
- package/lib/typescript/src/components/Icons/DoneIcon/DoneIcon.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/ForgotPasswordMessageIcon.d.ts +0 -3
- package/lib/typescript/src/components/Icons/ForgotPasswordMessageIcon.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/ForgotPasswordMessageIconTwo.d.ts +0 -3
- package/lib/typescript/src/components/Icons/ForgotPasswordMessageIconTwo.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/NewIndex.d.ts +0 -19
- package/lib/typescript/src/components/Icons/NewIndex.d.ts.map +0 -1
- package/lib/typescript/src/components/Icons/ResendOTP.d.ts +0 -7
- package/lib/typescript/src/components/Icons/ResendOTP.d.ts.map +0 -1
- package/src/components/Icons/AlertIcon.tsx +0 -18
- package/src/components/Icons/DeviceIcon.tsx +0 -18
- package/src/components/Icons/DoneIcon/DoneIcon.tsx +0 -17
- package/src/components/Icons/ForgotPasswordMessageIcon.tsx +0 -34
- package/src/components/Icons/ForgotPasswordMessageIconTwo.tsx +0 -32
- package/src/components/Icons/NewIndex.ts +0 -35
- package/src/components/Icons/ResendOTP.tsx +0 -13
- /package/src/{index.ts → index.tsx} +0 -0
|
@@ -4,16 +4,30 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import React, { memo, useCallback, useMemo } from 'react';
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
View,
|
|
9
|
+
StyleSheet,
|
|
10
|
+
Platform,
|
|
11
|
+
FlatList,
|
|
12
|
+
Keyboard,
|
|
13
|
+
type ListRenderItem,
|
|
14
|
+
} from 'react-native';
|
|
8
15
|
import { useTheme } from '../../theme/hook/useTheme';
|
|
9
16
|
import InputTwo from '../Input/InputTwo';
|
|
10
17
|
import { LucideSearch, XCircle } from 'lucide-react-native';
|
|
11
18
|
import { Text } from '../Text';
|
|
12
19
|
import { scale, verticalScale } from 'react-native-size-matters';
|
|
13
20
|
import HideKeyboard from '../Keyboard/HideKeyboard';
|
|
14
|
-
import SearchCard, {
|
|
21
|
+
import SearchCard, {
|
|
22
|
+
type SearchCardSkeletonConfig,
|
|
23
|
+
} from './components/SearchCard';
|
|
15
24
|
import { useDebounce } from '../../hooks/useDebounce';
|
|
16
|
-
import type {
|
|
25
|
+
import type {
|
|
26
|
+
IContentData,
|
|
27
|
+
IGetSectionData,
|
|
28
|
+
ISectionItem,
|
|
29
|
+
MoreFetchData,
|
|
30
|
+
} from '../../types';
|
|
17
31
|
import type { AppTheme } from '../../theme/themes';
|
|
18
32
|
import { useRecentSearchesStore } from '../../store/RecentSearchesStore';
|
|
19
33
|
import RecentSearchesSection from './components/RecentSearchesSection';
|
|
@@ -64,13 +78,18 @@ const SearchBar: React.FC<SearchOneProps> = ({
|
|
|
64
78
|
noResultsText = 'No results found',
|
|
65
79
|
recommendedContentCardStyles,
|
|
66
80
|
theme,
|
|
67
|
-
recommendedContent
|
|
81
|
+
recommendedContent,
|
|
68
82
|
}) => {
|
|
69
83
|
const { theme: appliedTheme } = useTheme(theme);
|
|
70
|
-
const {
|
|
84
|
+
const {
|
|
85
|
+
recentSearches,
|
|
86
|
+
addSearchTerm,
|
|
87
|
+
clearSearches,
|
|
88
|
+
isLoading: recentSearchesLoading,
|
|
89
|
+
} = useRecentSearchesStore();
|
|
71
90
|
|
|
72
91
|
const {
|
|
73
|
-
colors: { textPrimary, background }
|
|
92
|
+
colors: { textPrimary, background },
|
|
74
93
|
} = appliedTheme;
|
|
75
94
|
|
|
76
95
|
const debouncedSubmit = useDebounce((keyword: string) => {
|
|
@@ -103,11 +122,16 @@ const SearchBar: React.FC<SearchOneProps> = ({
|
|
|
103
122
|
[events]
|
|
104
123
|
);
|
|
105
124
|
|
|
106
|
-
const skeletonItems = useMemo(
|
|
125
|
+
const skeletonItems = useMemo(
|
|
126
|
+
() => Array(skeletonCardCount).fill({}),
|
|
127
|
+
[skeletonCardCount]
|
|
128
|
+
);
|
|
107
129
|
|
|
108
|
-
const showRecent =
|
|
130
|
+
const showRecent =
|
|
131
|
+
!recentSearchesLoading && search.trim() === '' && recentSearches.length > 0;
|
|
109
132
|
|
|
110
|
-
const shouldShowFooter =
|
|
133
|
+
const shouldShowFooter =
|
|
134
|
+
!isLoading && search.trim().length === 0 && results?.length === 0;
|
|
111
135
|
|
|
112
136
|
const renderItem: ListRenderItem<ISearchItem> = ({ item, index }) => (
|
|
113
137
|
<View style={styles.container} key={item?._id || index}>
|
|
@@ -167,7 +191,7 @@ const SearchBar: React.FC<SearchOneProps> = ({
|
|
|
167
191
|
handleTyping,
|
|
168
192
|
events,
|
|
169
193
|
isLoading,
|
|
170
|
-
recommendedContentCardStyles
|
|
194
|
+
recommendedContentCardStyles,
|
|
171
195
|
]);
|
|
172
196
|
|
|
173
197
|
const renderEmptyComponent = () =>
|
|
@@ -185,7 +209,9 @@ const SearchBar: React.FC<SearchOneProps> = ({
|
|
|
185
209
|
placeholder={placeholder}
|
|
186
210
|
onChangeText={handleTyping}
|
|
187
211
|
leftIcon={<LucideSearch size={scale(20)} color="#aaa" />}
|
|
188
|
-
rightIcon={
|
|
212
|
+
rightIcon={
|
|
213
|
+
search.length > 0 ? <XCircle size={24} color={textPrimary} /> : null
|
|
214
|
+
}
|
|
189
215
|
onPressRightIcon={handleClear}
|
|
190
216
|
accessibilityLabel="Search"
|
|
191
217
|
/>
|
|
@@ -198,7 +224,10 @@ const SearchBar: React.FC<SearchOneProps> = ({
|
|
|
198
224
|
renderItem={renderItem}
|
|
199
225
|
ListEmptyComponent={renderEmptyComponent()}
|
|
200
226
|
ListFooterComponent={renderFooter}
|
|
201
|
-
contentContainerStyle={{
|
|
227
|
+
contentContainerStyle={{
|
|
228
|
+
paddingBottom: verticalScale(80),
|
|
229
|
+
paddingTop: scale(12),
|
|
230
|
+
}}
|
|
202
231
|
showsVerticalScrollIndicator={false}
|
|
203
232
|
keyboardShouldPersistTaps="handled"
|
|
204
233
|
style={{ flex: 1, marginTop: scale(2) }}
|
|
@@ -213,17 +242,17 @@ export default memo(SearchBar);
|
|
|
213
242
|
const styles = StyleSheet.create({
|
|
214
243
|
mainContainer: {
|
|
215
244
|
flex: 1,
|
|
216
|
-
paddingTop: Platform.OS === 'ios' ? scale(18) : scale(12)
|
|
245
|
+
paddingTop: Platform.OS === 'ios' ? scale(18) : scale(12),
|
|
217
246
|
},
|
|
218
247
|
container: {
|
|
219
|
-
paddingHorizontal: scale(16)
|
|
248
|
+
paddingHorizontal: scale(16),
|
|
220
249
|
},
|
|
221
250
|
recommendedTitle: {
|
|
222
|
-
fontSize: RFValue(13)
|
|
251
|
+
fontSize: RFValue(13),
|
|
223
252
|
},
|
|
224
253
|
emptyText: {
|
|
225
254
|
fontSize: RFValue(12),
|
|
226
255
|
textAlign: 'center',
|
|
227
|
-
marginTop: verticalScale(20)
|
|
228
|
-
}
|
|
256
|
+
marginTop: verticalScale(20),
|
|
257
|
+
},
|
|
229
258
|
});
|
|
@@ -20,21 +20,31 @@ type Props = {
|
|
|
20
20
|
theme: ITheme;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const RecentSearchesSection: React.FC<Props> = ({
|
|
23
|
+
const RecentSearchesSection: React.FC<Props> = ({
|
|
24
|
+
recentSearches,
|
|
25
|
+
isLoading,
|
|
26
|
+
onPressItem,
|
|
27
|
+
onClearAll,
|
|
28
|
+
theme,
|
|
29
|
+
}) => {
|
|
24
30
|
const {
|
|
25
|
-
colors: { textPrimary, skeletonBaseColor, skeletonHighlightColor, border }
|
|
31
|
+
colors: { textPrimary, skeletonBaseColor, skeletonHighlightColor, border },
|
|
26
32
|
} = theme;
|
|
27
33
|
|
|
28
34
|
const uniqueRecentSearches = [...new Set(recentSearches)];
|
|
29
35
|
const randomWidths = Array(8)
|
|
30
36
|
.fill(null)
|
|
31
|
-
.map(() =>
|
|
37
|
+
.map(() =>
|
|
38
|
+
Math.round(scale(Math.floor(Math.random() * (80 - 50 + 1)) + 50))
|
|
39
|
+
);
|
|
32
40
|
|
|
33
41
|
return (
|
|
34
42
|
<View style={styles.container}>
|
|
35
43
|
{/* Header */}
|
|
36
44
|
<View style={styles.headerRow}>
|
|
37
|
-
<Text style={[styles.recentSearchText, { color: textPrimary }]}>
|
|
45
|
+
<Text style={[styles.recentSearchText, { color: textPrimary }]}>
|
|
46
|
+
Recent Searches
|
|
47
|
+
</Text>
|
|
38
48
|
{uniqueRecentSearches.length > 0 && (
|
|
39
49
|
<TouchableOpacity
|
|
40
50
|
onPress={onClearAll}
|
|
@@ -49,7 +59,11 @@ const RecentSearchesSection: React.FC<Props> = ({ recentSearches, isLoading, onP
|
|
|
49
59
|
{/* Pills */}
|
|
50
60
|
<View style={styles.pillContainer}>
|
|
51
61
|
{isLoading ? (
|
|
52
|
-
<SkeletonPlaceholder
|
|
62
|
+
<SkeletonPlaceholder
|
|
63
|
+
backgroundColor={skeletonBaseColor}
|
|
64
|
+
highlightColor={skeletonHighlightColor}
|
|
65
|
+
speed={1200}
|
|
66
|
+
>
|
|
53
67
|
<SkeletonPlaceholder.Item style={styles.pillSkeletonWrapper}>
|
|
54
68
|
{randomWidths.map((width, index) => (
|
|
55
69
|
<SkeletonPlaceholder.Item
|
|
@@ -70,19 +84,32 @@ const RecentSearchesSection: React.FC<Props> = ({ recentSearches, isLoading, onP
|
|
|
70
84
|
<TouchableOpacity
|
|
71
85
|
key={`${item}-${index}`}
|
|
72
86
|
onPress={() => onPressItem(item)}
|
|
73
|
-
style={[
|
|
87
|
+
style={[
|
|
88
|
+
styles.pill,
|
|
89
|
+
{ backgroundColor: skeletonBaseColor, borderColor: border },
|
|
90
|
+
]}
|
|
74
91
|
accessibilityRole="button"
|
|
75
92
|
accessibilityLabel={`Search for ${item}`}
|
|
76
93
|
activeOpacity={0.7}
|
|
77
94
|
>
|
|
78
|
-
<RotateCcw
|
|
79
|
-
|
|
95
|
+
<RotateCcw
|
|
96
|
+
size={scale(15)}
|
|
97
|
+
color={textPrimary}
|
|
98
|
+
style={styles.pillIcon}
|
|
99
|
+
/>
|
|
100
|
+
<Text
|
|
101
|
+
style={[styles.pillText, { color: textPrimary }]}
|
|
102
|
+
numberOfLines={1}
|
|
103
|
+
ellipsizeMode="tail"
|
|
104
|
+
>
|
|
80
105
|
{item}
|
|
81
106
|
</Text>
|
|
82
107
|
</TouchableOpacity>
|
|
83
108
|
))
|
|
84
109
|
) : (
|
|
85
|
-
<Text style={[styles.noResultsText, { color: textPrimary }]}>
|
|
110
|
+
<Text style={[styles.noResultsText, { color: textPrimary }]}>
|
|
111
|
+
No recent searches
|
|
112
|
+
</Text>
|
|
86
113
|
)}
|
|
87
114
|
</View>
|
|
88
115
|
</View>
|
|
@@ -94,32 +121,32 @@ export default memo(RecentSearchesSection);
|
|
|
94
121
|
const styles = StyleSheet.create({
|
|
95
122
|
container: {
|
|
96
123
|
paddingVertical: scale(10),
|
|
97
|
-
backgroundColor: 'transparent'
|
|
124
|
+
backgroundColor: 'transparent',
|
|
98
125
|
},
|
|
99
126
|
headerRow: {
|
|
100
127
|
flexDirection: 'row',
|
|
101
128
|
justifyContent: 'space-between',
|
|
102
129
|
alignItems: 'center',
|
|
103
|
-
marginBottom: scale(12)
|
|
130
|
+
marginBottom: scale(12),
|
|
104
131
|
},
|
|
105
132
|
recentSearchText: {
|
|
106
133
|
fontSize: RFValue(12),
|
|
107
134
|
fontWeight: '600',
|
|
108
|
-
letterSpacing: 0.2
|
|
135
|
+
letterSpacing: 0.2,
|
|
109
136
|
},
|
|
110
137
|
clearAllText: {
|
|
111
138
|
fontSize: RFValue(10),
|
|
112
139
|
fontWeight: '500',
|
|
113
|
-
textDecorationLine: 'underline'
|
|
140
|
+
textDecorationLine: 'underline',
|
|
114
141
|
},
|
|
115
142
|
pillContainer: {
|
|
116
143
|
flexDirection: 'row',
|
|
117
|
-
flexWrap: 'wrap'
|
|
144
|
+
flexWrap: 'wrap',
|
|
118
145
|
},
|
|
119
146
|
pillSkeletonWrapper: {
|
|
120
147
|
flexDirection: 'row',
|
|
121
148
|
justifyContent: 'space-evenly',
|
|
122
|
-
flexWrap: 'wrap'
|
|
149
|
+
flexWrap: 'wrap',
|
|
123
150
|
},
|
|
124
151
|
pill: {
|
|
125
152
|
flexDirection: 'row',
|
|
@@ -130,25 +157,25 @@ const styles = StyleSheet.create({
|
|
|
130
157
|
paddingVertical: scale(5),
|
|
131
158
|
marginRight: scale(6.5),
|
|
132
159
|
marginBottom: scale(6),
|
|
133
|
-
maxWidth: scale(150)
|
|
160
|
+
maxWidth: scale(150),
|
|
134
161
|
},
|
|
135
162
|
pillText: {
|
|
136
163
|
fontSize: RFValue(10),
|
|
137
164
|
fontWeight: '500',
|
|
138
|
-
flexShrink: 1
|
|
165
|
+
flexShrink: 1,
|
|
139
166
|
},
|
|
140
167
|
pillIcon: {
|
|
141
|
-
marginRight: scale(5)
|
|
168
|
+
marginRight: scale(5),
|
|
142
169
|
},
|
|
143
170
|
skeletonPill: {
|
|
144
171
|
height: scale(32),
|
|
145
172
|
borderRadius: scale(16),
|
|
146
173
|
marginRight: scale(6.5),
|
|
147
|
-
marginBottom: scale(6)
|
|
174
|
+
marginBottom: scale(6),
|
|
148
175
|
},
|
|
149
176
|
noResultsText: {
|
|
150
177
|
fontSize: RFValue(11),
|
|
151
178
|
fontStyle: 'italic',
|
|
152
|
-
opacity: 0.7
|
|
153
|
-
}
|
|
179
|
+
opacity: 0.7,
|
|
180
|
+
},
|
|
154
181
|
});
|
|
@@ -49,14 +49,20 @@ const SearchCard: React.FC<SearchCardProps> = ({
|
|
|
49
49
|
isLoading = false,
|
|
50
50
|
onPress,
|
|
51
51
|
theme,
|
|
52
|
-
skeletonConfig
|
|
52
|
+
skeletonConfig,
|
|
53
53
|
}) => {
|
|
54
54
|
const { theme: appliedTheme } = useTheme(theme);
|
|
55
55
|
const {
|
|
56
|
-
colors: {
|
|
56
|
+
colors: {
|
|
57
|
+
textPrimary,
|
|
58
|
+
textSecondary,
|
|
59
|
+
skeletonBaseColor,
|
|
60
|
+
skeletonHighlightColor,
|
|
61
|
+
},
|
|
57
62
|
} = appliedTheme;
|
|
58
63
|
|
|
59
|
-
const { items = 5, textWidths = ['80%', '100%', '70%', '50%', '40%'] } =
|
|
64
|
+
const { items = 5, textWidths = ['80%', '100%', '70%', '50%', '40%'] } =
|
|
65
|
+
skeletonConfig ?? {};
|
|
60
66
|
|
|
61
67
|
const renderSkeleton = () => (
|
|
62
68
|
<SkeletonPlaceholder
|
|
@@ -66,19 +72,26 @@ const SearchCard: React.FC<SearchCardProps> = ({
|
|
|
66
72
|
>
|
|
67
73
|
<View style={styles.card}>
|
|
68
74
|
<View style={styles.imageContainer}>
|
|
69
|
-
<SkeletonPlaceholder.Item
|
|
75
|
+
<SkeletonPlaceholder.Item
|
|
76
|
+
width={scale(150)}
|
|
77
|
+
height={verticalScale(80)}
|
|
78
|
+
borderRadius={scale(8)}
|
|
79
|
+
/>
|
|
70
80
|
</View>
|
|
71
81
|
<View
|
|
72
82
|
style={[
|
|
73
83
|
styles.textContainer,
|
|
74
84
|
{
|
|
75
|
-
marginTop: verticalScale(3)
|
|
76
|
-
}
|
|
85
|
+
marginTop: verticalScale(3),
|
|
86
|
+
},
|
|
77
87
|
]}
|
|
78
88
|
>
|
|
79
89
|
{Array.from({ length: items }).map((_, lineIdx) => {
|
|
80
90
|
const rawWidth = textWidths[lineIdx] ?? '90%';
|
|
81
|
-
const resolvedWidth =
|
|
91
|
+
const resolvedWidth =
|
|
92
|
+
typeof rawWidth === 'string'
|
|
93
|
+
? rawWidth
|
|
94
|
+
: `${Math.min(rawWidth, 100)}%`;
|
|
82
95
|
|
|
83
96
|
return (
|
|
84
97
|
<SkeletonPlaceholder.Item
|
|
@@ -116,7 +129,12 @@ const SearchCard: React.FC<SearchCardProps> = ({
|
|
|
116
129
|
/>
|
|
117
130
|
</View>
|
|
118
131
|
<View style={styles.textContainer}>
|
|
119
|
-
<Text
|
|
132
|
+
<Text
|
|
133
|
+
style={styles.title}
|
|
134
|
+
color={textPrimary}
|
|
135
|
+
numberOfLines={1}
|
|
136
|
+
accessibilityLabel={`Title: ${title}`}
|
|
137
|
+
>
|
|
120
138
|
{title}
|
|
121
139
|
</Text>
|
|
122
140
|
<Text
|
|
@@ -146,7 +164,7 @@ const styles = StyleSheet.create({
|
|
|
146
164
|
card: {
|
|
147
165
|
flexDirection: 'row',
|
|
148
166
|
alignItems: 'flex-start',
|
|
149
|
-
marginBottom: verticalScale(5)
|
|
167
|
+
marginBottom: verticalScale(5),
|
|
150
168
|
},
|
|
151
169
|
imageContainer: {
|
|
152
170
|
width: scale(150),
|
|
@@ -154,7 +172,7 @@ const styles = StyleSheet.create({
|
|
|
154
172
|
borderRadius: scale(8),
|
|
155
173
|
overflow: 'hidden',
|
|
156
174
|
justifyContent: 'center',
|
|
157
|
-
alignItems: 'center'
|
|
175
|
+
alignItems: 'center',
|
|
158
176
|
},
|
|
159
177
|
thumbnail: {
|
|
160
178
|
width: '100%',
|
|
@@ -162,19 +180,19 @@ const styles = StyleSheet.create({
|
|
|
162
180
|
borderRadius: scale(8),
|
|
163
181
|
position: 'absolute',
|
|
164
182
|
top: 0,
|
|
165
|
-
left: 0
|
|
183
|
+
left: 0,
|
|
166
184
|
},
|
|
167
185
|
textContainer: {
|
|
168
186
|
flex: 1,
|
|
169
187
|
height: verticalScale(80),
|
|
170
188
|
marginLeft: scale(5),
|
|
171
|
-
justifyContent: 'flex-start'
|
|
189
|
+
justifyContent: 'flex-start',
|
|
172
190
|
},
|
|
173
191
|
title: {
|
|
174
192
|
fontSize: RFValue(10),
|
|
175
193
|
fontWeight: '600',
|
|
176
194
|
lineHeight: moderateScale(20),
|
|
177
|
-
marginTop: verticalScale(2)
|
|
195
|
+
marginTop: verticalScale(2),
|
|
178
196
|
},
|
|
179
197
|
description: {
|
|
180
198
|
fontSize: RFValue(9),
|
|
@@ -182,13 +200,13 @@ const styles = StyleSheet.create({
|
|
|
182
200
|
lineHeight: moderateScale(16),
|
|
183
201
|
marginLeft: scale(1),
|
|
184
202
|
marginBottom: verticalScale(2),
|
|
185
|
-
flexShrink: 1
|
|
203
|
+
flexShrink: 1,
|
|
186
204
|
},
|
|
187
205
|
categoryTextLine: {
|
|
188
206
|
fontSize: RFValue(9),
|
|
189
207
|
textTransform: 'capitalize',
|
|
190
208
|
fontWeight: '500',
|
|
191
209
|
marginLeft: scale(1),
|
|
192
|
-
lineHeight: moderateScale(16)
|
|
193
|
-
}
|
|
210
|
+
lineHeight: moderateScale(16),
|
|
211
|
+
},
|
|
194
212
|
});
|
|
@@ -3,14 +3,31 @@
|
|
|
3
3
|
* @lastModified Mon 23 Jun 2025 at 11:22 AM
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import React, {
|
|
7
|
-
|
|
6
|
+
import React, {
|
|
7
|
+
useState,
|
|
8
|
+
isValidElement,
|
|
9
|
+
cloneElement,
|
|
10
|
+
type FC,
|
|
11
|
+
type ReactElement,
|
|
12
|
+
} from 'react';
|
|
13
|
+
import {
|
|
14
|
+
View,
|
|
15
|
+
ScrollView,
|
|
16
|
+
StyleSheet,
|
|
17
|
+
Switch,
|
|
18
|
+
TouchableOpacity,
|
|
19
|
+
type ViewStyle,
|
|
20
|
+
type TextStyle,
|
|
21
|
+
} from 'react-native';
|
|
8
22
|
import SkeletonPlaceholder from 'react-native-skeleton-placeholder';
|
|
9
23
|
import { useTheme } from '../../theme/hook/useTheme';
|
|
10
24
|
import DeviceInfo from 'react-native-device-info';
|
|
11
25
|
import AppHeader from '../Headers/AppHeader';
|
|
12
26
|
import { scale, verticalScale, moderateScale } from 'react-native-size-matters';
|
|
13
|
-
import UserSection, {
|
|
27
|
+
import UserSection, {
|
|
28
|
+
type UserInfo,
|
|
29
|
+
type UserInfoTextStyle,
|
|
30
|
+
} from '../User/components/UserSection';
|
|
14
31
|
import { Text } from '../Text';
|
|
15
32
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
16
33
|
import type { AppTheme } from '../../theme/themes';
|
|
@@ -87,7 +104,7 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
87
104
|
skeletonProps = {},
|
|
88
105
|
headerStyle,
|
|
89
106
|
userInfoTextStyle = {},
|
|
90
|
-
menuItemStyle = {}
|
|
107
|
+
menuItemStyle = {},
|
|
91
108
|
}) => {
|
|
92
109
|
const { theme: appliedTheme } = useTheme(theme);
|
|
93
110
|
const insets = useSafeAreaInsets();
|
|
@@ -104,10 +121,15 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
104
121
|
// ✅ Handle toggle change
|
|
105
122
|
const handleToggleChange = (key: string, value: boolean) => {
|
|
106
123
|
setToggleStates((prev) => ({ ...prev, [key]: value }));
|
|
107
|
-
const item = menuItems.find((i) => i.key === key) as
|
|
124
|
+
const item = menuItems.find((i) => i.key === key) as
|
|
125
|
+
| ToggleMenuItem
|
|
126
|
+
| undefined;
|
|
108
127
|
item?.onToggleChange?.(value);
|
|
109
128
|
};
|
|
110
|
-
const renderIconWithColor = (
|
|
129
|
+
const renderIconWithColor = (
|
|
130
|
+
icon: React.ReactNode,
|
|
131
|
+
color: string
|
|
132
|
+
): React.ReactNode => {
|
|
111
133
|
if (isValidElement(icon)) {
|
|
112
134
|
return cloneElement(icon as ReactElement<any>, { color });
|
|
113
135
|
}
|
|
@@ -121,9 +143,9 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
121
143
|
styles.menuItem,
|
|
122
144
|
{
|
|
123
145
|
backgroundColor: appliedTheme.colors.surfaceDisabled,
|
|
124
|
-
borderColor: appliedTheme.colors.border
|
|
146
|
+
borderColor: appliedTheme.colors.border,
|
|
125
147
|
},
|
|
126
|
-
menuItemStyle.container
|
|
148
|
+
menuItemStyle.container,
|
|
127
149
|
]}
|
|
128
150
|
>
|
|
129
151
|
<View style={styles.menuItemContent}>
|
|
@@ -134,7 +156,11 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
134
156
|
)}
|
|
135
157
|
<Text
|
|
136
158
|
numberOfLines={1}
|
|
137
|
-
style={[
|
|
159
|
+
style={[
|
|
160
|
+
styles.menuLabel,
|
|
161
|
+
{ color: appliedTheme.colors.onBackground },
|
|
162
|
+
menuItemStyle.label,
|
|
163
|
+
]}
|
|
138
164
|
>
|
|
139
165
|
{item.label}
|
|
140
166
|
</Text>
|
|
@@ -142,10 +168,12 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
142
168
|
<Switch
|
|
143
169
|
trackColor={{
|
|
144
170
|
false: appliedTheme.colors.switchTrackColorDisabled,
|
|
145
|
-
true: appliedTheme.colors.switchTrackColor
|
|
171
|
+
true: appliedTheme.colors.switchTrackColor,
|
|
146
172
|
}}
|
|
147
173
|
thumbColor={
|
|
148
|
-
toggleStates[item.key]
|
|
174
|
+
toggleStates[item.key]
|
|
175
|
+
? appliedTheme.colors.switchThumbColor
|
|
176
|
+
: appliedTheme.colors.switchThumbColorDisabled
|
|
149
177
|
}
|
|
150
178
|
value={toggleStates[item.key]}
|
|
151
179
|
onValueChange={(value) => handleToggleChange(item.key, value)}
|
|
@@ -168,9 +196,9 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
168
196
|
styles.menuItem,
|
|
169
197
|
{
|
|
170
198
|
backgroundColor: appliedTheme.colors.surfaceDisabled,
|
|
171
|
-
borderColor: appliedTheme.colors.border
|
|
199
|
+
borderColor: appliedTheme.colors.border,
|
|
172
200
|
},
|
|
173
|
-
menuItemStyle.container
|
|
201
|
+
menuItemStyle.container,
|
|
174
202
|
]}
|
|
175
203
|
>
|
|
176
204
|
{item.icon && (
|
|
@@ -180,7 +208,11 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
180
208
|
)}
|
|
181
209
|
<Text
|
|
182
210
|
numberOfLines={1}
|
|
183
|
-
style={[
|
|
211
|
+
style={[
|
|
212
|
+
styles.menuLabel,
|
|
213
|
+
{ color: appliedTheme.colors.onBackground },
|
|
214
|
+
menuItemStyle.label,
|
|
215
|
+
]}
|
|
184
216
|
>
|
|
185
217
|
{item.label}
|
|
186
218
|
</Text>
|
|
@@ -189,11 +221,18 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
189
221
|
};
|
|
190
222
|
|
|
191
223
|
const renderMenuItemDefault = (item: MenuItem) => {
|
|
192
|
-
return isToggleMenuItem(item)
|
|
224
|
+
return isToggleMenuItem(item)
|
|
225
|
+
? renderToggleMenuItem(item)
|
|
226
|
+
: renderPressableMenuItem(item);
|
|
193
227
|
};
|
|
194
228
|
|
|
195
229
|
return (
|
|
196
|
-
<View
|
|
230
|
+
<View
|
|
231
|
+
style={[
|
|
232
|
+
styles.container,
|
|
233
|
+
{ backgroundColor: appliedTheme.colors.background },
|
|
234
|
+
]}
|
|
235
|
+
>
|
|
197
236
|
{(renderHeader || title || onBackPress) &&
|
|
198
237
|
(renderHeader ? (
|
|
199
238
|
renderHeader()
|
|
@@ -207,7 +246,10 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
207
246
|
/>
|
|
208
247
|
))}
|
|
209
248
|
<ScrollView
|
|
210
|
-
contentContainerStyle={[
|
|
249
|
+
contentContainerStyle={[
|
|
250
|
+
styles.scrollContent,
|
|
251
|
+
{ paddingBottom: verticalScale(60) + insets.bottom },
|
|
252
|
+
]}
|
|
211
253
|
showsVerticalScrollIndicator={false}
|
|
212
254
|
keyboardShouldPersistTaps="handled"
|
|
213
255
|
>
|
|
@@ -225,7 +267,9 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
225
267
|
<View style={styles.menuList}>
|
|
226
268
|
{menuItems.map((item) =>
|
|
227
269
|
renderMenuItem ? (
|
|
228
|
-
<React.Fragment key={item.key}>
|
|
270
|
+
<React.Fragment key={item.key}>
|
|
271
|
+
{renderMenuItem(item)}
|
|
272
|
+
</React.Fragment>
|
|
229
273
|
) : (
|
|
230
274
|
renderMenuItemDefault(item)
|
|
231
275
|
)
|
|
@@ -233,7 +277,14 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
233
277
|
</View>
|
|
234
278
|
{renderFooter?.()}
|
|
235
279
|
<View style={styles.versionContainer}>
|
|
236
|
-
<Text
|
|
280
|
+
<Text
|
|
281
|
+
style={[
|
|
282
|
+
styles.versionText,
|
|
283
|
+
{ color: appliedTheme.colors.onSurface },
|
|
284
|
+
]}
|
|
285
|
+
>
|
|
286
|
+
{versionText}
|
|
287
|
+
</Text>
|
|
237
288
|
</View>
|
|
238
289
|
</ScrollView>
|
|
239
290
|
</View>
|
|
@@ -244,10 +295,10 @@ export const AppSettings: FC<AppSettingsProps> = ({
|
|
|
244
295
|
const styles = StyleSheet.create({
|
|
245
296
|
container: { flex: 1 },
|
|
246
297
|
scrollContent: {
|
|
247
|
-
paddingHorizontal: scale(12)
|
|
298
|
+
paddingHorizontal: scale(12),
|
|
248
299
|
},
|
|
249
300
|
menuList: {
|
|
250
|
-
marginBottom: verticalScale(16)
|
|
301
|
+
marginBottom: verticalScale(16),
|
|
251
302
|
},
|
|
252
303
|
menuItem: {
|
|
253
304
|
flexDirection: 'row',
|
|
@@ -257,32 +308,32 @@ const styles = StyleSheet.create({
|
|
|
257
308
|
paddingHorizontal: scale(12),
|
|
258
309
|
borderRadius: moderateScale(8),
|
|
259
310
|
marginBottom: verticalScale(10),
|
|
260
|
-
position: 'relative'
|
|
311
|
+
position: 'relative',
|
|
261
312
|
},
|
|
262
313
|
menuIcon: {
|
|
263
314
|
marginRight: scale(10),
|
|
264
315
|
alignItems: 'center',
|
|
265
|
-
justifyContent: 'center'
|
|
316
|
+
justifyContent: 'center',
|
|
266
317
|
},
|
|
267
318
|
menuLabel: {
|
|
268
319
|
flex: 1,
|
|
269
320
|
fontSize: RFValue(12),
|
|
270
|
-
fontWeight: '500'
|
|
321
|
+
fontWeight: '500',
|
|
271
322
|
},
|
|
272
323
|
menuItemContent: {
|
|
273
324
|
flex: 1,
|
|
274
325
|
flexDirection: 'row',
|
|
275
|
-
alignItems: 'center'
|
|
326
|
+
alignItems: 'center',
|
|
276
327
|
},
|
|
277
328
|
switchStyle: {
|
|
278
|
-
transform: [{ scaleX: 1 }, { scaleY: 1 }]
|
|
329
|
+
transform: [{ scaleX: 1 }, { scaleY: 1 }],
|
|
279
330
|
},
|
|
280
331
|
versionContainer: {
|
|
281
332
|
alignItems: 'center',
|
|
282
|
-
justifyContent: 'center'
|
|
333
|
+
justifyContent: 'center',
|
|
283
334
|
},
|
|
284
335
|
versionText: {
|
|
285
336
|
fontSize: RFValue(10),
|
|
286
|
-
opacity: 0.6
|
|
287
|
-
}
|
|
337
|
+
opacity: 0.6,
|
|
338
|
+
},
|
|
288
339
|
});
|