@oxyhq/services 5.11.12 → 5.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -7
- package/lib/commonjs/core/OxyServices.js +162 -12
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/i18n/index.js +40 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/locales/en-US.json +681 -0
- package/lib/commonjs/i18n/locales/es-ES.json +689 -0
- package/lib/commonjs/ui/components/GroupedItem.js +2 -1
- package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
- package/lib/commonjs/ui/components/Header.js +4 -3
- package/lib/commonjs/ui/components/Header.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +110 -103
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileCard.js +5 -1
- package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
- package/lib/commonjs/ui/components/Section.js +1 -1
- package/lib/commonjs/ui/components/StepBasedScreen.js +16 -16
- package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +15 -3
- package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +10 -4
- package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +128 -12
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/useI18n.js +22 -0
- package/lib/commonjs/ui/hooks/useI18n.js.map +1 -0
- package/lib/commonjs/ui/navigation/OxyRouter.js +11 -131
- package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +127 -0
- package/lib/commonjs/ui/navigation/routes.js.map +1 -0
- package/lib/commonjs/ui/navigation/types.js +7 -0
- package/lib/commonjs/ui/navigation/types.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +55 -47
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +69 -61
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +378 -37
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +52 -34
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +40 -36
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +105 -78
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +92 -60
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +21 -11
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js +30 -8
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +47 -26
- package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +31 -24
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +11 -7
- package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +12 -6
- package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +11 -7
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +15 -11
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +19 -27
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +8 -4
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +14 -10
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +7 -3
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js +19 -14
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js +130 -0
- package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js +13 -13
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js +14 -20
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js +22 -8
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignInTotpStep.js +161 -0
- package/lib/commonjs/ui/screens/steps/SignInTotpStep.js.map +1 -0
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js +12 -6
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js +10 -6
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js +10 -6
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js +34 -4
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js +9 -10
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js.map +1 -1
- package/lib/commonjs/ui/styles/authStyles.js +1 -2
- package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
- package/lib/commonjs/utils/deviceManager.js +1 -1
- package/lib/commonjs/utils/deviceManager.js.map +1 -1
- package/lib/commonjs/utils/validationUtils.js +4 -2
- package/lib/commonjs/utils/validationUtils.js.map +1 -1
- package/lib/module/core/OxyServices.js +162 -12
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/i18n/index.js +35 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/locales/en-US.json +681 -0
- package/lib/module/i18n/locales/es-ES.json +689 -0
- package/lib/module/ui/components/GroupedItem.js +2 -1
- package/lib/module/ui/components/GroupedItem.js.map +1 -1
- package/lib/module/ui/components/Header.js +4 -3
- package/lib/module/ui/components/Header.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +109 -103
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/ProfileCard.js +5 -1
- package/lib/module/ui/components/ProfileCard.js.map +1 -1
- package/lib/module/ui/components/Section.js +1 -1
- package/lib/module/ui/components/StepBasedScreen.js +16 -16
- package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
- package/lib/module/ui/components/internal/GroupedPillButtons.js +15 -3
- package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
- package/lib/module/ui/components/internal/PinInput.js +9 -4
- package/lib/module/ui/components/internal/PinInput.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +128 -12
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useI18n.js +18 -0
- package/lib/module/ui/hooks/useI18n.js.map +1 -0
- package/lib/module/ui/navigation/OxyRouter.js +7 -124
- package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +122 -0
- package/lib/module/ui/navigation/routes.js.map +1 -0
- package/lib/module/ui/navigation/types.js +19 -1
- package/lib/module/ui/navigation/types.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +55 -47
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +69 -61
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +378 -37
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +52 -34
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +40 -36
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +107 -80
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +92 -60
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +21 -11
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js +30 -8
- package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/SignInScreen.js +47 -26
- package/lib/module/ui/screens/SignInScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +31 -24
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInPasswordStep.js +11 -7
- package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
- package/lib/module/ui/screens/internal/SignInUsernameStep.js +12 -6
- package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js +11 -7
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js +15 -11
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js +19 -27
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +8 -4
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +14 -10
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js +7 -3
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/module/ui/screens/steps/RecoverRequestStep.js +19 -14
- package/lib/module/ui/screens/steps/RecoverRequestStep.js.map +1 -1
- package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js +125 -0
- package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js.map +1 -0
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js +13 -13
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js.map +1 -1
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js +14 -20
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignInPasswordStep.js +22 -8
- package/lib/module/ui/screens/steps/SignInPasswordStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignInTotpStep.js +156 -0
- package/lib/module/ui/screens/steps/SignInTotpStep.js.map +1 -0
- package/lib/module/ui/screens/steps/SignInUsernameStep.js +12 -6
- package/lib/module/ui/screens/steps/SignInUsernameStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js +10 -6
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js +10 -6
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js +34 -4
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js.map +1 -1
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js +9 -10
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js.map +1 -1
- package/lib/module/ui/styles/authStyles.js +1 -2
- package/lib/module/ui/styles/authStyles.js.map +1 -1
- package/lib/module/utils/deviceManager.js +1 -1
- package/lib/module/utils/deviceManager.js.map +1 -1
- package/lib/module/utils/validationUtils.js +4 -2
- package/lib/module/utils/validationUtils.js.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +57 -3
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/i18n/index.d.ts +4 -0
- package/lib/typescript/i18n/index.d.ts.map +1 -0
- package/lib/typescript/models/interfaces.d.ts +4 -0
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
- package/lib/typescript/ui/components/Header.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -1
- package/lib/typescript/ui/components/StepBasedScreen.d.ts +2 -1
- package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
- package/lib/typescript/ui/components/internal/PinInput.d.ts +6 -3
- package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +7 -4
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useI18n.d.ts +5 -0
- package/lib/typescript/ui/hooks/useI18n.d.ts.map +1 -0
- package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/routes.d.ts +9 -0
- package/lib/typescript/ui/navigation/routes.d.ts.map +1 -0
- package/lib/typescript/ui/navigation/types.d.ts +24 -10
- package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +2 -1
- package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts +4 -1
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts +24 -0
- package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts +3 -1
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts +1 -0
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts +19 -0
- package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts.map +1 -0
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts.map +1 -1
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts +2 -1
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts.map +1 -1
- package/lib/typescript/ui/styles/authStyles.d.ts +0 -1
- package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -1
- package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
- package/package.json +49 -15
- package/src/core/OxyServices.ts +138 -19
- package/src/i18n/index.ts +39 -0
- package/src/i18n/locales/en-US.json +681 -0
- package/src/i18n/locales/es-ES.json +689 -0
- package/src/models/interfaces.ts +6 -1
- package/src/ui/components/GroupedItem.tsx +2 -1
- package/src/ui/components/Header.tsx +4 -3
- package/src/ui/components/OxyProvider.tsx +105 -112
- package/src/ui/components/ProfileCard.tsx +5 -1
- package/src/ui/components/Section.tsx +1 -1
- package/src/ui/components/StepBasedScreen.tsx +16 -13
- package/src/ui/components/internal/GroupedPillButtons.tsx +10 -6
- package/src/ui/components/internal/PinInput.tsx +15 -6
- package/src/ui/context/OxyContext.tsx +123 -20
- package/src/ui/hooks/useI18n.ts +12 -0
- package/src/ui/navigation/OxyRouter.tsx +15 -134
- package/src/ui/navigation/routes.ts +153 -0
- package/src/ui/navigation/types.ts +28 -10
- package/src/ui/screens/AccountCenterScreen.tsx +47 -45
- package/src/ui/screens/AccountOverviewScreen.tsx +68 -70
- package/src/ui/screens/AccountSettingsScreen.tsx +265 -41
- package/src/ui/screens/AccountSwitcherScreen.tsx +35 -33
- package/src/ui/screens/FeedbackScreen.tsx +39 -37
- package/src/ui/screens/LanguageSelectorScreen.tsx +99 -70
- package/src/ui/screens/PaymentGatewayScreen.tsx +5 -5
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +56 -54
- package/src/ui/screens/ProfileScreen.tsx +14 -8
- package/src/ui/screens/RecoverAccountScreen.tsx +29 -8
- package/src/ui/screens/SignInScreen.tsx +39 -30
- package/src/ui/screens/WelcomeNewUserScreen.tsx +31 -17
- package/src/ui/screens/internal/SignInPasswordStep.tsx +11 -8
- package/src/ui/screens/internal/SignInUsernameStep.tsx +10 -8
- package/src/ui/screens/karma/KarmaAboutScreen.tsx +23 -11
- package/src/ui/screens/karma/KarmaCenterScreen.tsx +21 -11
- package/src/ui/screens/karma/KarmaFAQScreen.tsx +15 -33
- package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +6 -4
- package/src/ui/screens/karma/KarmaRewardsScreen.tsx +28 -10
- package/src/ui/screens/karma/KarmaRulesScreen.tsx +5 -3
- package/src/ui/screens/steps/RecoverRequestStep.tsx +20 -17
- package/src/ui/screens/steps/RecoverResetPasswordStep.tsx +133 -0
- package/src/ui/screens/steps/RecoverSuccessStep.tsx +12 -19
- package/src/ui/screens/steps/RecoverVerifyStep.tsx +15 -24
- package/src/ui/screens/steps/SignInPasswordStep.tsx +19 -6
- package/src/ui/screens/steps/SignInTotpStep.tsx +129 -0
- package/src/ui/screens/steps/SignInUsernameStep.tsx +11 -10
- package/src/ui/screens/steps/SignUpIdentityStep.tsx +10 -11
- package/src/ui/screens/steps/SignUpSecurityStep.tsx +10 -11
- package/src/ui/screens/steps/SignUpSummaryStep.tsx +24 -9
- package/src/ui/screens/steps/SignUpWelcomeStep.tsx +8 -14
- package/src/ui/styles/authStyles.ts +0 -1
- package/src/utils/deviceManager.ts +1 -1
- package/src/utils/validationUtils.ts +5 -3
|
@@ -7,6 +7,7 @@ import { fontFamilies } from '../styles/fonts';
|
|
|
7
7
|
import { toast } from '../../lib/sonner';
|
|
8
8
|
import { confirmAction } from '../utils/confirmAction';
|
|
9
9
|
import { Ionicons } from '@expo/vector-icons';
|
|
10
|
+
import { useI18n } from '../hooks/useI18n';
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
12
|
const PremiumSubscriptionScreen = ({
|
|
12
13
|
onClose,
|
|
@@ -29,6 +30,9 @@ const PremiumSubscriptionScreen = ({
|
|
|
29
30
|
const [currentAppPackage, setCurrentAppPackage] = useState('mention'); // Default to mention for demo
|
|
30
31
|
|
|
31
32
|
const isDarkTheme = theme === 'dark';
|
|
33
|
+
const {
|
|
34
|
+
t
|
|
35
|
+
} = useI18n();
|
|
32
36
|
const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
|
|
33
37
|
const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
|
|
34
38
|
const secondaryBackgroundColor = isDarkTheme ? '#222222' : '#F5F5F5';
|
|
@@ -291,14 +295,16 @@ const PremiumSubscriptionScreen = ({
|
|
|
291
295
|
const selectedPlan = mockPlans.find(plan => plan.id === planId);
|
|
292
296
|
if (!selectedPlan?.applicableApps.includes(currentAppPackage)) {
|
|
293
297
|
console.log(`❌ Subscription blocked: Plan "${selectedPlan?.name}" not available for app "${currentAppPackage}"`);
|
|
294
|
-
toast.error(
|
|
298
|
+
toast.error(t('premium.toasts.planUnavailable', {
|
|
299
|
+
app: currentAppPackage
|
|
300
|
+
}) || `This plan is not available for the current app (${currentAppPackage})`);
|
|
295
301
|
return;
|
|
296
302
|
}
|
|
297
303
|
|
|
298
304
|
// Special restriction for Mention+ plan - only available in mention app
|
|
299
305
|
if (planId === 'mention-plus' && currentAppPackage !== 'mention') {
|
|
300
306
|
console.log(`❌ Subscription blocked: Mention+ plan requires app to be "mention", current app is "${currentAppPackage}"`);
|
|
301
|
-
toast.error('Mention+ is only available in the Mention app');
|
|
307
|
+
toast.error(t('premium.toasts.mentionOnly') || 'Mention+ is only available in the Mention app');
|
|
302
308
|
return;
|
|
303
309
|
}
|
|
304
310
|
console.log(`✅ Subscription allowed: Plan "${selectedPlan.name}" is available for app "${currentAppPackage}"`);
|
|
@@ -306,7 +312,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
306
312
|
|
|
307
313
|
// Mock payment processing
|
|
308
314
|
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
309
|
-
toast.success('Subscription activated successfully!');
|
|
315
|
+
toast.success(t('premium.toasts.activated') || 'Subscription activated successfully!');
|
|
310
316
|
|
|
311
317
|
// Mock subscription update
|
|
312
318
|
setSubscription({
|
|
@@ -322,22 +328,22 @@ const PremiumSubscriptionScreen = ({
|
|
|
322
328
|
loadSubscriptionData();
|
|
323
329
|
} catch (error) {
|
|
324
330
|
console.error('Payment failed:', error);
|
|
325
|
-
toast.error('Payment failed. Please try again.');
|
|
331
|
+
toast.error(t('premium.toasts.paymentFailed') || 'Payment failed. Please try again.');
|
|
326
332
|
} finally {
|
|
327
333
|
setProcessingPayment(false);
|
|
328
334
|
}
|
|
329
335
|
};
|
|
330
336
|
const handleCancelSubscription = () => {
|
|
331
|
-
confirmAction('Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.', async () => {
|
|
337
|
+
confirmAction(t('premium.confirms.cancelSub') || 'Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.', async () => {
|
|
332
338
|
try {
|
|
333
339
|
// Mock cancellation
|
|
334
340
|
setSubscription(prev => prev ? {
|
|
335
341
|
...prev,
|
|
336
342
|
cancelAtPeriodEnd: true
|
|
337
343
|
} : null);
|
|
338
|
-
toast.success('Subscription will be canceled at the end of the billing period');
|
|
344
|
+
toast.success(t('premium.toasts.willCancel') || 'Subscription will be canceled at the end of the billing period');
|
|
339
345
|
} catch (error) {
|
|
340
|
-
toast.error('Failed to cancel subscription');
|
|
346
|
+
toast.error(t('premium.toasts.cancelFailed') || 'Failed to cancel subscription');
|
|
341
347
|
}
|
|
342
348
|
});
|
|
343
349
|
};
|
|
@@ -347,9 +353,9 @@ const PremiumSubscriptionScreen = ({
|
|
|
347
353
|
...prev,
|
|
348
354
|
cancelAtPeriodEnd: false
|
|
349
355
|
} : null);
|
|
350
|
-
toast.success('Subscription reactivated successfully');
|
|
356
|
+
toast.success(t('premium.toasts.reactivated') || 'Subscription reactivated successfully');
|
|
351
357
|
} catch (error) {
|
|
352
|
-
toast.error('Failed to reactivate subscription');
|
|
358
|
+
toast.error(t('premium.toasts.reactivateFailed') || 'Failed to reactivate subscription');
|
|
353
359
|
}
|
|
354
360
|
};
|
|
355
361
|
const formatPrice = (price, currency, interval) => {
|
|
@@ -393,25 +399,31 @@ const PremiumSubscriptionScreen = ({
|
|
|
393
399
|
isSubscribed: true
|
|
394
400
|
} : feature));
|
|
395
401
|
const feature = individualFeatures.find(f => f.id === featureId);
|
|
396
|
-
toast.success(
|
|
402
|
+
toast.success(t('premium.toasts.featureSubscribed', {
|
|
403
|
+
name: feature?.name ?? ''
|
|
404
|
+
}) ?? `Subscribed to ${feature?.name} successfully!`);
|
|
397
405
|
} catch (error) {
|
|
398
406
|
console.error('Feature subscription failed:', error);
|
|
399
|
-
toast.error('Feature subscription failed. Please try again.');
|
|
407
|
+
toast.error(t('premium.toasts.featureSubscribeFailed') || 'Feature subscription failed. Please try again.');
|
|
400
408
|
} finally {
|
|
401
409
|
setProcessingPayment(false);
|
|
402
410
|
}
|
|
403
411
|
};
|
|
404
412
|
const handleFeatureUnsubscribe = async featureId => {
|
|
405
413
|
const feature = individualFeatures.find(f => f.id === featureId);
|
|
406
|
-
confirmAction(
|
|
414
|
+
confirmAction(t('premium.confirms.unsubscribeFeature', {
|
|
415
|
+
name: feature?.name ?? ''
|
|
416
|
+
}) ?? `Are you sure you want to unsubscribe from ${feature?.name}?`, async () => {
|
|
407
417
|
try {
|
|
408
418
|
setIndividualFeatures(prev => prev.map(f => f.id === featureId ? {
|
|
409
419
|
...f,
|
|
410
420
|
isSubscribed: false
|
|
411
421
|
} : f));
|
|
412
|
-
toast.success(
|
|
422
|
+
toast.success(t('premium.toasts.featureUnsubscribed', {
|
|
423
|
+
name: feature?.name ?? ''
|
|
424
|
+
}) ?? `Unsubscribed from ${feature?.name}`);
|
|
413
425
|
} catch (error) {
|
|
414
|
-
toast.error('Failed to unsubscribe from feature');
|
|
426
|
+
toast.error(t('premium.toasts.featureUnsubscribeFailed') || 'Failed to unsubscribe from feature');
|
|
415
427
|
}
|
|
416
428
|
});
|
|
417
429
|
};
|
|
@@ -445,12 +457,14 @@ const PremiumSubscriptionScreen = ({
|
|
|
445
457
|
style: [styles.headerTitle, {
|
|
446
458
|
color: textColor
|
|
447
459
|
}],
|
|
448
|
-
children:
|
|
449
|
-
}), /*#__PURE__*/
|
|
460
|
+
children: t('premium.title') || 'Oxy+ Subscriptions'
|
|
461
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
450
462
|
style: [styles.currentAppText, {
|
|
451
463
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
452
464
|
}],
|
|
453
|
-
children:
|
|
465
|
+
children: t('premium.forApp', {
|
|
466
|
+
app: getAppDisplayName(currentAppPackage)
|
|
467
|
+
}) || `for ${getAppDisplayName(currentAppPackage)}`
|
|
454
468
|
})]
|
|
455
469
|
}), onClose && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
456
470
|
style: styles.closeButton,
|
|
@@ -474,7 +488,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
474
488
|
style: [styles.sectionTitle, {
|
|
475
489
|
color: textColor
|
|
476
490
|
}],
|
|
477
|
-
children:
|
|
491
|
+
children: t('premium.current.title') || 'Current Subscription'
|
|
478
492
|
}), /*#__PURE__*/_jsxs(View, {
|
|
479
493
|
style: [styles.currentSubscriptionCard, {
|
|
480
494
|
backgroundColor: secondaryBackgroundColor,
|
|
@@ -503,22 +517,26 @@ const PremiumSubscriptionScreen = ({
|
|
|
503
517
|
children: subscription.status.toUpperCase()
|
|
504
518
|
})
|
|
505
519
|
})]
|
|
506
|
-
}), /*#__PURE__*/
|
|
520
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
507
521
|
style: [styles.subscriptionDetail, {
|
|
508
522
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
509
523
|
}],
|
|
510
|
-
children:
|
|
524
|
+
children: t('premium.current.renewsOn', {
|
|
525
|
+
date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
|
|
526
|
+
}) || `Renews on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
|
|
511
527
|
}), subscription.cancelAtPeriodEnd && /*#__PURE__*/_jsxs(View, {
|
|
512
528
|
style: styles.cancelNotice,
|
|
513
529
|
children: [/*#__PURE__*/_jsx(Ionicons, {
|
|
514
530
|
name: "warning",
|
|
515
531
|
size: 16,
|
|
516
532
|
color: warningColor
|
|
517
|
-
}), /*#__PURE__*/
|
|
533
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
518
534
|
style: [styles.cancelText, {
|
|
519
535
|
color: warningColor
|
|
520
536
|
}],
|
|
521
|
-
children:
|
|
537
|
+
children: t('premium.current.willCancelOn', {
|
|
538
|
+
date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
|
|
539
|
+
}) || `Subscription will cancel on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
|
|
522
540
|
})]
|
|
523
541
|
}), /*#__PURE__*/_jsxs(View, {
|
|
524
542
|
style: styles.subscriptionActions,
|
|
@@ -529,7 +547,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
529
547
|
onPress: handleReactivateSubscription,
|
|
530
548
|
children: /*#__PURE__*/_jsx(Text, {
|
|
531
549
|
style: styles.actionButtonText,
|
|
532
|
-
children:
|
|
550
|
+
children: t('premium.actions.reactivate') || 'Reactivate'
|
|
533
551
|
})
|
|
534
552
|
}) : /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
535
553
|
style: [styles.actionButton, {
|
|
@@ -538,7 +556,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
538
556
|
onPress: handleCancelSubscription,
|
|
539
557
|
children: /*#__PURE__*/_jsx(Text, {
|
|
540
558
|
style: styles.actionButtonText,
|
|
541
|
-
children:
|
|
559
|
+
children: t('premium.actions.cancelSubBtn') || 'Cancel Subscription'
|
|
542
560
|
})
|
|
543
561
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
544
562
|
style: [styles.actionButton, styles.secondaryButton, {
|
|
@@ -548,7 +566,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
548
566
|
style: [styles.actionButtonText, {
|
|
549
567
|
color: textColor
|
|
550
568
|
}],
|
|
551
|
-
children:
|
|
569
|
+
children: t('premium.actions.manageBilling') || 'Manage Billing'
|
|
552
570
|
})
|
|
553
571
|
})]
|
|
554
572
|
})]
|
|
@@ -568,7 +586,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
568
586
|
style: [styles.billingOptionText, {
|
|
569
587
|
color: billingInterval === 'month' ? '#FFFFFF' : textColor
|
|
570
588
|
}],
|
|
571
|
-
children:
|
|
589
|
+
children: t('premium.billing.monthly') || 'Monthly'
|
|
572
590
|
})
|
|
573
591
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
574
592
|
style: [styles.billingOption, billingInterval === 'year' && {
|
|
@@ -579,14 +597,14 @@ const PremiumSubscriptionScreen = ({
|
|
|
579
597
|
style: [styles.billingOptionText, {
|
|
580
598
|
color: billingInterval === 'year' ? '#FFFFFF' : textColor
|
|
581
599
|
}],
|
|
582
|
-
children:
|
|
600
|
+
children: t('premium.billing.yearly') || 'Yearly'
|
|
583
601
|
})
|
|
584
602
|
})]
|
|
585
603
|
}), billingInterval === 'year' && /*#__PURE__*/_jsx(Text, {
|
|
586
604
|
style: [styles.savingsText, {
|
|
587
605
|
color: successColor
|
|
588
606
|
}],
|
|
589
|
-
children:
|
|
607
|
+
children: t('premium.billing.saveYearly') || '💰 Save 20% with yearly billing'
|
|
590
608
|
})]
|
|
591
609
|
});
|
|
592
610
|
const renderPlanCard = plan => {
|
|
@@ -597,12 +615,16 @@ const PremiumSubscriptionScreen = ({
|
|
|
597
615
|
const isAvailableForCurrentApp = plan.applicableApps.includes(currentAppPackage);
|
|
598
616
|
const getAppScopeText = () => {
|
|
599
617
|
if (plan.appScope === 'ecosystem') {
|
|
600
|
-
return 'Works across all Oxy apps';
|
|
618
|
+
return t('premium.plan.scope.allApps') || 'Works across all Oxy apps';
|
|
601
619
|
} else if (isAppSpecific) {
|
|
602
620
|
const appName = plan.applicableApps[0];
|
|
603
|
-
return
|
|
621
|
+
return t('premium.plan.scope.exclusive', {
|
|
622
|
+
app: appName
|
|
623
|
+
}) || `Exclusive to ${appName} app`;
|
|
604
624
|
} else {
|
|
605
|
-
return
|
|
625
|
+
return t('premium.plan.scope.availableIn', {
|
|
626
|
+
apps: plan.applicableApps.join(', ')
|
|
627
|
+
}) || `Available in: ${plan.applicableApps.join(', ')}`;
|
|
606
628
|
}
|
|
607
629
|
};
|
|
608
630
|
const getAvailabilityStatus = () => {
|
|
@@ -610,7 +632,9 @@ const PremiumSubscriptionScreen = ({
|
|
|
610
632
|
const requiredApp = plan.applicableApps[0];
|
|
611
633
|
return {
|
|
612
634
|
available: false,
|
|
613
|
-
reason:
|
|
635
|
+
reason: t('premium.plan.scope.exclusive', {
|
|
636
|
+
app: requiredApp
|
|
637
|
+
}) || `Only available in ${requiredApp} app`
|
|
614
638
|
};
|
|
615
639
|
}
|
|
616
640
|
return {
|
|
@@ -643,7 +667,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
643
667
|
}],
|
|
644
668
|
children: /*#__PURE__*/_jsx(Text, {
|
|
645
669
|
style: styles.appSpecificText,
|
|
646
|
-
children: isAvailableForCurrentApp ? 'App Exclusive' : 'Not Available'
|
|
670
|
+
children: isAvailableForCurrentApp ? t('premium.plan.badge.appExclusive') || 'App Exclusive' : t('premium.plan.badge.notAvailable') || 'Not Available'
|
|
647
671
|
})
|
|
648
672
|
}), /*#__PURE__*/_jsxs(View, {
|
|
649
673
|
style: styles.planHeader,
|
|
@@ -675,11 +699,13 @@ const PremiumSubscriptionScreen = ({
|
|
|
675
699
|
color: textColor
|
|
676
700
|
}],
|
|
677
701
|
children: pricing.formatted
|
|
678
|
-
}), /*#__PURE__*/
|
|
702
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
679
703
|
style: [styles.planInterval, {
|
|
680
704
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
681
705
|
}],
|
|
682
|
-
children:
|
|
706
|
+
children: t('premium.plan.perInterval', {
|
|
707
|
+
interval: pricing.interval
|
|
708
|
+
}) || `per ${pricing.interval}`
|
|
683
709
|
})]
|
|
684
710
|
}), /*#__PURE__*/_jsx(View, {
|
|
685
711
|
style: styles.planFeatures,
|
|
@@ -702,7 +728,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
702
728
|
}],
|
|
703
729
|
children: /*#__PURE__*/_jsx(Text, {
|
|
704
730
|
style: styles.currentPlanText,
|
|
705
|
-
children:
|
|
731
|
+
children: t('premium.plan.current') || 'Current Plan'
|
|
706
732
|
})
|
|
707
733
|
}) : !availability.available ? /*#__PURE__*/_jsx(View, {
|
|
708
734
|
style: [styles.unavailablePlanButton, {
|
|
@@ -712,7 +738,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
712
738
|
style: [styles.unavailablePlanText, {
|
|
713
739
|
color: isDarkTheme ? '#888888' : '#999999'
|
|
714
740
|
}],
|
|
715
|
-
children:
|
|
741
|
+
children: t('premium.plan.notAvailableInApp') || 'Not Available in Current App'
|
|
716
742
|
})
|
|
717
743
|
}) : /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
718
744
|
style: [styles.selectPlanButton, {
|
|
@@ -723,11 +749,13 @@ const PremiumSubscriptionScreen = ({
|
|
|
723
749
|
children: processingPayment ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
724
750
|
color: "#FFFFFF",
|
|
725
751
|
size: "small"
|
|
726
|
-
}) : /*#__PURE__*/
|
|
752
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
727
753
|
style: [styles.selectPlanText, {
|
|
728
754
|
color: plan.isPopular ? '#FFFFFF' : textColor
|
|
729
755
|
}],
|
|
730
|
-
children:
|
|
756
|
+
children: t('premium.actions.subscribeTo', {
|
|
757
|
+
name: plan.name
|
|
758
|
+
}) || `Subscribe to ${plan.name}`
|
|
731
759
|
})
|
|
732
760
|
})]
|
|
733
761
|
}, plan.id);
|
|
@@ -748,7 +776,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
748
776
|
style: [styles.tabText, {
|
|
749
777
|
color: activeTab === 'plans' ? primaryColor : textColor
|
|
750
778
|
}],
|
|
751
|
-
children:
|
|
779
|
+
children: t('premium.tabs.plans') || 'Full Plans'
|
|
752
780
|
})
|
|
753
781
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
754
782
|
style: [styles.tab, activeTab === 'features' && {
|
|
@@ -760,7 +788,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
760
788
|
style: [styles.tabText, {
|
|
761
789
|
color: activeTab === 'features' ? primaryColor : textColor
|
|
762
790
|
}],
|
|
763
|
-
children:
|
|
791
|
+
children: t('premium.tabs.features') || 'Individual Features'
|
|
764
792
|
})
|
|
765
793
|
})]
|
|
766
794
|
})
|
|
@@ -804,9 +832,11 @@ const PremiumSubscriptionScreen = ({
|
|
|
804
832
|
};
|
|
805
833
|
const getAppScopeText = () => {
|
|
806
834
|
if (feature.appScope === 'ecosystem') {
|
|
807
|
-
return '
|
|
835
|
+
return t('premium.feature.scope.allApps');
|
|
808
836
|
} else {
|
|
809
|
-
return
|
|
837
|
+
return t('premium.feature.scope.availableIn', {
|
|
838
|
+
apps: feature.applicableApps.join(', ')
|
|
839
|
+
}) || `Available in: ${feature.applicableApps.join(', ')}`;
|
|
810
840
|
}
|
|
811
841
|
};
|
|
812
842
|
return /*#__PURE__*/_jsxs(View, {
|
|
@@ -866,11 +896,13 @@ const PremiumSubscriptionScreen = ({
|
|
|
866
896
|
color: textColor
|
|
867
897
|
}],
|
|
868
898
|
children: pricing.formatted
|
|
869
|
-
}), /*#__PURE__*/
|
|
899
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
870
900
|
style: [styles.featureInterval, {
|
|
871
901
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
872
902
|
}],
|
|
873
|
-
children:
|
|
903
|
+
children: t('premium.plan.perInterval', {
|
|
904
|
+
interval: pricing.interval
|
|
905
|
+
}) || `per ${pricing.interval}`
|
|
874
906
|
})]
|
|
875
907
|
}), isIncludedInCurrentPlan ? /*#__PURE__*/_jsxs(View, {
|
|
876
908
|
style: [styles.includedInPlanButton, {
|
|
@@ -882,7 +914,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
882
914
|
color: "#FFFFFF"
|
|
883
915
|
}), /*#__PURE__*/_jsx(Text, {
|
|
884
916
|
style: styles.includedInPlanText,
|
|
885
|
-
children:
|
|
917
|
+
children: t('premium.feature.includedInPlan') || 'Included in your plan'
|
|
886
918
|
})]
|
|
887
919
|
}) : isSubscribed ? /*#__PURE__*/_jsxs(View, {
|
|
888
920
|
style: styles.featureActions,
|
|
@@ -896,7 +928,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
896
928
|
color: "#FFFFFF"
|
|
897
929
|
}), /*#__PURE__*/_jsx(Text, {
|
|
898
930
|
style: styles.subscribedText,
|
|
899
|
-
children:
|
|
931
|
+
children: t('premium.feature.subscribed') || 'Subscribed'
|
|
900
932
|
})]
|
|
901
933
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
902
934
|
style: [styles.unsubscribeButton, {
|
|
@@ -907,7 +939,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
907
939
|
style: [styles.unsubscribeText, {
|
|
908
940
|
color: dangerColor
|
|
909
941
|
}],
|
|
910
|
-
children:
|
|
942
|
+
children: t('premium.actions.unsubscribe') || 'Unsubscribe'
|
|
911
943
|
})
|
|
912
944
|
})]
|
|
913
945
|
}) : canPurchase ? /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
@@ -921,7 +953,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
921
953
|
size: "small"
|
|
922
954
|
}) : /*#__PURE__*/_jsx(Text, {
|
|
923
955
|
style: styles.subscribeFeatureText,
|
|
924
|
-
children:
|
|
956
|
+
children: t('premium.actions.subscribe') || 'Subscribe'
|
|
925
957
|
})
|
|
926
958
|
}) : /*#__PURE__*/_jsx(View, {
|
|
927
959
|
style: [styles.unavailableButton, {
|
|
@@ -1020,7 +1052,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
1020
1052
|
style: [styles.loadingText, {
|
|
1021
1053
|
color: textColor
|
|
1022
1054
|
}],
|
|
1023
|
-
children:
|
|
1055
|
+
children: t('premium.loading') || 'Loading subscription plans...'
|
|
1024
1056
|
})]
|
|
1025
1057
|
});
|
|
1026
1058
|
}
|
|
@@ -1037,12 +1069,12 @@ const PremiumSubscriptionScreen = ({
|
|
|
1037
1069
|
style: [styles.sectionTitle, {
|
|
1038
1070
|
color: textColor
|
|
1039
1071
|
}],
|
|
1040
|
-
children:
|
|
1072
|
+
children: t('premium.choosePlan') || 'Choose Your Plan'
|
|
1041
1073
|
}), /*#__PURE__*/_jsx(Text, {
|
|
1042
1074
|
style: [styles.sectionSubtitle, {
|
|
1043
1075
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
1044
1076
|
}],
|
|
1045
|
-
children:
|
|
1077
|
+
children: t('premium.choosePlanSubtitle') || 'Unlock premium features and take your experience to the next level'
|
|
1046
1078
|
})]
|
|
1047
1079
|
}), !subscription && renderTabNavigation(), !subscription && activeTab === 'plans' && renderBillingToggle(), activeTab === 'plans' ? /*#__PURE__*/_jsxs(View, {
|
|
1048
1080
|
style: styles.section,
|
|
@@ -1050,7 +1082,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
1050
1082
|
style: [styles.sectionTitle, {
|
|
1051
1083
|
color: textColor
|
|
1052
1084
|
}],
|
|
1053
|
-
children:
|
|
1085
|
+
children: t('premium.availablePlans') || 'Available Plans'
|
|
1054
1086
|
}), plans.map(renderPlanCard)]
|
|
1055
1087
|
}) : renderIndividualFeatures(), /*#__PURE__*/_jsxs(View, {
|
|
1056
1088
|
style: styles.section,
|
|
@@ -1058,7 +1090,7 @@ const PremiumSubscriptionScreen = ({
|
|
|
1058
1090
|
style: [styles.sectionTitle, {
|
|
1059
1091
|
color: textColor
|
|
1060
1092
|
}],
|
|
1061
|
-
children:
|
|
1093
|
+
children: t('premium.why') || 'Why Go Premium?'
|
|
1062
1094
|
}), /*#__PURE__*/_jsxs(View, {
|
|
1063
1095
|
style: [styles.benefitsCard, {
|
|
1064
1096
|
backgroundColor: secondaryBackgroundColor,
|
|
@@ -1076,12 +1108,12 @@ const PremiumSubscriptionScreen = ({
|
|
|
1076
1108
|
style: [styles.benefitTitle, {
|
|
1077
1109
|
color: textColor
|
|
1078
1110
|
}],
|
|
1079
|
-
children:
|
|
1111
|
+
children: t('premium.benefits.performance.title') || 'Enhanced Performance'
|
|
1080
1112
|
}), /*#__PURE__*/_jsx(Text, {
|
|
1081
1113
|
style: [styles.benefitDescription, {
|
|
1082
1114
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
1083
1115
|
}],
|
|
1084
|
-
children:
|
|
1116
|
+
children: t('premium.benefits.performance.desc') || 'Faster processing and priority access to our servers'
|
|
1085
1117
|
})]
|
|
1086
1118
|
})]
|
|
1087
1119
|
}), /*#__PURE__*/_jsxs(View, {
|
|
@@ -1096,12 +1128,12 @@ const PremiumSubscriptionScreen = ({
|
|
|
1096
1128
|
style: [styles.benefitTitle, {
|
|
1097
1129
|
color: textColor
|
|
1098
1130
|
}],
|
|
1099
|
-
children:
|
|
1131
|
+
children: t('premium.benefits.security.title') || 'Advanced Security'
|
|
1100
1132
|
}), /*#__PURE__*/_jsx(Text, {
|
|
1101
1133
|
style: [styles.benefitDescription, {
|
|
1102
1134
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
1103
1135
|
}],
|
|
1104
|
-
children:
|
|
1136
|
+
children: t('premium.benefits.security.desc') || 'Enhanced encryption and security features'
|
|
1105
1137
|
})]
|
|
1106
1138
|
})]
|
|
1107
1139
|
}), /*#__PURE__*/_jsxs(View, {
|
|
@@ -1116,12 +1148,12 @@ const PremiumSubscriptionScreen = ({
|
|
|
1116
1148
|
style: [styles.benefitTitle, {
|
|
1117
1149
|
color: textColor
|
|
1118
1150
|
}],
|
|
1119
|
-
children:
|
|
1151
|
+
children: t('premium.benefits.support.title') || 'Priority Support'
|
|
1120
1152
|
}), /*#__PURE__*/_jsx(Text, {
|
|
1121
1153
|
style: [styles.benefitDescription, {
|
|
1122
1154
|
color: isDarkTheme ? '#BBBBBB' : '#666666'
|
|
1123
1155
|
}],
|
|
1124
|
-
children:
|
|
1156
|
+
children: t('premium.benefits.support.desc') || 'Get help faster with our premium support team'
|
|
1125
1157
|
})]
|
|
1126
1158
|
})]
|
|
1127
1159
|
})]
|