@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
|
@@ -4,6 +4,7 @@ import { useEffect, useState } from 'react';
|
|
|
4
4
|
import { View, Text, StyleSheet, ScrollView, ActivityIndicator } from 'react-native';
|
|
5
5
|
import { useOxy } from '../../context/OxyContext';
|
|
6
6
|
import { Header } from '../../components';
|
|
7
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
9
|
const KarmaRulesScreen = ({
|
|
9
10
|
goBack,
|
|
@@ -12,6 +13,9 @@ const KarmaRulesScreen = ({
|
|
|
12
13
|
const {
|
|
13
14
|
oxyServices
|
|
14
15
|
} = useOxy();
|
|
16
|
+
const {
|
|
17
|
+
t
|
|
18
|
+
} = useI18n();
|
|
15
19
|
const [rules, setRules] = useState([]);
|
|
16
20
|
const [isLoading, setIsLoading] = useState(true);
|
|
17
21
|
const [error, setError] = useState(null);
|
|
@@ -29,8 +33,8 @@ const KarmaRulesScreen = ({
|
|
|
29
33
|
backgroundColor
|
|
30
34
|
}],
|
|
31
35
|
children: [/*#__PURE__*/_jsx(Header, {
|
|
32
|
-
title:
|
|
33
|
-
subtitle:
|
|
36
|
+
title: t('karma.rules.title') || 'Karma Rules',
|
|
37
|
+
subtitle: t('karma.rules.subtitle') || 'How to earn karma points',
|
|
34
38
|
theme: theme,
|
|
35
39
|
onBack: goBack,
|
|
36
40
|
elevation: "subtle"
|
|
@@ -51,7 +55,7 @@ const KarmaRulesScreen = ({
|
|
|
51
55
|
style: [styles.placeholder, {
|
|
52
56
|
color: textColor
|
|
53
57
|
}],
|
|
54
|
-
children:
|
|
58
|
+
children: t('karma.rules.empty') || 'No rules found.'
|
|
55
59
|
}) : rules.map((rule, idx) => /*#__PURE__*/_jsx(View, {
|
|
56
60
|
style: styles.ruleRow,
|
|
57
61
|
children: /*#__PURE__*/_jsx(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","View","Text","StyleSheet","ScrollView","ActivityIndicator","useOxy","Header","jsx","_jsx","jsxs","_jsxs","KarmaRulesScreen","goBack","theme","oxyServices","rules","setRules","isLoading","setIsLoading","error","setError","isDarkTheme","backgroundColor","textColor","primaryColor","getKarmaRules","then","data","Array","isArray","catch","err","message","finally","style","styles","container","children","title","subtitle","onBack","elevation","size","color","marginTop","contentContainerStyle","listContainer","length","placeholder","map","rule","idx","ruleRow","ruleDesc","description","id","create","flex","paddingBottom","paddingTop","paddingVertical","paddingHorizontal","borderBottomWidth","borderColor","fontSize","textAlign"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaRulesScreen.tsx"],"mappings":";;AACA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAEC,UAAU,EAAEC,iBAAiB,QAAQ,cAAc;AAEpF,SAASC,MAAM,QAAQ,0BAA0B;AACjD,SAASC,MAAM,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useEffect","useState","View","Text","StyleSheet","ScrollView","ActivityIndicator","useOxy","Header","useI18n","jsx","_jsx","jsxs","_jsxs","KarmaRulesScreen","goBack","theme","oxyServices","t","rules","setRules","isLoading","setIsLoading","error","setError","isDarkTheme","backgroundColor","textColor","primaryColor","getKarmaRules","then","data","Array","isArray","catch","err","message","finally","style","styles","container","children","title","subtitle","onBack","elevation","size","color","marginTop","contentContainerStyle","listContainer","length","placeholder","map","rule","idx","ruleRow","ruleDesc","description","id","create","flex","paddingBottom","paddingTop","paddingVertical","paddingHorizontal","borderBottomWidth","borderColor","fontSize","textAlign"],"sourceRoot":"../../../../../src","sources":["ui/screens/karma/KarmaRulesScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,8 @@ import { Ionicons } from '@expo/vector-icons';
|
|
|
6
6
|
import HighFive from '../../../assets/illustrations/HighFive';
|
|
7
7
|
import TextField from '../../components/internal/TextField';
|
|
8
8
|
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
9
|
+
import { toast } from '../../../lib/sonner';
|
|
10
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
9
11
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
12
|
const RecoverRequestStep = ({
|
|
11
13
|
colors,
|
|
@@ -17,27 +19,30 @@ const RecoverRequestStep = ({
|
|
|
17
19
|
errorMessage,
|
|
18
20
|
setErrorMessage,
|
|
19
21
|
isLoading,
|
|
20
|
-
setIsLoading
|
|
22
|
+
setIsLoading,
|
|
23
|
+
oxyServices
|
|
21
24
|
}) => {
|
|
22
25
|
const inputRef = useRef(null);
|
|
26
|
+
const {
|
|
27
|
+
t
|
|
28
|
+
} = useI18n();
|
|
23
29
|
const handleIdentifierChange = text => {
|
|
24
30
|
setIdentifier(text);
|
|
25
31
|
if (errorMessage) setErrorMessage('');
|
|
26
32
|
};
|
|
27
|
-
const handleRequest = () => {
|
|
33
|
+
const handleRequest = async () => {
|
|
28
34
|
if (!identifier || identifier.length < 3) {
|
|
29
|
-
setErrorMessage('Please enter your
|
|
35
|
+
setErrorMessage(t('recover.username.errorRequired') || 'Please enter your username.');
|
|
30
36
|
setTimeout(() => inputRef.current?.focus(), 0);
|
|
31
37
|
return;
|
|
32
38
|
}
|
|
33
39
|
setErrorMessage('');
|
|
34
40
|
setIsLoading(true);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
try {
|
|
42
|
+
toast.info(t('recover.noEmail'));
|
|
43
|
+
} finally {
|
|
38
44
|
setIsLoading(false);
|
|
39
|
-
|
|
40
|
-
}, 1200);
|
|
45
|
+
}
|
|
41
46
|
};
|
|
42
47
|
const handleRequestWithFocus = () => {
|
|
43
48
|
if (!identifier) {
|
|
@@ -55,18 +60,18 @@ const RecoverRequestStep = ({
|
|
|
55
60
|
style: [styles.modernTitle, {
|
|
56
61
|
color: colors.text
|
|
57
62
|
}],
|
|
58
|
-
children:
|
|
63
|
+
children: t('recover.title')
|
|
59
64
|
}), /*#__PURE__*/_jsx(Text, {
|
|
60
65
|
style: [styles.modernSubtitle, {
|
|
61
66
|
color: colors.secondaryText
|
|
62
67
|
}],
|
|
63
|
-
children:
|
|
68
|
+
children: t('recover.noEmail')
|
|
64
69
|
})]
|
|
65
70
|
}), /*#__PURE__*/_jsx(View, {
|
|
66
71
|
style: styles.modernInputContainer,
|
|
67
72
|
children: /*#__PURE__*/_jsx(TextField, {
|
|
68
73
|
ref: inputRef,
|
|
69
|
-
label:
|
|
74
|
+
label: t('recover.username.label'),
|
|
70
75
|
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
71
76
|
name: "mail-outline",
|
|
72
77
|
size: 24,
|
|
@@ -85,14 +90,14 @@ const RecoverRequestStep = ({
|
|
|
85
90
|
})
|
|
86
91
|
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
87
92
|
buttons: [{
|
|
88
|
-
text: '
|
|
93
|
+
text: t('common.actions.back'),
|
|
89
94
|
onPress: () => navigate('SignIn'),
|
|
90
95
|
icon: 'arrow-back',
|
|
91
96
|
variant: 'transparent'
|
|
92
97
|
}, {
|
|
93
|
-
text: '
|
|
98
|
+
text: t('common.actions.continue'),
|
|
94
99
|
onPress: handleRequest,
|
|
95
|
-
icon: '
|
|
100
|
+
icon: 'information-circle-outline',
|
|
96
101
|
variant: 'primary',
|
|
97
102
|
loading: isLoading,
|
|
98
103
|
disabled: isLoading
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","View","Text","Ionicons","HighFive","TextField","GroupedPillButtons","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverRequestStep","colors","styles","navigate","nextStep","identifier","setIdentifier","errorMessage","setErrorMessage","isLoading","setIsLoading","inputRef","handleIdentifierChange","text","handleRequest","length","setTimeout","current","focus","handleRequestWithFocus","children","width","height","style","modernHeader","modernTitle","color","modernSubtitle","secondaryText","modernInputContainer","ref","label","leading","name","size","value","onChangeText","autoCapitalize","autoCorrect","testID","variant","error","undefined","editable","onSubmitEditing","autoFocus","buttons","onPress","icon","loading","disabled"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverRequestStep.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["useRef","View","Text","Ionicons","HighFive","TextField","GroupedPillButtons","toast","useI18n","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverRequestStep","colors","styles","navigate","nextStep","identifier","setIdentifier","errorMessage","setErrorMessage","isLoading","setIsLoading","oxyServices","inputRef","t","handleIdentifierChange","text","handleRequest","length","setTimeout","current","focus","info","handleRequestWithFocus","children","width","height","style","modernHeader","modernTitle","color","modernSubtitle","secondaryText","modernInputContainer","ref","label","leading","name","size","value","onChangeText","autoCapitalize","autoCorrect","testID","variant","error","undefined","editable","onSubmitEditing","autoFocus","buttons","onPress","icon","loading","disabled"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverRequestStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View, Text } from 'react-native';
|
|
4
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
5
|
+
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
6
|
+
import TextField from '../../components/internal/TextField';
|
|
7
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
|
+
const RecoverResetPasswordStep = ({
|
|
10
|
+
colors,
|
|
11
|
+
styles,
|
|
12
|
+
nextStep,
|
|
13
|
+
prevStep,
|
|
14
|
+
identifier,
|
|
15
|
+
verificationCode,
|
|
16
|
+
password,
|
|
17
|
+
confirmPassword,
|
|
18
|
+
setPassword,
|
|
19
|
+
setConfirmPassword,
|
|
20
|
+
errorMessage,
|
|
21
|
+
setErrorMessage,
|
|
22
|
+
isLoading,
|
|
23
|
+
setIsLoading,
|
|
24
|
+
oxyServices
|
|
25
|
+
}) => {
|
|
26
|
+
const {
|
|
27
|
+
t
|
|
28
|
+
} = useI18n();
|
|
29
|
+
const handleReset = async () => {
|
|
30
|
+
if (!password || password.length < 8) {
|
|
31
|
+
setErrorMessage(t('recover.password.minLength') || 'Password must be at least 8 characters long');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (password !== confirmPassword) {
|
|
35
|
+
setErrorMessage(t('recover.password.mismatch') || 'Passwords do not match');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setErrorMessage('');
|
|
39
|
+
setIsLoading(true);
|
|
40
|
+
try {
|
|
41
|
+
const code = verificationCode?.trim();
|
|
42
|
+
if (!code) throw new Error(t('recover.missingCode') || 'Missing code');
|
|
43
|
+
|
|
44
|
+
// Heuristic: recovery key starts with 'oxy-' or longer strings, backup codes have dashes of short format, else assume TOTP
|
|
45
|
+
if (code.toLowerCase().startsWith('oxy-') || code.length >= 16) {
|
|
46
|
+
await oxyServices.resetPasswordWithRecoveryKey(identifier, code, password);
|
|
47
|
+
} else if (/[A-Za-z0-9]+-[A-Za-z0-9]+/.test(code)) {
|
|
48
|
+
await oxyServices.resetPasswordWithBackupCode(identifier, code, password);
|
|
49
|
+
} else {
|
|
50
|
+
await oxyServices.resetPasswordWithTotp(identifier, code, password);
|
|
51
|
+
}
|
|
52
|
+
nextStep();
|
|
53
|
+
} catch (e) {
|
|
54
|
+
setErrorMessage(e?.message || t('recover.password.resetFailed') || 'Failed to reset password');
|
|
55
|
+
} finally {
|
|
56
|
+
setIsLoading(false);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
60
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
61
|
+
style: styles.modernHeader,
|
|
62
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
63
|
+
style: [styles.modernTitle, {
|
|
64
|
+
color: colors.text
|
|
65
|
+
}],
|
|
66
|
+
children: t('recover.newPassword')
|
|
67
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
68
|
+
style: [styles.modernSubtitle, {
|
|
69
|
+
color: colors.secondaryText
|
|
70
|
+
}],
|
|
71
|
+
children: [t('recover.title'), " @", identifier]
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
74
|
+
style: styles.modernInputContainer,
|
|
75
|
+
children: [/*#__PURE__*/_jsx(TextField, {
|
|
76
|
+
label: t('common.labels.password'),
|
|
77
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
78
|
+
name: "lock-closed-outline",
|
|
79
|
+
size: 24,
|
|
80
|
+
color: colors.secondaryText
|
|
81
|
+
}),
|
|
82
|
+
value: password,
|
|
83
|
+
onChangeText: setPassword,
|
|
84
|
+
secureTextEntry: true,
|
|
85
|
+
autoCapitalize: "none",
|
|
86
|
+
autoCorrect: false,
|
|
87
|
+
variant: "filled",
|
|
88
|
+
error: errorMessage || undefined,
|
|
89
|
+
onSubmitEditing: handleReset,
|
|
90
|
+
autoFocus: true
|
|
91
|
+
}), /*#__PURE__*/_jsx(TextField, {
|
|
92
|
+
label: t('common.labels.confirmPassword'),
|
|
93
|
+
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
94
|
+
name: "lock-closed-outline",
|
|
95
|
+
size: 24,
|
|
96
|
+
color: colors.secondaryText
|
|
97
|
+
}),
|
|
98
|
+
value: confirmPassword,
|
|
99
|
+
onChangeText: setConfirmPassword,
|
|
100
|
+
secureTextEntry: true,
|
|
101
|
+
autoCapitalize: "none",
|
|
102
|
+
autoCorrect: false,
|
|
103
|
+
variant: "filled",
|
|
104
|
+
onSubmitEditing: handleReset
|
|
105
|
+
})]
|
|
106
|
+
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
107
|
+
buttons: [{
|
|
108
|
+
text: t('common.actions.back'),
|
|
109
|
+
onPress: prevStep,
|
|
110
|
+
icon: 'arrow-back',
|
|
111
|
+
variant: 'transparent'
|
|
112
|
+
}, {
|
|
113
|
+
text: t('common.actions.resetPassword'),
|
|
114
|
+
onPress: handleReset,
|
|
115
|
+
icon: 'key-outline',
|
|
116
|
+
variant: 'primary',
|
|
117
|
+
loading: isLoading,
|
|
118
|
+
disabled: isLoading
|
|
119
|
+
}],
|
|
120
|
+
colors: colors
|
|
121
|
+
})]
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
export default RecoverResetPasswordStep;
|
|
125
|
+
//# sourceMappingURL=RecoverResetPasswordStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Text","Ionicons","GroupedPillButtons","TextField","useI18n","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverResetPasswordStep","colors","styles","nextStep","prevStep","identifier","verificationCode","password","confirmPassword","setPassword","setConfirmPassword","errorMessage","setErrorMessage","isLoading","setIsLoading","oxyServices","t","handleReset","length","code","trim","Error","toLowerCase","startsWith","resetPasswordWithRecoveryKey","test","resetPasswordWithBackupCode","resetPasswordWithTotp","e","message","children","style","modernHeader","modernTitle","color","text","modernSubtitle","secondaryText","modernInputContainer","label","leading","name","size","value","onChangeText","secureTextEntry","autoCapitalize","autoCorrect","variant","error","undefined","onSubmitEditing","autoFocus","buttons","onPress","icon","loading","disabled"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverResetPasswordStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { View, Text } from 'react-native';
|
|
4
4
|
import { Ionicons } from '@expo/vector-icons';
|
|
5
5
|
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
6
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
8
|
const RecoverSuccessStep = ({
|
|
8
9
|
colors,
|
|
@@ -11,14 +12,18 @@ const RecoverSuccessStep = ({
|
|
|
11
12
|
allStepData,
|
|
12
13
|
successMessage
|
|
13
14
|
}) => {
|
|
15
|
+
const {
|
|
16
|
+
t
|
|
17
|
+
} = useI18n();
|
|
14
18
|
// Extract identifier from previous steps
|
|
15
19
|
const requestData = allStepData[0] || {};
|
|
16
20
|
const {
|
|
17
21
|
identifier
|
|
18
22
|
} = requestData;
|
|
19
23
|
const handleContinueToReset = () => {
|
|
20
|
-
// Navigate to
|
|
21
|
-
navigate('
|
|
24
|
+
// Navigate back to SignIn and let host app open its reset flow
|
|
25
|
+
navigate('SignIn', {
|
|
26
|
+
showReset: true,
|
|
22
27
|
identifier
|
|
23
28
|
});
|
|
24
29
|
};
|
|
@@ -54,12 +59,12 @@ const RecoverSuccessStep = ({
|
|
|
54
59
|
style: [styles.modernTitle, {
|
|
55
60
|
color: colors.text
|
|
56
61
|
}],
|
|
57
|
-
children:
|
|
62
|
+
children: t('recover.title')
|
|
58
63
|
}), /*#__PURE__*/_jsx(Text, {
|
|
59
64
|
style: [styles.modernSubtitle, {
|
|
60
65
|
color: colors.secondaryText
|
|
61
66
|
}],
|
|
62
|
-
children:
|
|
67
|
+
children: successMessage || t('recover.resetSuccess')
|
|
63
68
|
})]
|
|
64
69
|
}), /*#__PURE__*/_jsxs(View, {
|
|
65
70
|
style: styles.modernInputContainer,
|
|
@@ -78,14 +83,14 @@ const RecoverSuccessStep = ({
|
|
|
78
83
|
fontSize: 16,
|
|
79
84
|
marginBottom: 8
|
|
80
85
|
}],
|
|
81
|
-
children: "What's next?"
|
|
86
|
+
children: t('recover.whatsNextTitle') || "What's next?"
|
|
82
87
|
}), /*#__PURE__*/_jsx(Text, {
|
|
83
88
|
style: [styles.footerText, {
|
|
84
89
|
color: colors.secondaryText,
|
|
85
90
|
fontSize: 14,
|
|
86
91
|
lineHeight: 20
|
|
87
92
|
}],
|
|
88
|
-
children:
|
|
93
|
+
children: t('recover.whatsNextBody') || 'You can now reset your password or return to sign in with your existing credentials.'
|
|
89
94
|
})]
|
|
90
95
|
}), /*#__PURE__*/_jsxs(View, {
|
|
91
96
|
style: {
|
|
@@ -110,20 +115,15 @@ const RecoverSuccessStep = ({
|
|
|
110
115
|
fontSize: 14,
|
|
111
116
|
flex: 1
|
|
112
117
|
}],
|
|
113
|
-
children: successMessage || 'Your account recovery is complete and secure.'
|
|
118
|
+
children: successMessage || t('recover.completeSecure') || 'Your account recovery is complete and secure.'
|
|
114
119
|
})]
|
|
115
120
|
})]
|
|
116
121
|
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
117
122
|
buttons: [{
|
|
118
|
-
text: '
|
|
123
|
+
text: t('common.actions.signIn'),
|
|
119
124
|
onPress: handleBackToSignIn,
|
|
120
125
|
icon: 'arrow-back',
|
|
121
126
|
variant: 'transparent'
|
|
122
|
-
}, {
|
|
123
|
-
text: 'Reset Password',
|
|
124
|
-
onPress: handleContinueToReset,
|
|
125
|
-
icon: 'key-outline',
|
|
126
|
-
variant: 'primary'
|
|
127
127
|
}],
|
|
128
128
|
colors: colors
|
|
129
129
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","Text","Ionicons","GroupedPillButtons","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverSuccessStep","colors","styles","navigate","allStepData","successMessage","requestData","identifier","handleContinueToReset","handleBackToSignIn","children","style","alignItems","justifyContent","marginBottom","width","height","borderRadius","backgroundColor","success","name","size","color","modernHeader","modernTitle","text","modernSubtitle","secondaryText","modernInputContainer","padding","inputBackground","borderWidth","borderColor","border","footerText","fontSize","lineHeight","flexDirection","marginRight","flex","buttons","onPress","icon","variant"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverSuccessStep.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["View","Text","Ionicons","GroupedPillButtons","useI18n","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverSuccessStep","colors","styles","navigate","allStepData","successMessage","t","requestData","identifier","handleContinueToReset","showReset","handleBackToSignIn","children","style","alignItems","justifyContent","marginBottom","width","height","borderRadius","backgroundColor","success","name","size","color","modernHeader","modernTitle","text","modernSubtitle","secondaryText","modernInputContainer","padding","inputBackground","borderWidth","borderColor","border","footerText","fontSize","lineHeight","flexDirection","marginRight","flex","buttons","onPress","icon","variant"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverSuccessStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import { View, Text } from 'react-native';
|
|
|
4
4
|
import { Ionicons } from '@expo/vector-icons';
|
|
5
5
|
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
6
6
|
import PinInput from '../../components/internal/PinInput';
|
|
7
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
9
|
const RecoverVerifyStep = ({
|
|
9
10
|
colors,
|
|
@@ -17,28 +18,21 @@ const RecoverVerifyStep = ({
|
|
|
17
18
|
successMessage,
|
|
18
19
|
setSuccessMessage,
|
|
19
20
|
isLoading,
|
|
20
|
-
setIsLoading
|
|
21
|
+
setIsLoading,
|
|
22
|
+
identifier
|
|
21
23
|
}) => {
|
|
22
|
-
const
|
|
24
|
+
const {
|
|
25
|
+
t
|
|
26
|
+
} = useI18n();
|
|
27
|
+
const handleVerifyCode = async () => {
|
|
23
28
|
setErrorMessage('');
|
|
24
29
|
setSuccessMessage('');
|
|
25
30
|
if (verificationCode.length !== 6) {
|
|
26
|
-
setErrorMessage('
|
|
31
|
+
setErrorMessage(t('recover.enterCode'));
|
|
27
32
|
return;
|
|
28
33
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
// Simulate verification
|
|
32
|
-
setTimeout(() => {
|
|
33
|
-
setIsLoading(false);
|
|
34
|
-
if (verificationCode === '123456') {
|
|
35
|
-
// Simulate correct code
|
|
36
|
-
setSuccessMessage('Your account has been verified! You can now reset your password.');
|
|
37
|
-
nextStep(); // Move to success step
|
|
38
|
-
} else {
|
|
39
|
-
setErrorMessage('Invalid code. Please try again.');
|
|
40
|
-
}
|
|
41
|
-
}, 1200);
|
|
34
|
+
// For recovery via TOTP, proceed to reset step; server will validate during reset
|
|
35
|
+
nextStep();
|
|
42
36
|
};
|
|
43
37
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
44
38
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -47,12 +41,12 @@ const RecoverVerifyStep = ({
|
|
|
47
41
|
style: [styles.modernTitle, {
|
|
48
42
|
color: colors.text
|
|
49
43
|
}],
|
|
50
|
-
children:
|
|
44
|
+
children: t('recover.verify.title')
|
|
51
45
|
}), /*#__PURE__*/_jsx(Text, {
|
|
52
46
|
style: [styles.modernSubtitle, {
|
|
53
47
|
color: colors.secondaryText
|
|
54
48
|
}],
|
|
55
|
-
children:
|
|
49
|
+
children: t('recover.enterCode')
|
|
56
50
|
})]
|
|
57
51
|
}), /*#__PURE__*/_jsxs(View, {
|
|
58
52
|
style: styles.modernInputContainer,
|
|
@@ -116,12 +110,12 @@ const RecoverVerifyStep = ({
|
|
|
116
110
|
})]
|
|
117
111
|
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
118
112
|
buttons: [{
|
|
119
|
-
text: '
|
|
113
|
+
text: t('common.actions.back'),
|
|
120
114
|
onPress: prevStep,
|
|
121
115
|
icon: 'arrow-back',
|
|
122
116
|
variant: 'transparent'
|
|
123
117
|
}, {
|
|
124
|
-
text: '
|
|
118
|
+
text: t('recover.verify.action'),
|
|
125
119
|
onPress: handleVerifyCode,
|
|
126
120
|
icon: 'checkmark-circle-outline',
|
|
127
121
|
variant: 'primary',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","Text","Ionicons","GroupedPillButtons","PinInput","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverVerifyStep","colors","styles","nextStep","prevStep","verificationCode","setVerificationCode","errorMessage","setErrorMessage","successMessage","setSuccessMessage","isLoading","setIsLoading","
|
|
1
|
+
{"version":3,"names":["View","Text","Ionicons","GroupedPillButtons","PinInput","useI18n","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RecoverVerifyStep","colors","styles","nextStep","prevStep","verificationCode","setVerificationCode","errorMessage","setErrorMessage","successMessage","setSuccessMessage","isLoading","setIsLoading","identifier","t","handleVerifyCode","length","children","style","modernHeader","modernTitle","color","text","modernSubtitle","secondaryText","modernInputContainer","value","onChange","disabled","autoFocus","flexDirection","alignItems","marginTop","padding","backgroundColor","success","borderRadius","borderWidth","borderColor","name","size","marginRight","footerText","fontSize","error","buttons","onPress","icon","variant","loading"],"sourceRoot":"../../../../../src","sources":["ui/screens/steps/RecoverVerifyStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,12 +6,14 @@ import { Ionicons } from '@expo/vector-icons';
|
|
|
6
6
|
import Avatar from '../../components/Avatar';
|
|
7
7
|
import GroupedPillButtons from '../../components/internal/GroupedPillButtons';
|
|
8
8
|
import TextField from '../../components/internal/TextField';
|
|
9
|
+
import { useI18n } from '../../hooks/useI18n';
|
|
9
10
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
11
|
const SignInPasswordStep = ({
|
|
11
12
|
colors,
|
|
12
13
|
styles,
|
|
13
14
|
theme,
|
|
14
15
|
navigate,
|
|
16
|
+
nextStep,
|
|
15
17
|
prevStep,
|
|
16
18
|
password,
|
|
17
19
|
setPassword,
|
|
@@ -22,9 +24,13 @@ const SignInPasswordStep = ({
|
|
|
22
24
|
isLoading,
|
|
23
25
|
userProfile,
|
|
24
26
|
username,
|
|
25
|
-
handleSignIn
|
|
27
|
+
handleSignIn,
|
|
28
|
+
mfaToken
|
|
26
29
|
}) => {
|
|
27
30
|
const inputRef = useRef(null);
|
|
31
|
+
const {
|
|
32
|
+
t
|
|
33
|
+
} = useI18n();
|
|
28
34
|
const handlePasswordChange = text => {
|
|
29
35
|
setPassword(text);
|
|
30
36
|
if (errorMessage) setErrorMessage('');
|
|
@@ -51,6 +57,14 @@ const SignInPasswordStep = ({
|
|
|
51
57
|
}, 0);
|
|
52
58
|
}
|
|
53
59
|
}, [errorMessage]);
|
|
60
|
+
|
|
61
|
+
// Auto-advance when MFA is required
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (mfaToken) {
|
|
64
|
+
// Move to TOTP step when token is available
|
|
65
|
+
nextStep();
|
|
66
|
+
}
|
|
67
|
+
}, [mfaToken, nextStep]);
|
|
54
68
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
55
69
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
56
70
|
style: styles.modernUserProfileContainer,
|
|
@@ -82,7 +96,7 @@ const SignInPasswordStep = ({
|
|
|
82
96
|
style: styles.modernInputContainer,
|
|
83
97
|
children: [/*#__PURE__*/_jsx(TextField, {
|
|
84
98
|
ref: inputRef,
|
|
85
|
-
label:
|
|
99
|
+
label: t('common.labels.password'),
|
|
86
100
|
leading: /*#__PURE__*/_jsx(Ionicons, {
|
|
87
101
|
name: "lock-closed-outline",
|
|
88
102
|
size: 24,
|
|
@@ -104,11 +118,11 @@ const SignInPasswordStep = ({
|
|
|
104
118
|
alignItems: 'center',
|
|
105
119
|
marginBottom: 16
|
|
106
120
|
},
|
|
107
|
-
children: [/*#__PURE__*/
|
|
121
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
108
122
|
style: [styles.footerText, {
|
|
109
123
|
color: colors.text
|
|
110
124
|
}],
|
|
111
|
-
children:
|
|
125
|
+
children: [t('signin.forgotPrompt') || 'Forgot your password?', " "]
|
|
112
126
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
113
127
|
onPress: () => navigate('RecoverAccount', {
|
|
114
128
|
returnTo: 'SignIn',
|
|
@@ -122,18 +136,18 @@ const SignInPasswordStep = ({
|
|
|
122
136
|
style: [styles.modernLinkText, {
|
|
123
137
|
color: colors.primary
|
|
124
138
|
}],
|
|
125
|
-
children:
|
|
139
|
+
children: t('common.links.recoverAccount')
|
|
126
140
|
})
|
|
127
141
|
})]
|
|
128
142
|
})]
|
|
129
143
|
}), /*#__PURE__*/_jsx(GroupedPillButtons, {
|
|
130
144
|
buttons: [{
|
|
131
|
-
text: 'Back',
|
|
145
|
+
text: t('common.actions.back') || 'Back',
|
|
132
146
|
onPress: prevStep,
|
|
133
147
|
icon: 'arrow-back',
|
|
134
148
|
variant: 'transparent'
|
|
135
149
|
}, {
|
|
136
|
-
text: 'Sign In',
|
|
150
|
+
text: t('common.actions.signIn') || 'Sign In',
|
|
137
151
|
onPress: handleSignInSubmit,
|
|
138
152
|
icon: 'log-in',
|
|
139
153
|
variant: 'primary',
|
|
@@ -151,7 +165,7 @@ const SignInPasswordStep = ({
|
|
|
151
165
|
style: [styles.securityText, {
|
|
152
166
|
color: colors.secondaryText
|
|
153
167
|
}],
|
|
154
|
-
children:
|
|
168
|
+
children: t('signin.security.dataSecure') || 'Your data is encrypted and secure'
|
|
155
169
|
})]
|
|
156
170
|
})]
|
|
157
171
|
});
|