@oxyhq/services 10.5.0 → 11.1.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/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/AccountMenu.js +9 -5
- package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
- package/lib/commonjs/ui/components/AnotherDeviceQR.js +51 -56
- package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -1
- package/lib/commonjs/ui/components/BottomSheetRouter.js +1 -0
- package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +18 -5
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +23 -7
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/SignInModal.js +20 -1
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +19 -9
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +4 -2
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +153 -19
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +6 -17
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +5 -5
- package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +38 -38
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +2 -2
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -3
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +16 -12
- package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +10 -6
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queryClient.js +6 -5
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js +40 -2
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -1
- package/lib/commonjs/ui/hooks/useProfileEditing.js +21 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +100 -108
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +227 -273
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -4
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +20 -37
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +89 -201
- package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +80 -208
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FAQScreen.js +56 -208
- package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +303 -352
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +20 -20
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +77 -89
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HistoryViewScreen.js +43 -58
- package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +67 -90
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +77 -177
- package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +113 -107
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +55 -114
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/NotificationsScreen.js +67 -85
- package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +71 -135
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +15 -9
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PreferencesScreen.js +65 -83
- package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +378 -1023
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +294 -242
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +192 -305
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +57 -97
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js +41 -41
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserLinksScreen.js +17 -24
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +83 -214
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +115 -77
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +70 -57
- package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +136 -332
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +47 -137
- package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +182 -115
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +138 -214
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +54 -92
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/activeAuthuser.js +15 -9
- package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/AccountMenu.js +10 -6
- package/lib/module/ui/components/AccountMenu.js.map +1 -1
- package/lib/module/ui/components/AnotherDeviceQR.js +50 -56
- package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -1
- package/lib/module/ui/components/BottomSheetRouter.js +2 -1
- package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +18 -5
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +23 -7
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/SignInModal.js +20 -1
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js +19 -9
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/fileManagement/UploadPreview.js +4 -2
- package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +154 -20
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +6 -17
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/mutations/mutationFactory.js +5 -5
- package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +38 -38
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useServicesMutations.js +2 -2
- package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +3 -3
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/usePaymentQueries.js +16 -12
- package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +9 -6
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/queryClient.js +6 -5
- package/lib/module/ui/hooks/queryClient.js.map +1 -1
- package/lib/module/ui/hooks/useOxyAuthSession.js +40 -2
- package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -1
- package/lib/module/ui/hooks/useProfileEditing.js +21 -0
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +4 -3
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +101 -109
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +228 -275
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +10 -4
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -39
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateManagedAccountScreen.js +90 -202
- package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +77 -205
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/FAQScreen.js +55 -207
- package/lib/module/ui/screens/FAQScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +301 -350
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +20 -20
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +78 -90
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/screens/HistoryViewScreen.js +44 -59
- package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +68 -91
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +75 -177
- package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
- package/lib/module/ui/screens/LegalDocumentsScreen.js +116 -108
- package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +52 -112
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/NotificationsScreen.js +68 -86
- package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +69 -134
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +16 -10
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PreferencesScreen.js +66 -84
- package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +366 -1012
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +295 -243
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +189 -302
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/SavesCollectionsScreen.js +58 -98
- package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/module/ui/screens/SearchSettingsScreen.js +42 -42
- package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/UserLinksScreen.js +18 -25
- package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +81 -212
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +114 -76
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustAboutScreen.js +69 -57
- package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js +135 -332
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustFAQScreen.js +48 -138
- package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +184 -117
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js +132 -208
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +58 -94
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/module/ui/utils/activeAuthuser.js +15 -9
- package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +1 -1
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +2 -0
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +12 -2
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +34 -0
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +3 -3
- package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +22 -0
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +3 -0
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +2 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AccountMenu.d.ts +2 -0
- package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +12 -2
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts +1 -1
- package/lib/typescript/module/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +34 -0
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -0
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +3 -3
- package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +22 -0
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +3 -0
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +2 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
- package/lib/typescript/types/expo-haptics.d.ts +42 -0
- package/package.json +24 -31
- package/src/index.ts +1 -0
- package/src/types/expo-haptics.d.ts +42 -0
- package/src/ui/components/AccountMenu.tsx +11 -5
- package/src/ui/components/AnotherDeviceQR.tsx +53 -45
- package/src/ui/components/BottomSheetRouter.tsx +2 -1
- package/src/ui/components/FollowButton.tsx +24 -5
- package/src/ui/components/OxyProvider.tsx +22 -8
- package/src/ui/components/SignInModal.tsx +21 -2
- package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
- package/src/ui/components/fileManagement/FileViewer.tsx +9 -9
- package/src/ui/components/fileManagement/UploadPreview.tsx +2 -2
- package/src/ui/context/OxyContext.tsx +178 -21
- package/src/ui/context/hooks/useAuthOperations.ts +6 -17
- package/src/ui/hooks/mutations/mutationFactory.ts +5 -5
- package/src/ui/hooks/mutations/useAccountMutations.ts +38 -38
- package/src/ui/hooks/mutations/useServicesMutations.ts +2 -2
- package/src/ui/hooks/queries/queryKeys.ts +6 -3
- package/src/ui/hooks/queries/useAccountQueries.ts +1 -1
- package/src/ui/hooks/queries/usePaymentQueries.ts +12 -12
- package/src/ui/hooks/queries/useServicesQueries.ts +9 -6
- package/src/ui/hooks/queryClient.ts +5 -5
- package/src/ui/hooks/useOxyAuthSession.ts +76 -2
- package/src/ui/hooks/useProfileEditing.ts +24 -0
- package/src/ui/hooks/useSessionManagement.ts +9 -6
- package/src/ui/screens/AccountVerificationScreen.tsx +101 -113
- package/src/ui/screens/AppInfoScreen.tsx +200 -238
- package/src/ui/screens/AvatarCropScreen.tsx +17 -4
- package/src/ui/screens/ConnectedAppsScreen.tsx +16 -34
- package/src/ui/screens/CreateManagedAccountScreen.tsx +94 -170
- package/src/ui/screens/EditProfileFieldScreen.tsx +77 -190
- package/src/ui/screens/FAQScreen.tsx +77 -208
- package/src/ui/screens/FeedbackScreen.tsx +330 -239
- package/src/ui/screens/FileManagementScreen.tsx +20 -20
- package/src/ui/screens/HelpSupportScreen.tsx +67 -82
- package/src/ui/screens/HistoryViewScreen.tsx +32 -38
- package/src/ui/screens/LanguageSelectorScreen.tsx +79 -93
- package/src/ui/screens/LearnMoreUsernamesScreen.tsx +81 -164
- package/src/ui/screens/LegalDocumentsScreen.tsx +184 -123
- package/src/ui/screens/ManageAccountScreen.tsx +48 -114
- package/src/ui/screens/NotificationsScreen.tsx +107 -106
- package/src/ui/screens/OxyAuthScreen.tsx +76 -109
- package/src/ui/screens/PaymentGatewayScreen.tsx +16 -7
- package/src/ui/screens/PreferencesScreen.tsx +96 -116
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +419 -872
- package/src/ui/screens/PrivacySettingsScreen.tsx +203 -185
- package/src/ui/screens/ProfileScreen.tsx +158 -200
- package/src/ui/screens/SavesCollectionsScreen.tsx +78 -125
- package/src/ui/screens/SearchSettingsScreen.tsx +52 -41
- package/src/ui/screens/UserLinksScreen.tsx +18 -25
- package/src/ui/screens/UserListScreen.tsx +95 -188
- package/src/ui/screens/WelcomeNewUserScreen.tsx +109 -36
- package/src/ui/screens/trust/TrustAboutScreen.tsx +52 -41
- package/src/ui/screens/trust/TrustCenterScreen.tsx +184 -222
- package/src/ui/screens/trust/TrustFAQScreen.tsx +64 -124
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +190 -67
- package/src/ui/screens/trust/TrustRewardsScreen.tsx +147 -182
- package/src/ui/screens/trust/TrustRulesScreen.tsx +77 -50
- package/src/ui/utils/activeAuthuser.ts +15 -9
- package/src/ui/utils/avatarUtils.ts +1 -1
- package/lib/commonjs/ui/components/feedback/FormInput.js +0 -72
- package/lib/commonjs/ui/components/feedback/FormInput.js.map +0 -1
- package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -261
- package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +0 -1
- package/lib/module/ui/components/feedback/FormInput.js +0 -67
- package/lib/module/ui/components/feedback/FormInput.js.map +0 -1
- package/lib/module/ui/components/feedback/feedbackStyles.js +0 -256
- package/lib/module/ui/components/feedback/feedbackStyles.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts +0 -20
- package/lib/typescript/commonjs/ui/components/feedback/FormInput.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -279
- package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/feedback/FormInput.d.ts +0 -20
- package/lib/typescript/module/ui/components/feedback/FormInput.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -279
- package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +0 -1
- package/src/ui/components/feedback/FormInput.tsx +0 -84
- package/src/ui/components/feedback/feedbackStyles.ts +0 -246
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { useCallback, useMemo, useRef, useState, useEffect } from 'react';
|
|
3
|
-
import { View,
|
|
3
|
+
import { View, StyleSheet, Platform, Animated } from 'react-native';
|
|
4
4
|
import AnimatedReanimated, { useSharedValue, useAnimatedStyle, withTiming } from 'react-native-reanimated';
|
|
5
5
|
import type { BaseScreenProps } from '../types/navigation';
|
|
6
6
|
import Avatar from '../components/Avatar';
|
|
@@ -9,6 +9,8 @@ import { toast } from '@oxyhq/bloom';
|
|
|
9
9
|
import { useAuthStore } from '../stores/authStore';
|
|
10
10
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
11
11
|
import { Button } from '@oxyhq/bloom/button';
|
|
12
|
+
import { H1, Text } from '@oxyhq/bloom/typography';
|
|
13
|
+
import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
|
|
12
14
|
import { useI18n } from '../hooks/useI18n';
|
|
13
15
|
import { useOxy } from '../context/OxyContext';
|
|
14
16
|
import { useUpdateProfile } from '../hooks/mutations/useAccountMutations';
|
|
@@ -80,6 +82,11 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
80
82
|
const [currentStep, setCurrentStep] = useState(0);
|
|
81
83
|
// Track avatar separately to ensure it updates immediately after selection
|
|
82
84
|
const [selectedAvatarId, setSelectedAvatarId] = useState<string | undefined>(currentUser?.avatar);
|
|
85
|
+
// Name form state for the conditional "set your name" step. Lazy initializers
|
|
86
|
+
// seed from the current user once; no useEffect prop→state sync.
|
|
87
|
+
const [firstName, setFirstName] = useState(() => (currentUser?.name?.first ?? '').trim());
|
|
88
|
+
const [lastName, setLastName] = useState(() => (currentUser?.name?.last ?? '').trim());
|
|
89
|
+
const [savingName, setSavingName] = useState(false);
|
|
83
90
|
|
|
84
91
|
// Update selectedAvatarId when user changes
|
|
85
92
|
useEffect(() => {
|
|
@@ -98,7 +105,10 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
98
105
|
const welcomeTitle = currentUser
|
|
99
106
|
? (t('welcomeNew.welcome.titleWithName', { username: welcomeName }) || `Welcome, ${welcomeName} 👋`)
|
|
100
107
|
: (t('welcomeNew.welcome.title') || 'Welcome 👋');
|
|
101
|
-
|
|
108
|
+
// Only ask the user for their name during onboarding when they don't have a
|
|
109
|
+
// first name yet. publicKey-only / minimal accounts surface this step.
|
|
110
|
+
const needsName = !!currentUser && !(currentUser.name?.first ?? '').trim();
|
|
111
|
+
const steps: Array<{ key: string; title: string; bullets?: string[]; body?: string; showAvatar?: boolean; showNameForm?: boolean; }> = [
|
|
102
112
|
{ key: 'welcome', title: welcomeTitle, body: t('welcomeNew.welcome.body') || "You just created an account in a calm, ethical space. A few quick things — then you're in." },
|
|
103
113
|
{
|
|
104
114
|
key: 'account', title: t('welcomeNew.account.title') || 'One Account. Simple.', bullets: [
|
|
@@ -119,8 +129,25 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
119
129
|
{ key: 'avatar', title: t('welcomeNew.avatar.title') || 'Make It Yours', body: t('welcomeNew.avatar.body') || 'Add an avatar so people recognize you. It will show anywhere you show up here. Skip if you want — you can add it later.', showAvatar: true },
|
|
120
130
|
{ key: 'ready', title: t('welcomeNew.ready.title') || "You're Ready", body: t('welcomeNew.ready.body') || 'Explore. Contribute. Earn reputation. Stay in control.' }
|
|
121
131
|
];
|
|
132
|
+
if (needsName) {
|
|
133
|
+
// Inject the required name step immediately BEFORE the avatar step:
|
|
134
|
+
// …trust, name, avatar, ready.
|
|
135
|
+
const insertAt = steps.findIndex(s => s.showAvatar);
|
|
136
|
+
const nameStep = {
|
|
137
|
+
key: 'name',
|
|
138
|
+
title: t('welcomeNew.name.title') || "What's your name?",
|
|
139
|
+
body: t('welcomeNew.name.body') || 'Add your name so people know who you are.',
|
|
140
|
+
showNameForm: true,
|
|
141
|
+
};
|
|
142
|
+
if (insertAt >= 0) {
|
|
143
|
+
steps.splice(insertAt, 0, nameStep);
|
|
144
|
+
} else {
|
|
145
|
+
steps.push(nameStep);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
122
148
|
const totalSteps = steps.length;
|
|
123
149
|
const avatarStepIndex = steps.findIndex(s => s.showAvatar);
|
|
150
|
+
const nameStepIndex = steps.findIndex(s => s.showNameForm);
|
|
124
151
|
|
|
125
152
|
const animateToStepCallback = useCallback((next: number) => {
|
|
126
153
|
Animated.timing(fadeAnim, { toValue: 0, duration: 180, useNativeDriver: Platform.OS !== 'web' }).start(() => {
|
|
@@ -135,8 +162,27 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
135
162
|
|
|
136
163
|
const nextStep = useCallback(() => { if (currentStep < totalSteps - 1) animateToStepCallback(currentStep + 1); }, [currentStep, totalSteps, animateToStepCallback]);
|
|
137
164
|
const prevStep = useCallback(() => { if (currentStep > 0) animateToStepCallback(currentStep - 1); }, [currentStep, animateToStepCallback]);
|
|
138
|
-
|
|
165
|
+
// Skip from the intro step lands on the FIRST personalization step that
|
|
166
|
+
// exists — the required name step when present, otherwise the avatar step —
|
|
167
|
+
// so the required name step can never be bypassed.
|
|
168
|
+
const skipToAvatar = useCallback(() => {
|
|
169
|
+
const personalizeIndex = nameStepIndex >= 0 ? nameStepIndex : avatarStepIndex;
|
|
170
|
+
if (personalizeIndex >= 0) animateToStepCallback(personalizeIndex);
|
|
171
|
+
}, [nameStepIndex, avatarStepIndex, animateToStepCallback]);
|
|
139
172
|
const finish = useCallback(() => { if (onAuthenticated && currentUser) onAuthenticated(currentUser); }, [onAuthenticated, currentUser]);
|
|
173
|
+
const submitName = useCallback(async () => {
|
|
174
|
+
const f = firstName.trim();
|
|
175
|
+
if (!f) return;
|
|
176
|
+
setSavingName(true);
|
|
177
|
+
try {
|
|
178
|
+
await updateProfileMutation.mutateAsync({ name: { first: f, last: lastName.trim() } });
|
|
179
|
+
animateToStepCallback(currentStep + 1);
|
|
180
|
+
} catch (e: unknown) {
|
|
181
|
+
toast.error((e instanceof Error ? e.message : null) || t('welcomeNew.name.saveFailed') || 'Could not save your name');
|
|
182
|
+
} finally {
|
|
183
|
+
setSavingName(false);
|
|
184
|
+
}
|
|
185
|
+
}, [firstName, lastName, updateProfileMutation, animateToStepCallback, currentStep, t]);
|
|
140
186
|
const openAvatarPicker = useCallback(() => {
|
|
141
187
|
// Ensure we're on the avatar step before opening picker
|
|
142
188
|
if (avatarStepIndex >= 0 && currentStep !== avatarStepIndex) {
|
|
@@ -180,10 +226,10 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
180
226
|
if (currentStep === totalSteps - 1) {
|
|
181
227
|
return (
|
|
182
228
|
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
|
|
183
|
-
<Button variant="secondary" onPress={prevStep} size="small"
|
|
229
|
+
<Button variant="secondary" onPress={prevStep} size="small">
|
|
184
230
|
{t('welcomeNew.actions.back') || 'Back'}
|
|
185
231
|
</Button>
|
|
186
|
-
<Button variant="primary" onPress={finish} size="small"
|
|
232
|
+
<Button variant="primary" onPress={finish} size="small">
|
|
187
233
|
{t('welcomeNew.actions.enter') || 'Enter'}
|
|
188
234
|
</Button>
|
|
189
235
|
</View>
|
|
@@ -193,23 +239,35 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
193
239
|
return (
|
|
194
240
|
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
|
|
195
241
|
{avatarStepIndex > 0 && (
|
|
196
|
-
<Button variant="secondary" onPress={skipToAvatar} size="small"
|
|
242
|
+
<Button variant="secondary" onPress={skipToAvatar} size="small">
|
|
197
243
|
{t('welcomeNew.actions.skip') || 'Skip'}
|
|
198
244
|
</Button>
|
|
199
245
|
)}
|
|
200
|
-
<Button variant="primary" onPress={nextStep} size="small"
|
|
246
|
+
<Button variant="primary" onPress={nextStep} size="small">
|
|
201
247
|
{t('welcomeNew.actions.next') || 'Next'}
|
|
202
248
|
</Button>
|
|
203
249
|
</View>
|
|
204
250
|
);
|
|
205
251
|
}
|
|
252
|
+
if (nameStepIndex >= 0 && currentStep === nameStepIndex) {
|
|
253
|
+
return (
|
|
254
|
+
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
|
|
255
|
+
<Button variant="secondary" onPress={prevStep} size="small">
|
|
256
|
+
{t('welcomeNew.actions.back') || 'Back'}
|
|
257
|
+
</Button>
|
|
258
|
+
<Button variant="primary" onPress={submitName} size="small" disabled={!firstName.trim() || savingName} loading={savingName}>
|
|
259
|
+
{t('welcomeNew.actions.continue') || 'Continue'}
|
|
260
|
+
</Button>
|
|
261
|
+
</View>
|
|
262
|
+
);
|
|
263
|
+
}
|
|
206
264
|
if (step.showAvatar) {
|
|
207
265
|
return (
|
|
208
266
|
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
|
|
209
|
-
<Button variant="secondary" onPress={prevStep} size="small"
|
|
267
|
+
<Button variant="secondary" onPress={prevStep} size="small">
|
|
210
268
|
{t('welcomeNew.actions.back') || 'Back'}
|
|
211
269
|
</Button>
|
|
212
|
-
<Button variant="primary" onPress={nextStep} size="small"
|
|
270
|
+
<Button variant="primary" onPress={nextStep} size="small">
|
|
213
271
|
{avatarUri ? (t('welcomeNew.actions.continue') || 'Continue') : (t('welcomeNew.actions.skip') || 'Skip')}
|
|
214
272
|
</Button>
|
|
215
273
|
</View>
|
|
@@ -217,15 +275,15 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
217
275
|
}
|
|
218
276
|
return (
|
|
219
277
|
<View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
|
|
220
|
-
<Button variant="secondary" onPress={prevStep} size="small"
|
|
278
|
+
<Button variant="secondary" onPress={prevStep} size="small">
|
|
221
279
|
{t('welcomeNew.actions.back') || 'Back'}
|
|
222
280
|
</Button>
|
|
223
|
-
<Button variant="primary" onPress={nextStep} size="small"
|
|
281
|
+
<Button variant="primary" onPress={nextStep} size="small">
|
|
224
282
|
{t('welcomeNew.actions.next') || 'Next'}
|
|
225
283
|
</Button>
|
|
226
284
|
</View>
|
|
227
285
|
);
|
|
228
|
-
}, [currentStep, totalSteps, prevStep, nextStep, finish, skipToAvatar, avatarStepIndex, step.showAvatar, avatarUri, t]);
|
|
286
|
+
}, [currentStep, totalSteps, prevStep, nextStep, finish, skipToAvatar, avatarStepIndex, nameStepIndex, submitName, firstName, savingName, step.showAvatar, avatarUri, t]);
|
|
229
287
|
|
|
230
288
|
return (
|
|
231
289
|
<View style={styles.container}>
|
|
@@ -242,7 +300,7 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
242
300
|
<Animated.View style={{ opacity: fadeAnim, transform: [{ translateX: slideAnim }] }}>
|
|
243
301
|
<View style={[styles.scrollInner, styles.contentContainer]}>
|
|
244
302
|
<View style={[styles.header, styles.sectionSpacing]}>
|
|
245
|
-
<
|
|
303
|
+
<H1 style={styles.title} className="text-foreground">{step.title}</H1>
|
|
246
304
|
{step.body && <Text style={styles.body} className="text-muted-foreground">{step.body}</Text>}
|
|
247
305
|
</View>
|
|
248
306
|
{Array.isArray(step.bullets) && step.bullets.length > 0 && (
|
|
@@ -255,6 +313,33 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
255
313
|
))}
|
|
256
314
|
</View>
|
|
257
315
|
)}
|
|
316
|
+
{step.showNameForm && (
|
|
317
|
+
<View style={[styles.nameForm, styles.sectionSpacing]}>
|
|
318
|
+
<View style={styles.nameField}>
|
|
319
|
+
<TextField>
|
|
320
|
+
<TextFieldInput
|
|
321
|
+
floatingLabel
|
|
322
|
+
label={t('welcomeNew.name.firstLabel') || 'First name'}
|
|
323
|
+
value={firstName}
|
|
324
|
+
onChangeText={setFirstName}
|
|
325
|
+
autoFocus
|
|
326
|
+
autoCapitalize="words"
|
|
327
|
+
/>
|
|
328
|
+
</TextField>
|
|
329
|
+
</View>
|
|
330
|
+
<View style={styles.nameField}>
|
|
331
|
+
<TextField>
|
|
332
|
+
<TextFieldInput
|
|
333
|
+
floatingLabel
|
|
334
|
+
label={t('welcomeNew.name.lastLabel') || 'Last name'}
|
|
335
|
+
value={lastName}
|
|
336
|
+
onChangeText={setLastName}
|
|
337
|
+
autoCapitalize="words"
|
|
338
|
+
/>
|
|
339
|
+
</TextField>
|
|
340
|
+
</View>
|
|
341
|
+
</View>
|
|
342
|
+
)}
|
|
258
343
|
{step.showAvatar && (
|
|
259
344
|
<View style={[styles.avatarSection, styles.sectionSpacing]}>
|
|
260
345
|
<Avatar
|
|
@@ -265,10 +350,9 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: any }> = ({
|
|
|
265
350
|
backgroundColor={`${colors.primary}20`}
|
|
266
351
|
style={styles.avatar}
|
|
267
352
|
/>
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
</TouchableOpacity>
|
|
353
|
+
<Button variant="primary" size="small" onPress={openAvatarPicker}>
|
|
354
|
+
{avatarUri ? (t('welcomeNew.avatar.change') || 'Change Avatar') : (t('welcomeNew.avatar.add') || 'Add Avatar')}
|
|
355
|
+
</Button>
|
|
272
356
|
</View>
|
|
273
357
|
)}
|
|
274
358
|
<View style={styles.sectionSpacing}>
|
|
@@ -305,7 +389,6 @@ const createStyles = (colors: ReturnType<typeof useTheme>['colors']) => {
|
|
|
305
389
|
},
|
|
306
390
|
title: {
|
|
307
391
|
fontSize: 42,
|
|
308
|
-
fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
|
|
309
392
|
letterSpacing: -1,
|
|
310
393
|
textAlign: 'left',
|
|
311
394
|
},
|
|
@@ -330,6 +413,14 @@ const createStyles = (colors: ReturnType<typeof useTheme>['colors']) => {
|
|
|
330
413
|
fontSize: 15,
|
|
331
414
|
lineHeight: 20,
|
|
332
415
|
},
|
|
416
|
+
nameForm: {
|
|
417
|
+
width: '100%',
|
|
418
|
+
gap: GAP,
|
|
419
|
+
},
|
|
420
|
+
nameField: {
|
|
421
|
+
width: '100%',
|
|
422
|
+
gap: INNER_GAP / 2,
|
|
423
|
+
},
|
|
333
424
|
avatarSection: {
|
|
334
425
|
width: '100%',
|
|
335
426
|
alignItems: 'center',
|
|
@@ -337,24 +428,6 @@ const createStyles = (colors: ReturnType<typeof useTheme>['colors']) => {
|
|
|
337
428
|
avatar: {
|
|
338
429
|
marginBottom: INNER_GAP,
|
|
339
430
|
},
|
|
340
|
-
changeAvatarButton: {
|
|
341
|
-
flexDirection: 'row',
|
|
342
|
-
alignItems: 'center',
|
|
343
|
-
paddingHorizontal: 18,
|
|
344
|
-
paddingVertical: 10,
|
|
345
|
-
borderRadius: 28,
|
|
346
|
-
gap: 8,
|
|
347
|
-
shadowOpacity: 0,
|
|
348
|
-
shadowRadius: 0,
|
|
349
|
-
shadowOffset: { width: 0, height: 0 },
|
|
350
|
-
elevation: 0,
|
|
351
|
-
...(Platform.OS === 'web' ? { boxShadow: 'none' } : null),
|
|
352
|
-
},
|
|
353
|
-
changeAvatarText: {
|
|
354
|
-
color: colors.negativeForeground,
|
|
355
|
-
fontSize: 15,
|
|
356
|
-
fontWeight: '600',
|
|
357
|
-
},
|
|
358
431
|
progressContainer: {
|
|
359
432
|
flexDirection: 'row',
|
|
360
433
|
width: '100%',
|
|
@@ -1,43 +1,72 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { View,
|
|
2
|
+
import { View, ScrollView } from 'react-native';
|
|
3
|
+
import { useTheme } from '@oxyhq/bloom/theme';
|
|
4
|
+
import { H4, Text } from '@oxyhq/bloom/typography';
|
|
5
|
+
import { IconCircle } from '@oxyhq/bloom/icon-circle';
|
|
6
|
+
import { BenefitList, BenefitRow } from '@oxyhq/bloom/benefit-list';
|
|
7
|
+
import * as Icons from '@oxyhq/bloom/icons';
|
|
3
8
|
import type { BaseScreenProps } from '../../types/navigation';
|
|
4
9
|
import Header from '../../components/Header';
|
|
5
10
|
import { useI18n } from '../../hooks/useI18n';
|
|
6
|
-
import { useTheme } from '@oxyhq/bloom/theme';
|
|
7
11
|
|
|
8
|
-
const TrustAboutScreen: React.FC<BaseScreenProps> = ({ goBack
|
|
12
|
+
const TrustAboutScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
|
|
9
13
|
const { t } = useI18n();
|
|
10
14
|
const bloomTheme = useTheme();
|
|
11
|
-
|
|
12
|
-
const primaryColor = '#d169e5';
|
|
15
|
+
const iconColor = bloomTheme.colors.primary;
|
|
13
16
|
|
|
14
17
|
return (
|
|
15
|
-
<View
|
|
18
|
+
<View className="flex-1 bg-bg">
|
|
16
19
|
<Header
|
|
17
20
|
title={t('trust.about.title') || 'About Oxy Trust'}
|
|
18
21
|
subtitle={t('trust.about.subtitle') || 'Learn about the reputation system'}
|
|
19
|
-
|
|
20
22
|
onBack={goBack}
|
|
21
23
|
elevation="subtle"
|
|
22
24
|
/>
|
|
23
|
-
<ScrollView
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
<ScrollView
|
|
26
|
+
className="flex-1 px-screen-margin"
|
|
27
|
+
showsVerticalScrollIndicator={false}
|
|
28
|
+
contentContainerClassName="pb-space-32"
|
|
29
|
+
>
|
|
30
|
+
<View className="items-center py-space-24 gap-space-12">
|
|
31
|
+
<IconCircle icon={Icons.ShieldCheck_Stroke2_Corner0_Rounded} />
|
|
32
|
+
<Text className="font-sans text-body text-text-secondary text-center">
|
|
33
|
+
{t('trust.about.intro') || 'Oxy Trust is a recognition of your positive actions in the Oxy Ecosystem. Reputation cannot be sent or received directly, only earned by contributing to the community.'}
|
|
34
|
+
</Text>
|
|
35
|
+
</View>
|
|
36
|
+
|
|
37
|
+
<H4 className="text-sectionTitle font-sectionTitle text-text-secondary mb-space-12">
|
|
28
38
|
{t('trust.about.how.title') || 'How to Earn Reputation'}
|
|
29
|
-
</
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
</H4>
|
|
40
|
+
<BenefitList
|
|
41
|
+
className="mb-space-24"
|
|
42
|
+
accessibilityLabel={t('trust.about.how.title') || 'How to Earn Reputation'}
|
|
43
|
+
>
|
|
44
|
+
<BenefitRow
|
|
45
|
+
icon={<Icons.UserCircle_Stroke2_Corner0_Rounded size="sm" style={{ color: iconColor }} />}
|
|
46
|
+
label={t('trust.about.how.help') || 'Helping other users'}
|
|
47
|
+
/>
|
|
48
|
+
<BenefitRow
|
|
49
|
+
icon={<Icons.Flag_Stroke2_Corner0_Rounded size="sm" style={{ color: iconColor }} />}
|
|
50
|
+
label={t('trust.about.how.report') || 'Reporting bugs'}
|
|
51
|
+
/>
|
|
52
|
+
<BenefitRow
|
|
53
|
+
icon={<Icons.PencilLine_Stroke2_Corner0_Rounded size="sm" style={{ color: iconColor }} />}
|
|
54
|
+
label={t('trust.about.how.contribute') || 'Contributing content'}
|
|
55
|
+
/>
|
|
56
|
+
<BenefitRow
|
|
57
|
+
icon={<Icons.Calendar_Stroke2_Corner0_Rounded size="sm" style={{ color: iconColor }} />}
|
|
58
|
+
label={t('trust.about.how.participate') || 'Participating in events'}
|
|
59
|
+
/>
|
|
60
|
+
<BenefitRow
|
|
61
|
+
icon={<Icons.Sparkle_Stroke2_Corner0_Rounded size="sm" style={{ color: iconColor }} />}
|
|
62
|
+
label={t('trust.about.how.other') || 'Other positive actions'}
|
|
63
|
+
/>
|
|
64
|
+
</BenefitList>
|
|
65
|
+
|
|
66
|
+
<H4 className="text-sectionTitle font-sectionTitle text-text-secondary mb-space-12">
|
|
38
67
|
{t('trust.about.why.title') || 'Why Oxy Trust?'}
|
|
39
|
-
</
|
|
40
|
-
<Text
|
|
68
|
+
</H4>
|
|
69
|
+
<Text className="font-sans text-body text-text-secondary">
|
|
41
70
|
{t('trust.about.why.text') || 'Your reputation and trust tier unlock special features and recognition in the Oxy Ecosystem. The more you contribute, the more you earn!'}
|
|
42
71
|
</Text>
|
|
43
72
|
</ScrollView>
|
|
@@ -45,22 +74,4 @@ const TrustAboutScreen: React.FC<BaseScreenProps> = ({ goBack, theme }) => {
|
|
|
45
74
|
);
|
|
46
75
|
};
|
|
47
76
|
|
|
48
|
-
const styles = StyleSheet.create({
|
|
49
|
-
container: { flex: 1 },
|
|
50
|
-
title: {
|
|
51
|
-
fontWeight: Platform.OS === 'web' ? 'bold' : undefined, // Only apply fontWeight on web
|
|
52
|
-
fontSize: 54,
|
|
53
|
-
margin: 24,
|
|
54
|
-
marginBottom: 24,
|
|
55
|
-
},
|
|
56
|
-
contentContainer: { padding: 24, paddingTop: 20 },
|
|
57
|
-
section: {
|
|
58
|
-
fontSize: 18,
|
|
59
|
-
fontWeight: Platform.OS === 'web' ? 'bold' : undefined,
|
|
60
|
-
marginTop: 24,
|
|
61
|
-
marginBottom: 8
|
|
62
|
-
},
|
|
63
|
-
paragraph: { fontSize: 16, marginBottom: 12 },
|
|
64
|
-
});
|
|
65
|
-
|
|
66
77
|
export default TrustAboutScreen;
|