@oxyhq/services 11.0.0 → 11.1.1
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 +7 -0
- 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/OxyLogo.js +1 -1
- package/lib/commonjs/ui/components/OxyLogo.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 +194 -333
- 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 +2 -0
- 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/OxyLogo.js +1 -1
- package/lib/module/ui/components/OxyLogo.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 +192 -331
- 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 +2 -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 +6 -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 +2 -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 +6 -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 +8 -3
- package/src/index.ts +2 -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/OxyLogo.tsx +1 -1
- 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 +162 -246
- 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,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback,
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
2
|
import { ActivityIndicator, FlatList, RefreshControl, StyleSheet, View } from 'react-native';
|
|
3
3
|
import { Dialog, toast, useDialogControl } from '@oxyhq/bloom';
|
|
4
4
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
@@ -7,15 +7,15 @@ import type { AuthorizedApp } from '@oxyhq/core';
|
|
|
7
7
|
import { logger as loggerUtil } from '@oxyhq/core';
|
|
8
8
|
import type { BaseScreenProps } from '../types/navigation';
|
|
9
9
|
import Header from '../components/Header';
|
|
10
|
+
import Avatar from '../components/Avatar';
|
|
10
11
|
import EmptyState from '../components/EmptyState';
|
|
11
|
-
import
|
|
12
|
+
import LoadingState from '../components/LoadingState';
|
|
12
13
|
import { useI18n } from '../hooks/useI18n';
|
|
13
14
|
import { useOxy } from '../context/OxyContext';
|
|
14
15
|
import { useAuthorizedApps } from '../hooks/queries/useAccountQueries';
|
|
15
16
|
import { useRevokeAuthorizedApp } from '../hooks/mutations/useAccountMutations';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
import { normalizeColorScheme, normalizeTheme } from '@oxyhq/core';
|
|
17
|
+
|
|
18
|
+
const APP_ICON_SIZE = 40;
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Format an ISO-8601 timestamp as a human-readable relative time. Mirrors the
|
|
@@ -46,14 +46,9 @@ const formatRelative = (iso: string): string => {
|
|
|
46
46
|
* :origin`. Each revoke invalidates the connected-apps query so the list
|
|
47
47
|
* refreshes immediately.
|
|
48
48
|
*/
|
|
49
|
-
const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose,
|
|
49
|
+
const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
|
|
50
50
|
const bloomTheme = useTheme();
|
|
51
51
|
const { t } = useI18n();
|
|
52
|
-
const colorScheme = useColorScheme();
|
|
53
|
-
const palette = useMemo(
|
|
54
|
-
() => Colors[normalizeColorScheme(colorScheme, normalizeTheme(theme))],
|
|
55
|
-
[colorScheme, theme],
|
|
56
|
-
);
|
|
57
52
|
const { isAuthenticated } = useOxy();
|
|
58
53
|
const {
|
|
59
54
|
data: apps,
|
|
@@ -104,7 +99,7 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
|
|
|
104
99
|
|
|
105
100
|
const renderEmpty = useCallback(
|
|
106
101
|
() => (
|
|
107
|
-
<View
|
|
102
|
+
<View className="flex-1 items-center justify-center py-space-32">
|
|
108
103
|
<EmptyState
|
|
109
104
|
message={
|
|
110
105
|
t('connectedApps.empty.subtitle')
|
|
@@ -123,7 +118,7 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
|
|
|
123
118
|
return (
|
|
124
119
|
<SettingsListGroup>
|
|
125
120
|
<SettingsListItem
|
|
126
|
-
icon={<
|
|
121
|
+
icon={<Avatar name={item.name} size={APP_ICON_SIZE} />}
|
|
127
122
|
title={item.name}
|
|
128
123
|
description={
|
|
129
124
|
t('connectedApps.item.lastUsed', {
|
|
@@ -147,11 +142,11 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
|
|
|
147
142
|
</SettingsListGroup>
|
|
148
143
|
);
|
|
149
144
|
},
|
|
150
|
-
[bloomTheme.colors.error, confirmRevoke,
|
|
145
|
+
[bloomTheme.colors.error, confirmRevoke, revokingOrigin, t],
|
|
151
146
|
);
|
|
152
147
|
|
|
153
148
|
return (
|
|
154
|
-
<View
|
|
149
|
+
<View className="flex-1 bg-bg">
|
|
155
150
|
<Header
|
|
156
151
|
title={t('connectedApps.title') || 'Connected apps'}
|
|
157
152
|
onBack={goBack || onClose}
|
|
@@ -159,14 +154,13 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
|
|
|
159
154
|
elevation="subtle"
|
|
160
155
|
/>
|
|
161
156
|
{isLoading && !apps ? (
|
|
162
|
-
<
|
|
163
|
-
<ActivityIndicator color={bloomTheme.colors.primary} size="large" />
|
|
164
|
-
</View>
|
|
157
|
+
<LoadingState color={bloomTheme.colors.primary} />
|
|
165
158
|
) : (
|
|
166
159
|
<FlatList
|
|
167
160
|
data={apps ?? []}
|
|
168
161
|
keyExtractor={(item) => item.origin}
|
|
169
162
|
renderItem={renderItem}
|
|
163
|
+
contentContainerClassName="px-screen-margin py-space-16"
|
|
170
164
|
contentContainerStyle={styles.listContent}
|
|
171
165
|
ListEmptyComponent={renderEmpty}
|
|
172
166
|
refreshControl={
|
|
@@ -200,26 +194,14 @@ const ConnectedAppsScreen: React.FC<BaseScreenProps> = ({ onClose, theme, goBack
|
|
|
200
194
|
);
|
|
201
195
|
};
|
|
202
196
|
|
|
197
|
+
// Layout-only style: `flexGrow` lets the FlatList content fill the viewport so
|
|
198
|
+
// the empty state centers vertically. Not expressible as a Bloom token class —
|
|
199
|
+
// all colors, spacing, radius, and typography live on token classes + Bloom
|
|
200
|
+
// components.
|
|
203
201
|
const styles = StyleSheet.create({
|
|
204
|
-
container: {
|
|
205
|
-
flex: 1,
|
|
206
|
-
},
|
|
207
|
-
center: {
|
|
208
|
-
flex: 1,
|
|
209
|
-
alignItems: 'center',
|
|
210
|
-
justifyContent: 'center',
|
|
211
|
-
},
|
|
212
202
|
listContent: {
|
|
213
|
-
paddingHorizontal: 16,
|
|
214
|
-
paddingVertical: 16,
|
|
215
203
|
flexGrow: 1,
|
|
216
204
|
},
|
|
217
|
-
emptyContainer: {
|
|
218
|
-
flex: 1,
|
|
219
|
-
justifyContent: 'center',
|
|
220
|
-
alignItems: 'center',
|
|
221
|
-
paddingVertical: 48,
|
|
222
|
-
},
|
|
223
205
|
});
|
|
224
206
|
|
|
225
207
|
export default React.memo(ConnectedAppsScreen);
|
|
@@ -2,27 +2,29 @@ import type React from 'react';
|
|
|
2
2
|
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
3
3
|
import {
|
|
4
4
|
View,
|
|
5
|
-
|
|
6
|
-
TextInput,
|
|
7
|
-
TouchableOpacity,
|
|
8
|
-
StyleSheet,
|
|
5
|
+
Platform,
|
|
9
6
|
ActivityIndicator,
|
|
10
7
|
ScrollView,
|
|
11
|
-
Platform,
|
|
12
8
|
KeyboardAvoidingView,
|
|
13
9
|
} from 'react-native';
|
|
10
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
14
11
|
import type { BaseScreenProps } from '../types/navigation';
|
|
15
12
|
import Header from '../components/Header';
|
|
16
13
|
import { useI18n } from '../hooks/useI18n';
|
|
17
14
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
15
|
+
import { H1, Text } from '@oxyhq/bloom/typography';
|
|
16
|
+
import { Button } from '@oxyhq/bloom/button';
|
|
17
|
+
import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
|
|
18
18
|
import { useOxy } from '../context/OxyContext';
|
|
19
19
|
import { toast } from '@oxyhq/bloom';
|
|
20
|
-
import { screenContentStyle } from '../constants/spacing';
|
|
21
20
|
|
|
22
21
|
type UsernameStatus = 'idle' | 'checking' | 'available' | 'taken' | 'invalid';
|
|
23
22
|
|
|
24
23
|
const USERNAME_REGEX = /^[a-zA-Z0-9_-]{3,30}$/;
|
|
25
24
|
const DEBOUNCE_MS = 400;
|
|
25
|
+
const USERNAME_MAX = 30;
|
|
26
|
+
const DISPLAY_NAME_MAX = 50;
|
|
27
|
+
const BIO_MAX = 160;
|
|
26
28
|
|
|
27
29
|
const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
|
|
28
30
|
onClose,
|
|
@@ -123,18 +125,16 @@ const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
|
|
|
123
125
|
}
|
|
124
126
|
}, [canCreate, username, displayName, bio, createManagedAccount, setActingAs, onClose]);
|
|
125
127
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
};
|
|
128
|
+
// Status icon + color shown alongside the username field message
|
|
129
|
+
const usernameIsInvalid = usernameStatus === 'taken' || usernameStatus === 'invalid';
|
|
130
|
+
const statusColor = usernameStatus === 'available'
|
|
131
|
+
? bloomTheme.colors.success
|
|
132
|
+
: usernameIsInvalid
|
|
133
|
+
? bloomTheme.colors.negative
|
|
134
|
+
: bloomTheme.colors.textSecondary;
|
|
135
135
|
|
|
136
136
|
return (
|
|
137
|
-
<View
|
|
137
|
+
<View className="flex-1 bg-bg">
|
|
138
138
|
<Header
|
|
139
139
|
title="Create Identity"
|
|
140
140
|
onBack={goBack}
|
|
@@ -145,183 +145,107 @@ const CreateManagedAccountScreen: React.FC<BaseScreenProps> = ({
|
|
|
145
145
|
/>
|
|
146
146
|
|
|
147
147
|
<KeyboardAvoidingView
|
|
148
|
-
|
|
148
|
+
className="flex-1"
|
|
149
149
|
behavior={Platform.OS === 'ios' ? 'padding' : undefined}
|
|
150
150
|
keyboardVerticalOffset={Platform.OS === 'ios' ? 88 : 0}
|
|
151
151
|
>
|
|
152
152
|
<ScrollView
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
className="flex-1"
|
|
154
|
+
contentContainerClassName="px-screen-margin pt-space-24 pb-space-32 gap-space-24"
|
|
155
|
+
showsVerticalScrollIndicator={false}
|
|
155
156
|
keyboardShouldPersistTaps="handled"
|
|
156
157
|
>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
{/* Big Title */}
|
|
159
|
+
<View className="gap-space-8">
|
|
160
|
+
<H1 className="text-headerBold font-headerBold text-text">
|
|
161
|
+
Create Identity
|
|
162
|
+
</H1>
|
|
163
|
+
<Text className="text-body font-body text-text-secondary">
|
|
164
|
+
Create a managed identity that you control. It will have its own profile, posts, and interactions.
|
|
165
|
+
</Text>
|
|
166
|
+
</View>
|
|
160
167
|
|
|
161
|
-
{/*
|
|
162
|
-
<View
|
|
163
|
-
|
|
164
|
-
<View
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
168
|
+
{/* Form Content */}
|
|
169
|
+
<View className="gap-space-16 p-space-16 rounded-radius-20 bg-fill">
|
|
170
|
+
{/* Username */}
|
|
171
|
+
<View className="gap-space-8">
|
|
172
|
+
<TextField isInvalid={usernameIsInvalid}>
|
|
173
|
+
<TextFieldInput
|
|
174
|
+
floatingLabel
|
|
175
|
+
label="Username"
|
|
176
|
+
value={username}
|
|
177
|
+
onChangeText={handleUsernameChange}
|
|
178
|
+
isInvalid={usernameIsInvalid}
|
|
179
|
+
autoCapitalize="none"
|
|
180
|
+
autoCorrect={false}
|
|
181
|
+
autoComplete="off"
|
|
182
|
+
maxLength={USERNAME_MAX}
|
|
183
|
+
/>
|
|
184
|
+
</TextField>
|
|
185
|
+
{(usernameStatus === 'checking' || usernameMessage) ? (
|
|
186
|
+
<View className="flex-row items-center gap-space-4 px-space-4">
|
|
187
|
+
{usernameStatus === 'checking' ? (
|
|
188
|
+
<ActivityIndicator size="small" color={bloomTheme.colors.primary} />
|
|
189
|
+
) : usernameStatus === 'available' ? (
|
|
190
|
+
<Ionicons name="checkmark-circle" size={16} color={bloomTheme.colors.success} />
|
|
191
|
+
) : usernameIsInvalid ? (
|
|
192
|
+
<Ionicons name="alert-circle" size={16} color={bloomTheme.colors.negative} />
|
|
193
|
+
) : null}
|
|
194
|
+
{usernameMessage ? (
|
|
195
|
+
<Text className="text-caption font-caption" style={{ color: statusColor }}>
|
|
196
|
+
{usernameMessage}
|
|
197
|
+
</Text>
|
|
198
|
+
) : null}
|
|
199
|
+
</View>
|
|
200
|
+
) : null}
|
|
186
201
|
</View>
|
|
187
|
-
{usernameMessage ? (
|
|
188
|
-
<Text style={[styles.statusMessage, { color: getStatusColor() }]}>
|
|
189
|
-
{usernameMessage}
|
|
190
|
-
</Text>
|
|
191
|
-
) : null}
|
|
192
|
-
</View>
|
|
193
202
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
style={[styles.input, { color: bloomTheme.colors.text }]}
|
|
203
|
+
{/* Display Name */}
|
|
204
|
+
<TextField>
|
|
205
|
+
<TextFieldInput
|
|
206
|
+
floatingLabel
|
|
207
|
+
label="Display Name"
|
|
200
208
|
value={displayName}
|
|
201
209
|
onChangeText={setDisplayName}
|
|
202
|
-
|
|
203
|
-
placeholderTextColor={bloomTheme.colors.text + '40'}
|
|
204
|
-
maxLength={50}
|
|
205
|
-
/>
|
|
206
|
-
</View>
|
|
207
|
-
</View>
|
|
208
|
-
|
|
209
|
-
{/* Bio */}
|
|
210
|
-
<View style={styles.fieldGroup}>
|
|
211
|
-
<Text style={[styles.label, { color: bloomTheme.colors.text }]}>Bio (optional)</Text>
|
|
212
|
-
<View style={[styles.inputContainer, styles.bioContainer, { borderColor: bloomTheme.colors.border }]}>
|
|
213
|
-
<TextInput
|
|
214
|
-
style={[styles.input, styles.bioInput, { color: bloomTheme.colors.text }]}
|
|
215
|
-
value={bio}
|
|
216
|
-
onChangeText={setBio}
|
|
217
|
-
placeholder="Tell people about this identity"
|
|
218
|
-
placeholderTextColor={bloomTheme.colors.text + '40'}
|
|
219
|
-
maxLength={160}
|
|
220
|
-
multiline
|
|
221
|
-
numberOfLines={3}
|
|
222
|
-
textAlignVertical="top"
|
|
210
|
+
maxLength={DISPLAY_NAME_MAX}
|
|
223
211
|
/>
|
|
212
|
+
</TextField>
|
|
213
|
+
|
|
214
|
+
{/* Bio */}
|
|
215
|
+
<View className="gap-space-4">
|
|
216
|
+
<TextField>
|
|
217
|
+
<TextFieldInput
|
|
218
|
+
floatingLabel
|
|
219
|
+
label="Bio (optional)"
|
|
220
|
+
value={bio}
|
|
221
|
+
onChangeText={setBio}
|
|
222
|
+
maxLength={BIO_MAX}
|
|
223
|
+
multiline
|
|
224
|
+
numberOfLines={3}
|
|
225
|
+
textAlignVertical="top"
|
|
226
|
+
/>
|
|
227
|
+
</TextField>
|
|
228
|
+
<Text className="text-caption font-caption text-text-tertiary px-space-4 text-right">
|
|
229
|
+
{bio.length}/{BIO_MAX}
|
|
230
|
+
</Text>
|
|
224
231
|
</View>
|
|
225
|
-
<Text style={[styles.charCount, { color: bloomTheme.colors.text + '60' }]}>
|
|
226
|
-
{bio.length}/160
|
|
227
|
-
</Text>
|
|
228
232
|
</View>
|
|
229
233
|
|
|
230
234
|
{/* Create Button */}
|
|
231
|
-
<
|
|
232
|
-
|
|
233
|
-
styles.createButton,
|
|
234
|
-
{ backgroundColor: bloomTheme.colors.primary },
|
|
235
|
-
!canCreate && styles.createButtonDisabled,
|
|
236
|
-
]}
|
|
235
|
+
<Button
|
|
236
|
+
variant="primary"
|
|
237
237
|
onPress={handleCreate}
|
|
238
238
|
disabled={!canCreate}
|
|
239
|
-
|
|
239
|
+
loading={isCreating}
|
|
240
|
+
accessibilityLabel="Create Identity"
|
|
241
|
+
className="w-full"
|
|
240
242
|
>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
) : (
|
|
244
|
-
<Text style={[styles.createButtonText, { color: bloomTheme.colors.negativeForeground }]}>Create Identity</Text>
|
|
245
|
-
)}
|
|
246
|
-
</TouchableOpacity>
|
|
243
|
+
Create Identity
|
|
244
|
+
</Button>
|
|
247
245
|
</ScrollView>
|
|
248
246
|
</KeyboardAvoidingView>
|
|
249
247
|
</View>
|
|
250
248
|
);
|
|
251
249
|
};
|
|
252
250
|
|
|
253
|
-
const styles = StyleSheet.create({
|
|
254
|
-
container: {
|
|
255
|
-
flex: 1,
|
|
256
|
-
},
|
|
257
|
-
flex: {
|
|
258
|
-
flex: 1,
|
|
259
|
-
},
|
|
260
|
-
description: {
|
|
261
|
-
fontSize: 15,
|
|
262
|
-
lineHeight: 22,
|
|
263
|
-
marginBottom: 24,
|
|
264
|
-
},
|
|
265
|
-
fieldGroup: {
|
|
266
|
-
marginBottom: 20,
|
|
267
|
-
},
|
|
268
|
-
label: {
|
|
269
|
-
fontSize: 14,
|
|
270
|
-
fontWeight: Platform.OS === 'web' ? '600' : undefined,
|
|
271
|
-
marginBottom: 8,
|
|
272
|
-
},
|
|
273
|
-
inputContainer: {
|
|
274
|
-
flexDirection: 'row',
|
|
275
|
-
alignItems: 'center',
|
|
276
|
-
borderWidth: 1,
|
|
277
|
-
borderRadius: 12,
|
|
278
|
-
paddingHorizontal: 14,
|
|
279
|
-
height: 48,
|
|
280
|
-
},
|
|
281
|
-
inputPrefix: {
|
|
282
|
-
fontSize: 16,
|
|
283
|
-
marginRight: 2,
|
|
284
|
-
},
|
|
285
|
-
input: {
|
|
286
|
-
flex: 1,
|
|
287
|
-
fontSize: 16,
|
|
288
|
-
paddingVertical: 0,
|
|
289
|
-
},
|
|
290
|
-
bioContainer: {
|
|
291
|
-
height: 88,
|
|
292
|
-
alignItems: 'flex-start',
|
|
293
|
-
paddingVertical: 12,
|
|
294
|
-
},
|
|
295
|
-
bioInput: {
|
|
296
|
-
height: 64,
|
|
297
|
-
},
|
|
298
|
-
statusIcon: {
|
|
299
|
-
fontSize: 13,
|
|
300
|
-
fontWeight: Platform.OS === 'web' ? '600' : undefined,
|
|
301
|
-
},
|
|
302
|
-
statusMessage: {
|
|
303
|
-
fontSize: 13,
|
|
304
|
-
marginTop: 6,
|
|
305
|
-
},
|
|
306
|
-
charCount: {
|
|
307
|
-
fontSize: 12,
|
|
308
|
-
textAlign: 'right',
|
|
309
|
-
marginTop: 4,
|
|
310
|
-
},
|
|
311
|
-
createButton: {
|
|
312
|
-
height: 50,
|
|
313
|
-
borderRadius: 25,
|
|
314
|
-
alignItems: 'center',
|
|
315
|
-
justifyContent: 'center',
|
|
316
|
-
marginTop: 12,
|
|
317
|
-
},
|
|
318
|
-
createButtonDisabled: {
|
|
319
|
-
opacity: 0.5,
|
|
320
|
-
},
|
|
321
|
-
createButtonText: {
|
|
322
|
-
fontSize: 16,
|
|
323
|
-
fontWeight: Platform.OS === 'web' ? '600' : undefined,
|
|
324
|
-
},
|
|
325
|
-
});
|
|
326
|
-
|
|
327
251
|
export default CreateManagedAccountScreen;
|