@oxyhq/services 5.11.11 → 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/FollowButton.js +1 -1
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- 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 +112 -105
- 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 +17 -17
- 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 +2 -2
- 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/FollowButton.js +1 -1
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- 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 +111 -105
- 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 +17 -17
- 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 +2 -2
- 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/FollowButton.tsx +2 -2
- package/src/ui/components/GroupedItem.tsx +2 -1
- package/src/ui/components/Header.tsx +4 -3
- package/src/ui/components/OxyProvider.tsx +107 -114
- package/src/ui/components/ProfileCard.tsx +5 -1
- package/src/ui/components/Section.tsx +1 -1
- package/src/ui/components/StepBasedScreen.tsx +17 -14
- 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 +6 -6
- 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
|
@@ -21,6 +21,7 @@ import { toast } from '../../lib/sonner';
|
|
|
21
21
|
import { confirmAction } from '../utils/confirmAction';
|
|
22
22
|
import { Ionicons } from '@expo/vector-icons';
|
|
23
23
|
import { Header, Section, GroupedSection, GroupedItem } from '../components';
|
|
24
|
+
import { useI18n } from '../hooks/useI18n';
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* AccountOverviewScreen - Optimized for performance
|
|
@@ -38,6 +39,7 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
38
39
|
navigate,
|
|
39
40
|
}) => {
|
|
40
41
|
const { user, logout, isLoading, sessions, activeSessionId, oxyServices, isAuthenticated } = useOxy();
|
|
42
|
+
const { t } = useI18n();
|
|
41
43
|
const [showMoreAccounts, setShowMoreAccounts] = useState(false);
|
|
42
44
|
const [additionalAccountsData, setAdditionalAccountsData] = useState<any[]>([]);
|
|
43
45
|
const [loadingAdditionalAccounts, setLoadingAdditionalAccounts] = useState(false);
|
|
@@ -127,32 +129,26 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
127
129
|
}
|
|
128
130
|
} catch (error) {
|
|
129
131
|
console.error('Logout failed:', error);
|
|
130
|
-
toast.error('
|
|
132
|
+
toast.error(t('common.errors.signOutFailed'));
|
|
131
133
|
}
|
|
132
134
|
}, [logout, onClose]);
|
|
133
135
|
|
|
134
136
|
const confirmLogout = useCallback(() => {
|
|
135
|
-
confirmAction(
|
|
136
|
-
'Are you sure you want to sign out?',
|
|
137
|
-
handleLogout
|
|
138
|
-
);
|
|
137
|
+
confirmAction(t('common.confirms.signOut'), handleLogout);
|
|
139
138
|
}, [handleLogout]);
|
|
140
139
|
|
|
141
140
|
const handleAddAccount = useCallback(() => {
|
|
142
|
-
toast.info('
|
|
143
|
-
}, []);
|
|
141
|
+
toast.info(t('accountOverview.addAccountComing'));
|
|
142
|
+
}, [t]);
|
|
144
143
|
|
|
145
144
|
const handleSignOutAll = useCallback(() => {
|
|
146
|
-
confirmAction(
|
|
147
|
-
'Are you sure you want to sign out of all accounts?',
|
|
148
|
-
handleLogout
|
|
149
|
-
);
|
|
145
|
+
confirmAction(t('common.confirms.signOutAll'), handleLogout);
|
|
150
146
|
}, [handleLogout]);
|
|
151
147
|
|
|
152
148
|
if (!isAuthenticated) {
|
|
153
149
|
return (
|
|
154
150
|
<View style={[styles.container, { backgroundColor: themeStyles.backgroundColor }]}>
|
|
155
|
-
<Text style={[styles.message, { color: themeStyles.textColor }]}>
|
|
151
|
+
<Text style={[styles.message, { color: themeStyles.textColor }]}>{t('common.status.notSignedIn')}</Text>
|
|
156
152
|
</View>
|
|
157
153
|
);
|
|
158
154
|
}
|
|
@@ -169,7 +165,7 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
169
165
|
<View style={[styles.container, { backgroundColor: '#f2f2f2' }]}>
|
|
170
166
|
{/* Header */}
|
|
171
167
|
<Header
|
|
172
|
-
title=
|
|
168
|
+
title={t('accountOverview.title')}
|
|
173
169
|
theme={theme}
|
|
174
170
|
onBack={onClose}
|
|
175
171
|
variant="minimal"
|
|
@@ -178,16 +174,16 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
178
174
|
|
|
179
175
|
<ScrollView style={styles.content}>
|
|
180
176
|
{/* User Profile Section */}
|
|
181
|
-
<Section title=
|
|
177
|
+
<Section title={t('accountOverview.sections.profile')} theme={theme} isFirst={true}>
|
|
182
178
|
<GroupedSection
|
|
183
179
|
items={[
|
|
184
180
|
{
|
|
185
181
|
id: 'profile-info',
|
|
186
182
|
icon: 'person',
|
|
187
183
|
iconColor: '#007AFF',
|
|
188
|
-
title: user ? (typeof user.name === 'string' ? user.name : user.name?.full || user.name?.first || user.username) : 'Loading...',
|
|
189
|
-
subtitle: user ? (user.email || user.username) : 'Loading...',
|
|
190
|
-
onPress: () => toast.info('
|
|
184
|
+
title: user ? (typeof user.name === 'string' ? user.name : user.name?.full || user.name?.first || user.username) : (t('common.status.loading') || 'Loading...'),
|
|
185
|
+
subtitle: user ? (user.email || user.username) : (t('common.status.loading') || 'Loading...'),
|
|
186
|
+
onPress: () => toast.info(t('accountOverview.manageComing')),
|
|
191
187
|
customContent: (
|
|
192
188
|
<>
|
|
193
189
|
<View style={styles.userIcon}>
|
|
@@ -200,9 +196,9 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
200
196
|
</View>
|
|
201
197
|
<TouchableOpacity
|
|
202
198
|
style={styles.manageButton}
|
|
203
|
-
onPress={() => toast.info('
|
|
199
|
+
onPress={() => toast.info(t('accountOverview.manageComing'))}
|
|
204
200
|
>
|
|
205
|
-
<Text style={styles.manageButtonText}>
|
|
201
|
+
<Text style={styles.manageButtonText}>{t('accountOverview.actions.manage')}</Text>
|
|
206
202
|
</TouchableOpacity>
|
|
207
203
|
</>
|
|
208
204
|
),
|
|
@@ -213,48 +209,48 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
213
209
|
</Section>
|
|
214
210
|
|
|
215
211
|
{/* Account Settings */}
|
|
216
|
-
<Section title=
|
|
212
|
+
<Section title={t('accountOverview.sections.accountSettings')} theme={theme}>
|
|
217
213
|
<GroupedSection
|
|
218
214
|
items={[
|
|
219
215
|
{
|
|
220
216
|
id: 'edit-profile',
|
|
221
217
|
icon: 'person-circle',
|
|
222
218
|
iconColor: '#007AFF',
|
|
223
|
-
title: '
|
|
224
|
-
subtitle: '
|
|
219
|
+
title: t('accountOverview.items.editProfile.title'),
|
|
220
|
+
subtitle: t('accountOverview.items.editProfile.subtitle'),
|
|
225
221
|
onPress: () => navigate?.('EditProfile', { activeTab: 'profile' }),
|
|
226
222
|
},
|
|
227
223
|
{
|
|
228
224
|
id: 'security-privacy',
|
|
229
225
|
icon: 'shield-checkmark',
|
|
230
226
|
iconColor: '#30D158',
|
|
231
|
-
title: '
|
|
232
|
-
subtitle: '
|
|
227
|
+
title: t('accountOverview.items.security.title'),
|
|
228
|
+
subtitle: t('accountOverview.items.security.subtitle'),
|
|
233
229
|
onPress: () => navigate?.('EditProfile', { activeTab: 'password' }),
|
|
234
230
|
},
|
|
235
231
|
{
|
|
236
232
|
id: 'notifications',
|
|
237
233
|
icon: 'notifications',
|
|
238
234
|
iconColor: '#FF9500',
|
|
239
|
-
title: '
|
|
240
|
-
subtitle: '
|
|
235
|
+
title: t('accountOverview.items.notifications.title'),
|
|
236
|
+
subtitle: t('accountOverview.items.notifications.subtitle'),
|
|
241
237
|
onPress: () => navigate?.('EditProfile', { activeTab: 'notifications' }),
|
|
242
238
|
},
|
|
243
239
|
{
|
|
244
240
|
id: 'premium-subscription',
|
|
245
241
|
icon: 'star',
|
|
246
242
|
iconColor: '#FFD700',
|
|
247
|
-
title: '
|
|
248
|
-
subtitle: user?.isPremium ? '
|
|
243
|
+
title: t('accountOverview.items.premium.title'),
|
|
244
|
+
subtitle: user?.isPremium ? t('accountOverview.items.premium.manage') : t('accountOverview.items.premium.upgrade'),
|
|
249
245
|
onPress: () => navigate?.('PremiumSubscription'),
|
|
250
246
|
},
|
|
251
247
|
...(user?.isPremium ? [{
|
|
252
248
|
id: 'billing-management',
|
|
253
249
|
icon: 'card',
|
|
254
250
|
iconColor: '#34C759',
|
|
255
|
-
title: '
|
|
256
|
-
subtitle: '
|
|
257
|
-
onPress: () => toast.info('
|
|
251
|
+
title: t('accountOverview.items.billing.title'),
|
|
252
|
+
subtitle: t('accountOverview.items.billing.subtitle'),
|
|
253
|
+
onPress: () => toast.info(t('accountOverview.items.billing.coming')),
|
|
258
254
|
}] : []),
|
|
259
255
|
]}
|
|
260
256
|
theme={theme}
|
|
@@ -263,7 +259,7 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
263
259
|
|
|
264
260
|
{/* Additional Accounts */}
|
|
265
261
|
{showMoreAccounts && (
|
|
266
|
-
<Section title={
|
|
262
|
+
<Section title={`${t('accountOverview.sections.additionalAccounts') || 'Additional Accounts'}${additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : ''}`} theme={theme}>
|
|
267
263
|
{loadingAdditionalAccounts ? (
|
|
268
264
|
<GroupedSection
|
|
269
265
|
items={[
|
|
@@ -271,12 +267,12 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
271
267
|
id: 'loading-accounts',
|
|
272
268
|
icon: 'sync',
|
|
273
269
|
iconColor: '#007AFF',
|
|
274
|
-
title: 'Loading accounts...',
|
|
275
|
-
subtitle: 'Please wait while we load your additional accounts',
|
|
270
|
+
title: t('accountOverview.loadingAdditional.title') || 'Loading accounts...',
|
|
271
|
+
subtitle: t('accountOverview.loadingAdditional.subtitle') || 'Please wait while we load your additional accounts',
|
|
276
272
|
customContent: (
|
|
277
273
|
<View style={styles.loadingContainer}>
|
|
278
274
|
<ActivityIndicator size="small" color="#007AFF" />
|
|
279
|
-
<Text style={styles.loadingText}>Loading accounts
|
|
275
|
+
<Text style={styles.loadingText}>{t('accountOverview.loadingAdditional.title') || 'Loading accounts...'}</Text>
|
|
280
276
|
</View>
|
|
281
277
|
),
|
|
282
278
|
},
|
|
@@ -294,7 +290,7 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
294
290
|
: account.name || account.username,
|
|
295
291
|
subtitle: account.email || account.username,
|
|
296
292
|
onPress: () => {
|
|
297
|
-
toast.info(`Switch to ${account.username}?`);
|
|
293
|
+
toast.info(t('accountOverview.items.accountSwitcher.switchPrompt', { username: account.username }) || `Switch to ${account.username}?`);
|
|
298
294
|
// TODO: Implement account switching logic
|
|
299
295
|
// switchSession(account.sessionId);
|
|
300
296
|
},
|
|
@@ -324,8 +320,8 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
324
320
|
id: 'no-accounts',
|
|
325
321
|
icon: 'person-outline',
|
|
326
322
|
iconColor: '#ccc',
|
|
327
|
-
title: 'No other accounts',
|
|
328
|
-
subtitle: 'Add another account to switch between them',
|
|
323
|
+
title: t('accountOverview.additional.noAccounts.title') || 'No other accounts',
|
|
324
|
+
subtitle: t('accountOverview.additional.noAccounts.subtitle') || 'Add another account to switch between them',
|
|
329
325
|
},
|
|
330
326
|
]}
|
|
331
327
|
theme={theme}
|
|
@@ -336,23 +332,23 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
336
332
|
|
|
337
333
|
{/* Account Management */}
|
|
338
334
|
{showMoreAccounts && (
|
|
339
|
-
<Section title=
|
|
335
|
+
<Section title={t('accountOverview.sections.accountManagement') || 'Account Management'} theme={theme}>
|
|
340
336
|
<GroupedSection
|
|
341
337
|
items={[
|
|
342
338
|
{
|
|
343
339
|
id: 'add-account',
|
|
344
340
|
icon: 'add',
|
|
345
341
|
iconColor: '#007AFF',
|
|
346
|
-
title: 'Add
|
|
347
|
-
subtitle: 'Sign in with a different account',
|
|
342
|
+
title: t('accountOverview.items.addAccount.title') || 'Add Another Account',
|
|
343
|
+
subtitle: t('accountOverview.items.addAccount.subtitle') || 'Sign in with a different account',
|
|
348
344
|
onPress: handleAddAccount,
|
|
349
345
|
},
|
|
350
346
|
{
|
|
351
347
|
id: 'sign-out-all',
|
|
352
348
|
icon: 'log-out',
|
|
353
349
|
iconColor: '#FF3B30',
|
|
354
|
-
title: 'Sign out of all accounts',
|
|
355
|
-
subtitle: 'Remove all accounts from this device',
|
|
350
|
+
title: t('accountOverview.items.signOutAll.title') || 'Sign out of all accounts',
|
|
351
|
+
subtitle: t('accountOverview.items.signOutAll.subtitle') || 'Remove all accounts from this device',
|
|
356
352
|
onPress: handleSignOutAll,
|
|
357
353
|
},
|
|
358
354
|
]}
|
|
@@ -362,38 +358,40 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
362
358
|
)}
|
|
363
359
|
|
|
364
360
|
{/* Quick Actions */}
|
|
365
|
-
<Section title=
|
|
361
|
+
<Section title={t('accountOverview.sections.quickActions')} theme={theme}>
|
|
366
362
|
<GroupedSection
|
|
367
363
|
items={[
|
|
368
364
|
{
|
|
369
365
|
id: 'account-switcher',
|
|
370
366
|
icon: 'people',
|
|
371
367
|
iconColor: '#5856D6',
|
|
372
|
-
title:
|
|
368
|
+
title: showMoreAccounts
|
|
369
|
+
? t('accountOverview.items.accountSwitcher.titleHide')
|
|
370
|
+
: t('accountOverview.items.accountSwitcher.titleShow'),
|
|
373
371
|
subtitle: showMoreAccounts
|
|
374
|
-
? '
|
|
372
|
+
? t('accountOverview.items.accountSwitcher.subtitleHide')
|
|
375
373
|
: additionalAccountsData.length > 0
|
|
376
|
-
?
|
|
374
|
+
? t('accountOverview.items.accountSwitcher.subtitleSwitchBetween', { count: String(additionalAccountsData.length + 1) })
|
|
377
375
|
: loadingAdditionalAccounts
|
|
378
|
-
? '
|
|
379
|
-
: '
|
|
376
|
+
? t('accountOverview.items.accountSwitcher.subtitleLoading')
|
|
377
|
+
: t('accountOverview.items.accountSwitcher.subtitleManageMultiple'),
|
|
380
378
|
onPress: () => setShowMoreAccounts(!showMoreAccounts),
|
|
381
379
|
},
|
|
382
380
|
{
|
|
383
381
|
id: 'download-data',
|
|
384
382
|
icon: 'download',
|
|
385
383
|
iconColor: '#34C759',
|
|
386
|
-
title: '
|
|
387
|
-
subtitle: '
|
|
388
|
-
onPress: () => toast.info('
|
|
384
|
+
title: t('accountOverview.items.downloadData.title'),
|
|
385
|
+
subtitle: t('accountOverview.items.downloadData.subtitle'),
|
|
386
|
+
onPress: () => toast.info(t('accountOverview.items.downloadData.coming')),
|
|
389
387
|
},
|
|
390
388
|
{
|
|
391
389
|
id: 'delete-account',
|
|
392
390
|
icon: 'trash',
|
|
393
391
|
iconColor: '#FF3B30',
|
|
394
|
-
title: '
|
|
395
|
-
subtitle: '
|
|
396
|
-
onPress: () => toast.info('
|
|
392
|
+
title: t('accountOverview.items.deleteAccount.title'),
|
|
393
|
+
subtitle: t('accountOverview.items.deleteAccount.subtitle'),
|
|
394
|
+
onPress: () => toast.info(t('accountOverview.items.deleteAccount.coming')),
|
|
397
395
|
},
|
|
398
396
|
]}
|
|
399
397
|
theme={theme}
|
|
@@ -401,39 +399,39 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
401
399
|
</Section>
|
|
402
400
|
|
|
403
401
|
{/* Support & Settings */}
|
|
404
|
-
<Section title=
|
|
402
|
+
<Section title={t('accountOverview.sections.support')} theme={theme}>
|
|
405
403
|
<GroupedSection
|
|
406
404
|
items={[
|
|
407
405
|
{
|
|
408
406
|
id: 'account-preferences',
|
|
409
407
|
icon: 'settings',
|
|
410
408
|
iconColor: '#8E8E93',
|
|
411
|
-
title: '
|
|
412
|
-
subtitle: '
|
|
413
|
-
onPress: () => toast.info('
|
|
409
|
+
title: t('accountOverview.items.preferences.title'),
|
|
410
|
+
subtitle: t('accountOverview.items.preferences.subtitle'),
|
|
411
|
+
onPress: () => toast.info(t('accountOverview.items.preferences.coming')),
|
|
414
412
|
},
|
|
415
413
|
{
|
|
416
414
|
id: 'help-support',
|
|
417
415
|
icon: 'help-circle',
|
|
418
416
|
iconColor: '#007AFF',
|
|
419
|
-
title: '
|
|
420
|
-
subtitle: '
|
|
421
|
-
onPress: () => toast.info('
|
|
417
|
+
title: t('accountOverview.items.help.title'),
|
|
418
|
+
subtitle: t('accountOverview.items.help.subtitle'),
|
|
419
|
+
onPress: () => toast.info(t('accountOverview.items.help.coming')),
|
|
422
420
|
},
|
|
423
421
|
{
|
|
424
422
|
id: 'connected-apps',
|
|
425
423
|
icon: 'link',
|
|
426
424
|
iconColor: '#32D74B',
|
|
427
|
-
title: '
|
|
428
|
-
subtitle: '
|
|
429
|
-
onPress: () => toast.info('
|
|
425
|
+
title: t('accountOverview.items.connectedApps.title'),
|
|
426
|
+
subtitle: t('accountOverview.items.connectedApps.subtitle'),
|
|
427
|
+
onPress: () => toast.info(t('accountOverview.items.connectedApps.coming')),
|
|
430
428
|
},
|
|
431
429
|
{
|
|
432
430
|
id: 'about',
|
|
433
431
|
icon: 'information-circle',
|
|
434
432
|
iconColor: '#8E8E93',
|
|
435
|
-
title: '
|
|
436
|
-
subtitle: '
|
|
433
|
+
title: t('accountOverview.items.about.title'),
|
|
434
|
+
subtitle: t('accountOverview.items.about.subtitle'),
|
|
437
435
|
onPress: () => navigate?.('AppInfo'),
|
|
438
436
|
},
|
|
439
437
|
]}
|
|
@@ -442,12 +440,12 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
|
|
|
442
440
|
</Section>
|
|
443
441
|
|
|
444
442
|
{/* Sign Out */}
|
|
445
|
-
<Section title=
|
|
443
|
+
<Section title={t('accountOverview.sections.actions')} theme={theme}>
|
|
446
444
|
<GroupedItem
|
|
447
445
|
icon="log-out"
|
|
448
446
|
iconColor="#FF3B30"
|
|
449
|
-
title=
|
|
450
|
-
subtitle=
|
|
447
|
+
title={t('accountOverview.items.signOut.title')}
|
|
448
|
+
subtitle={t('accountOverview.items.signOut.subtitle')}
|
|
451
449
|
theme={theme}
|
|
452
450
|
onPress={confirmLogout}
|
|
453
451
|
isFirst={true}
|