@oxyhq/services 22.13.1 → 23.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/commonjs/ui/boot/runProviderColdBoot.js +20 -64
- package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/commonjs/ui/components/AvatarCameraBadge.js +3 -2
- package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +5 -6
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +4 -3
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/SettingsIcon.js +3 -2
- package/lib/commonjs/ui/components/SettingsIcon.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +7 -7
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/primitives.js +5 -4
- package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +2 -2
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +3 -2
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +3 -2
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +15 -14
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +6 -5
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +3 -2
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +6 -6
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +5 -5
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +10 -9
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +4 -3
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +6 -5
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/components/styles/shadow.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +14 -45
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/commitSessionFlow.js +0 -43
- package/lib/commonjs/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/commonjs/ui/context/useOxyAccountGraph.js +3 -4
- package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/userCache.js +17 -17
- package/lib/commonjs/ui/hooks/queries/userCache.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +4 -2
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useOnlineStatus.js +3 -2
- package/lib/commonjs/ui/hooks/useOnlineStatus.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +4 -3
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +7 -6
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +4 -3
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FAQScreen.js +3 -2
- package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +96 -96
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +19 -18
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HistoryViewScreen.js +4 -29
- package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +4 -3
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +2 -2
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -3
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +10 -9
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +1 -0
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +12 -13
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +4 -4
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +4 -3
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +4 -3
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +5 -7
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +3 -2
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +3 -2
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +5 -4
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +4 -3
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/utils/fileManagement.js +24 -24
- package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
- package/lib/commonjs/ui/utils/netConnectivity.js +28 -0
- package/lib/commonjs/ui/utils/netConnectivity.js.map +1 -0
- package/lib/commonjs/ui/utils/oauthReturn.js +15 -28
- package/lib/commonjs/ui/utils/oauthReturn.js.map +1 -1
- package/lib/module/ui/boot/runProviderColdBoot.js +21 -65
- package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/module/ui/components/AvatarCameraBadge.js +1 -1
- package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +5 -6
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +1 -1
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/SettingsIcon.js +1 -1
- package/lib/module/ui/components/SettingsIcon.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/primitives.js +1 -1
- package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/module/ui/components/fileManagement/AnimatedButton.js +1 -1
- package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js +1 -1
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/fileManagement/UploadPreview.js +1 -1
- package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentMethodStep.js +1 -1
- package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentReviewStep.js +1 -1
- package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSuccessStep.js +1 -1
- package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSummaryStep.js +1 -1
- package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/module/ui/components/styles/shadow.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +16 -47
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/commitSessionFlow.js +0 -42
- package/lib/module/ui/context/commitSessionFlow.js.map +1 -1
- package/lib/module/ui/context/useOxyAccountGraph.js +3 -4
- package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/module/ui/hooks/queries/userCache.js +17 -17
- package/lib/module/ui/hooks/queries/userCache.js.map +1 -1
- package/lib/module/ui/hooks/useAssets.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +4 -2
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useOnlineStatus.js +3 -2
- package/lib/module/ui/hooks/useOnlineStatus.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +0 -2
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/FAQScreen.js +1 -1
- package/lib/module/ui/screens/FAQScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +91 -90
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +2 -1
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/HistoryViewScreen.js +4 -29
- package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +2 -2
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +1 -0
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +4 -5
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +3 -3
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +5 -6
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileListSection.js +1 -1
- package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +3 -5
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js +1 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +3 -3
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/module/ui/utils/fileManagement.js +25 -25
- package/lib/module/ui/utils/fileManagement.js.map +1 -1
- package/lib/module/ui/utils/netConnectivity.js +23 -0
- package/lib/module/ui/utils/netConnectivity.js.map +1 -0
- package/lib/module/ui/utils/oauthReturn.js +15 -27
- package/lib/module/ui/utils/oauthReturn.js.map +1 -1
- package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +11 -30
- package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/types.d.ts +6 -6
- package/lib/typescript/commonjs/ui/components/payment/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts +0 -40
- package/lib/typescript/commonjs/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +4 -7
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +0 -1
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts +2 -2
- package/lib/typescript/commonjs/ui/hooks/queries/userCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAsyncAction.d.ts +2 -2
- package/lib/typescript/commonjs/ui/hooks/useAsyncAction.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +4 -2
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts +3 -2
- package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts +2 -2
- package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.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/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +20 -19
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +5 -5
- package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/netConnectivity.d.ts +17 -0
- package/lib/typescript/commonjs/ui/utils/netConnectivity.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts +15 -12
- package/lib/typescript/commonjs/ui/utils/oauthReturn.d.ts.map +1 -1
- package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +11 -30
- package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts +1 -1
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +1 -1
- package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/types.d.ts +6 -6
- package/lib/typescript/module/ui/components/payment/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts +0 -40
- package/lib/typescript/module/ui/context/commitSessionFlow.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +4 -7
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +0 -1
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/userCache.d.ts +2 -2
- package/lib/typescript/module/ui/hooks/queries/userCache.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAssets.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/useAssets.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAsyncAction.d.ts +2 -2
- package/lib/typescript/module/ui/hooks/useAsyncAction.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts +4 -2
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts +3 -2
- package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +2 -2
- package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HistoryViewScreen.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/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +20 -19
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/fileManagement.d.ts +5 -5
- package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/netConnectivity.d.ts +17 -0
- package/lib/typescript/module/ui/utils/netConnectivity.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/oauthReturn.d.ts +15 -12
- package/lib/typescript/module/ui/utils/oauthReturn.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +215 -0
- package/src/ui/boot/runProviderColdBoot.ts +24 -101
- package/src/ui/components/AvatarCameraBadge.tsx +1 -1
- package/src/ui/components/OxyProvider.tsx +5 -6
- package/src/ui/components/ProfileButton.tsx +1 -1
- package/src/ui/components/SettingsIcon.tsx +1 -1
- package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -1
- package/src/ui/components/authChooser/primitives.tsx +1 -1
- package/src/ui/components/authChooser/requestSurfaces.tsx +1 -1
- package/src/ui/components/fileManagement/AnimatedButton.tsx +1 -1
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +1 -1
- package/src/ui/components/fileManagement/FileViewer.tsx +1 -1
- package/src/ui/components/fileManagement/UploadPreview.tsx +1 -1
- package/src/ui/components/modals/DeleteAccountModal.tsx +1 -1
- package/src/ui/components/payment/PaymentDetailsStep.tsx +1 -1
- package/src/ui/components/payment/PaymentMethodStep.tsx +1 -1
- package/src/ui/components/payment/PaymentReviewStep.tsx +1 -1
- package/src/ui/components/payment/PaymentSuccessStep.tsx +1 -1
- package/src/ui/components/payment/PaymentSummaryStep.tsx +1 -1
- package/src/ui/components/payment/types.ts +24 -24
- package/src/ui/components/styles/shadow.tsx +2 -2
- package/src/ui/context/OxyContext.tsx +15 -46
- package/src/ui/context/__tests__/commitSessionFlow.test.ts +0 -89
- package/src/ui/context/commitSessionFlow.ts +0 -61
- package/src/ui/context/oxyContextTypes.ts +4 -7
- package/src/ui/context/useOxyAccountGraph.ts +4 -4
- package/src/ui/hooks/queries/userCache.ts +169 -148
- package/src/ui/hooks/useAssets.ts +1 -1
- package/src/ui/hooks/useAsyncAction.ts +2 -2
- package/src/ui/hooks/useAuth.ts +4 -2
- package/src/ui/hooks/useOnlineStatus.ts +3 -2
- package/src/ui/hooks/useSessionManagement.ts +0 -2
- package/src/ui/screens/AccountMembersScreen.tsx +1 -1
- package/src/ui/screens/ConnectedAppsScreen.tsx +1 -1
- package/src/ui/screens/CreateAccountScreen.tsx +1 -1
- package/src/ui/screens/EditProfileFieldScreen.tsx +1 -1
- package/src/ui/screens/FAQScreen.tsx +1 -1
- package/src/ui/screens/FeedbackScreen.tsx +740 -574
- package/src/ui/screens/FileManagementScreen.tsx +2 -1
- package/src/ui/screens/HistoryViewScreen.tsx +4 -19
- package/src/ui/screens/LanguageSelectorScreen.tsx +1 -1
- package/src/ui/screens/ManageAccountScreen.tsx +1 -1
- package/src/ui/screens/PaymentGatewayScreen.tsx +1 -1
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +2 -2
- package/src/ui/screens/PrivacySettingsScreen.tsx +1 -0
- package/src/ui/screens/ProfileScreen.tsx +6 -4
- package/src/ui/screens/UserListScreen.tsx +3 -3
- package/src/ui/screens/WelcomeNewUserScreen.tsx +6 -6
- package/src/ui/screens/fileManagement/FileLibraryError.tsx +1 -1
- package/src/ui/screens/fileManagement/FileListSection.tsx +1 -1
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +3 -2
- package/src/ui/screens/fileManagement/UploadBar.tsx +1 -1
- package/src/ui/screens/trust/TrustCenterScreen.tsx +1 -1
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +4 -3
- package/src/ui/screens/trust/TrustRewardsScreen.tsx +1 -1
- package/src/ui/types/navigation.ts +20 -19
- package/src/ui/utils/fileManagement.ts +108 -92
- package/src/ui/utils/netConnectivity.ts +27 -0
- package/src/ui/utils/oauthReturn.ts +15 -30
- package/lib/commonjs/ui/oauth/legacyRedirectLanes.js +0 -48
- package/lib/commonjs/ui/oauth/legacyRedirectLanes.js.map +0 -1
- package/lib/commonjs/ui/utils/crossOriginRestore.js +0 -140
- package/lib/commonjs/ui/utils/crossOriginRestore.js.map +0 -1
- package/lib/module/ui/oauth/legacyRedirectLanes.js +0 -44
- package/lib/module/ui/oauth/legacyRedirectLanes.js.map +0 -1
- package/lib/module/ui/utils/crossOriginRestore.js +0 -131
- package/lib/module/ui/utils/crossOriginRestore.js.map +0 -1
- package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts +0 -40
- package/lib/typescript/commonjs/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts +0 -43
- package/lib/typescript/commonjs/ui/utils/crossOriginRestore.d.ts.map +0 -1
- package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts +0 -40
- package/lib/typescript/module/ui/oauth/legacyRedirectLanes.d.ts.map +0 -1
- package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts +0 -43
- package/lib/typescript/module/ui/utils/crossOriginRestore.d.ts.map +0 -1
- package/src/ui/boot/__tests__/coldBootWebAuthMode.test.ts +0 -281
- package/src/ui/oauth/legacyRedirectLanes.ts +0 -43
- package/src/ui/utils/__tests__/crossOriginRestore.test.ts +0 -160
- package/src/ui/utils/crossOriginRestore.ts +0 -168
|
@@ -17,7 +17,8 @@ import type { FileManagementScreenProps } from '../types/fileManagement';
|
|
|
17
17
|
import { toast } from '@oxyhq/bloom';
|
|
18
18
|
import { surfaces } from '@oxyhq/bloom/surfaces';
|
|
19
19
|
import * as Skeleton from '@oxyhq/bloom/skeleton';
|
|
20
|
-
import
|
|
20
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
21
|
+
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
21
22
|
import { Pressable } from 'react-native';
|
|
22
23
|
import type { FileMetadata } from '@oxyhq/core';
|
|
23
24
|
import { queryKeys } from '../hooks/queries/queryKeys';
|
|
@@ -11,6 +11,7 @@ import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
|
11
11
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
12
12
|
import { useOxy } from '../context/OxyContext';
|
|
13
13
|
import { surfaces } from '@oxyhq/bloom/surfaces';
|
|
14
|
+
import { createPlatformStorage } from '../utils/storageHelpers';
|
|
14
15
|
|
|
15
16
|
interface HistoryItem { id: string; query: string; type: 'search' | 'browse'; timestamp: Date; }
|
|
16
17
|
|
|
@@ -26,27 +27,11 @@ const HistoryViewScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
|
|
|
26
27
|
const [isLoading, setIsLoading] = useState(true);
|
|
27
28
|
const [isDeleting, setIsDeleting] = useState(false);
|
|
28
29
|
|
|
29
|
-
const getStorage = async () => {
|
|
30
|
-
const isRN = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
|
|
31
|
-
if (isRN) {
|
|
32
|
-
try {
|
|
33
|
-
const mod = await import('@react-native-async-storage/async-storage');
|
|
34
|
-
const s = mod.default as unknown as { getItem: (k: string) => Promise<string | null>; setItem: (k: string, v: string) => Promise<void>; removeItem: (k: string) => Promise<void> };
|
|
35
|
-
return { getItem: s.getItem.bind(s), setItem: s.setItem.bind(s), removeItem: s.removeItem.bind(s) };
|
|
36
|
-
} catch (e) { if (__DEV__) console.error('AsyncStorage not available:', e); throw new Error('AsyncStorage required'); }
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
getItem: async (k: string) => typeof window !== 'undefined' && window.localStorage ? window.localStorage.getItem(k) : null,
|
|
40
|
-
setItem: async (k: string, v: string) => { if (typeof window !== 'undefined' && window.localStorage) window.localStorage.setItem(k, v); },
|
|
41
|
-
removeItem: async (k: string) => { if (typeof window !== 'undefined' && window.localStorage) window.localStorage.removeItem(k); },
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
|
|
45
30
|
React.useEffect(() => {
|
|
46
31
|
const load = async () => {
|
|
47
32
|
try {
|
|
48
33
|
setIsLoading(true);
|
|
49
|
-
const storage = await
|
|
34
|
+
const storage = await createPlatformStorage();
|
|
50
35
|
const stored = await storage.getItem(`history_${user?.id || 'guest'}`);
|
|
51
36
|
if (stored) { const parsed = JSON.parse(stored); setHistory(parsed.map((i: HistoryItem) => ({ ...i, timestamp: new Date(i.timestamp) }))); }
|
|
52
37
|
else setHistory([]);
|
|
@@ -69,7 +54,7 @@ const HistoryViewScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
|
|
|
69
54
|
const cutoff = new Date(Date.now() - 15 * 60 * 1000);
|
|
70
55
|
const filtered = history.filter(item => item.timestamp < cutoff);
|
|
71
56
|
setHistory(filtered);
|
|
72
|
-
const storage = await
|
|
57
|
+
const storage = await createPlatformStorage();
|
|
73
58
|
await storage.setItem(`history_${user?.id || 'guest'}`, JSON.stringify(filtered));
|
|
74
59
|
toast.success(t('history.deleteLast15Minutes.success') || 'Last 15 minutes deleted');
|
|
75
60
|
} catch (e) { if (__DEV__) console.error('Failed to delete history:', e); toast.error(t('history.deleteLast15Minutes.error') || 'Failed to delete history'); }
|
|
@@ -87,7 +72,7 @@ const HistoryViewScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
|
|
|
87
72
|
if (!confirmed) return;
|
|
88
73
|
try {
|
|
89
74
|
setIsDeleting(true); setHistory([]);
|
|
90
|
-
const storage = await
|
|
75
|
+
const storage = await createPlatformStorage();
|
|
91
76
|
await storage.removeItem(`history_${user?.id || 'guest'}`);
|
|
92
77
|
toast.success(t('history.clearAll.success') || 'History cleared');
|
|
93
78
|
} catch (e) { if (__DEV__) console.error('Failed to clear history:', e); toast.error(t('history.clearAll.error') || 'Failed to clear history'); }
|
|
@@ -2,7 +2,7 @@ import React, { useCallback, useMemo, useState } from 'react';
|
|
|
2
2
|
import { View, StyleSheet, TouchableOpacity } from 'react-native';
|
|
3
3
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
4
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
5
|
-
import
|
|
5
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
6
6
|
import { toast } from '@oxyhq/bloom';
|
|
7
7
|
import { Text } from '@oxyhq/bloom/typography';
|
|
8
8
|
import { Search } from '@oxyhq/bloom/search';
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ActivityIndicator,
|
|
7
7
|
Platform,
|
|
8
8
|
} from 'react-native';
|
|
9
|
-
import
|
|
9
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
10
10
|
import { toast } from '@oxyhq/bloom';
|
|
11
11
|
import { surfaces } from '@oxyhq/bloom/surfaces';
|
|
12
12
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
@@ -10,7 +10,7 @@ import type { BaseScreenProps } from '../types/navigation';
|
|
|
10
10
|
import { Button } from '@oxyhq/bloom/button';
|
|
11
11
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
12
12
|
import { H4 } from '@oxyhq/bloom/typography';
|
|
13
|
-
import
|
|
13
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
14
14
|
import { useI18n } from '../hooks/useI18n';
|
|
15
15
|
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
16
16
|
import QRCode from 'react-native-qrcode-svg';
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
SegmentedControlItem,
|
|
17
17
|
SegmentedControlItemText,
|
|
18
18
|
} from '@oxyhq/bloom/segmented-control';
|
|
19
|
-
import
|
|
19
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
20
20
|
import { useI18n } from '../hooks/useI18n';
|
|
21
21
|
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
22
22
|
import { useOxy } from '../context/OxyContext';
|
|
@@ -343,7 +343,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
343
343
|
if (currentAppPackage) {
|
|
344
344
|
loadSubscriptionData();
|
|
345
345
|
}
|
|
346
|
-
}, [currentAppPackage
|
|
346
|
+
}, [currentAppPackage]);
|
|
347
347
|
|
|
348
348
|
const detectCurrentApp = () => {
|
|
349
349
|
const detectedApp = 'mention';
|
|
@@ -114,6 +114,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
114
114
|
}, [user?.id, oxyServices, t, setValues]);
|
|
115
115
|
|
|
116
116
|
// Load blocked and restricted users
|
|
117
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: reload when active account switches
|
|
117
118
|
useEffect(() => {
|
|
118
119
|
const loadUsers = async () => {
|
|
119
120
|
if (!oxyServices) return;
|
|
@@ -10,11 +10,11 @@ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list'
|
|
|
10
10
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
11
11
|
import FollowButton from '../components/FollowButton';
|
|
12
12
|
import { useFollow } from '../hooks/useFollow';
|
|
13
|
-
import
|
|
13
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
14
14
|
import { useI18n } from '../hooks/useI18n';
|
|
15
15
|
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
16
16
|
import { useOxy } from '../context/OxyContext';
|
|
17
|
-
import {
|
|
17
|
+
import { getNormalizedUserHandle, logger, normalizeProfileLinks } from '@oxyhq/core';
|
|
18
18
|
import { extractErrorMessage } from '../utils/errorHandlers';
|
|
19
19
|
|
|
20
20
|
interface ProfileScreenProps extends BaseScreenProps {
|
|
@@ -42,7 +42,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
42
42
|
} = useFollow(userId);
|
|
43
43
|
|
|
44
44
|
const bloomTheme = useTheme();
|
|
45
|
-
const { t
|
|
45
|
+
const { t } = useI18n();
|
|
46
46
|
|
|
47
47
|
// Check if current user is viewing their own profile
|
|
48
48
|
// Normalize IDs by trimming whitespace to handle format mismatches
|
|
@@ -133,7 +133,9 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
133
133
|
// title (a stable "Profile" fallback before it resolves), so the banner +
|
|
134
134
|
// overlapping avatar scroll as content UNDER the shared gradient nav bar.
|
|
135
135
|
// `onImage` tone keeps the title + close legible over the colored banner.
|
|
136
|
-
const displayName = profile
|
|
136
|
+
const displayName = profile
|
|
137
|
+
? (profile.name?.displayName ?? getNormalizedUserHandle(profile))
|
|
138
|
+
: username || '';
|
|
137
139
|
useSurfaceHeader({
|
|
138
140
|
title: displayName || t('profile.title'),
|
|
139
141
|
largeTitle: false,
|
|
@@ -14,11 +14,11 @@ import { H6, Text } from '@oxyhq/bloom/typography';
|
|
|
14
14
|
import { Button } from '@oxyhq/bloom/button';
|
|
15
15
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
16
16
|
import FollowButton from '../components/FollowButton';
|
|
17
|
-
import
|
|
17
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
18
18
|
import { useI18n } from '../hooks/useI18n';
|
|
19
19
|
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
20
20
|
import { useOxy } from '../context/OxyContext';
|
|
21
|
-
import { logger,
|
|
21
|
+
import { logger, getNormalizedUserHandle, getAccountFallbackHandle } from '@oxyhq/core';
|
|
22
22
|
import type { User } from '@oxyhq/core';
|
|
23
23
|
|
|
24
24
|
type ListMode = 'followers' | 'following';
|
|
@@ -147,7 +147,7 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
|
|
|
147
147
|
const itemUserId = resolveUserId(item);
|
|
148
148
|
const isCurrentUser = itemUserId === currentUserId;
|
|
149
149
|
const description = typeof item.description === 'string' ? item.description : '';
|
|
150
|
-
const displayName =
|
|
150
|
+
const displayName = item.name?.displayName ?? getNormalizedUserHandle(item) ?? '';
|
|
151
151
|
const handle = getAccountFallbackHandle(item);
|
|
152
152
|
|
|
153
153
|
return (
|
|
@@ -3,7 +3,7 @@ import { useCallback, useMemo, useRef, useState } from 'react';
|
|
|
3
3
|
import { View, StyleSheet, Platform, Animated } from 'react-native';
|
|
4
4
|
import type { BaseScreenProps } from '../types/navigation';
|
|
5
5
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
6
|
-
import
|
|
6
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
7
7
|
import { toast } from '@oxyhq/bloom';
|
|
8
8
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
9
9
|
import { Button } from '@oxyhq/bloom/button';
|
|
@@ -13,7 +13,7 @@ import { useI18n } from '../hooks/useI18n';
|
|
|
13
13
|
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
14
14
|
import { useOxy } from '../context/OxyContext';
|
|
15
15
|
import { useUpdateProfile } from '../hooks/mutations/useAccountMutations';
|
|
16
|
-
import {
|
|
16
|
+
import { getNormalizedUserHandle, type User } from '@oxyhq/core';
|
|
17
17
|
|
|
18
18
|
const GAP = 12;
|
|
19
19
|
const INNER_GAP = 8;
|
|
@@ -63,10 +63,10 @@ const WelcomeNewUserScreen: React.FC<BaseScreenProps & { newUser?: User }> = ({
|
|
|
63
63
|
? oxyServices.getFileDownloadUrl(currentUser.avatar, 'thumb')
|
|
64
64
|
: undefined;
|
|
65
65
|
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const welcomeTitle = currentUser
|
|
66
|
+
// API DTO contract: explicit displayName, else the normalized handle.
|
|
67
|
+
const welcomeName =
|
|
68
|
+
currentUser?.name?.displayName ?? getNormalizedUserHandle(currentUser) ?? '';
|
|
69
|
+
const welcomeTitle = currentUser && welcomeName
|
|
70
70
|
? (t('welcomeNew.welcome.titleWithName', { username: welcomeName }) || `Welcome, ${welcomeName} 👋`)
|
|
71
71
|
: (t('welcomeNew.welcome.title') || 'Welcome 👋');
|
|
72
72
|
// Only ask the user for their name during onboarding when they don't have a
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
RefreshControl,
|
|
8
8
|
ActivityIndicator,
|
|
9
9
|
} from 'react-native';
|
|
10
|
-
import
|
|
10
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
11
11
|
import type { FileMetadata } from '@oxyhq/core';
|
|
12
12
|
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
13
13
|
import type { useTheme } from '@oxyhq/bloom/theme';
|
|
@@ -12,7 +12,8 @@ import {
|
|
|
12
12
|
type LayoutChangeEvent,
|
|
13
13
|
} from 'react-native';
|
|
14
14
|
import { Image as ExpoImage } from 'expo-image';
|
|
15
|
-
import
|
|
15
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
16
|
+
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
16
17
|
import * as Skeleton from '@oxyhq/bloom/skeleton';
|
|
17
18
|
import type { FileMetadata } from '@oxyhq/core';
|
|
18
19
|
import { computePhotoGridLayout } from './photoGridLayout';
|
|
@@ -550,8 +551,8 @@ const PhotoPickerView: React.FC<PhotoPickerViewProps> = ({
|
|
|
550
551
|
importantForAccessibility="no-hide-descendants"
|
|
551
552
|
>
|
|
552
553
|
{Array.from({ length: skeletonTileCount }, (_, index) => (
|
|
553
|
-
// biome-ignore lint/suspicious/noArrayIndexKey: fixed-size skeleton grid, order never changes
|
|
554
554
|
<Skeleton.Box
|
|
555
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: fixed-size skeleton grid, order never changes
|
|
555
556
|
key={`skeleton-${index}`}
|
|
556
557
|
width={cellSize}
|
|
557
558
|
height={cellSize}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { View, Text, ActivityIndicator, StyleSheet, Platform, type ViewStyle } from 'react-native';
|
|
3
|
-
import
|
|
3
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
4
4
|
|
|
5
5
|
export interface UploadBarProps {
|
|
6
6
|
/** Aggregate upload progress, or null when indeterminate. */
|
|
@@ -2,7 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
import { useEffect, useMemo, useState } from 'react';
|
|
3
3
|
import { View, StyleSheet } from 'react-native';
|
|
4
4
|
import type { ReputationTransaction, TrustTier } from '@oxyhq/core';
|
|
5
|
-
import
|
|
5
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
6
6
|
import { Chip } from '@oxyhq/bloom/chip';
|
|
7
7
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
8
8
|
import { H1, Text } from '@oxyhq/bloom/typography';
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
TouchableOpacity,
|
|
9
9
|
} from 'react-native';
|
|
10
10
|
import type { ReputationLeaderboardEntry } from '@oxyhq/core';
|
|
11
|
-
import {
|
|
11
|
+
import { getNormalizedUserHandle, logger } from '@oxyhq/core';
|
|
12
12
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
13
13
|
import { H6, Text } from '@oxyhq/bloom/typography';
|
|
14
14
|
import { Chip } from '@oxyhq/bloom/chip';
|
|
15
15
|
import { Button } from '@oxyhq/bloom/button';
|
|
16
|
-
import
|
|
16
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
17
17
|
import type { BaseScreenProps } from '../../types/navigation';
|
|
18
18
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
19
19
|
import { useI18n } from '../../hooks/useI18n';
|
|
@@ -72,7 +72,8 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
|
|
|
72
72
|
|
|
73
73
|
const renderEntry = useCallback(
|
|
74
74
|
({ item }: { item: ReputationLeaderboardEntry }) => {
|
|
75
|
-
const displayName =
|
|
75
|
+
const displayName =
|
|
76
|
+
item.user.name?.displayName ?? getNormalizedUserHandle(item.user) ?? '';
|
|
76
77
|
const isViewer = currentUserId !== '' && item.user.id === currentUserId;
|
|
77
78
|
const isPodium = item.rank <= PODIUM_RANK;
|
|
78
79
|
// Viewer's own row and podium ranks get a subtle highlighted surface.
|
|
@@ -3,7 +3,7 @@ import { useMemo, useState, useEffect } from 'react';
|
|
|
3
3
|
import { View, StyleSheet } from 'react-native';
|
|
4
4
|
import type { BaseScreenProps } from '../../types/navigation';
|
|
5
5
|
import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
|
|
6
|
-
import
|
|
6
|
+
import Ionicons from '@expo/vector-icons/Ionicons';
|
|
7
7
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
8
8
|
import { H1, H4, H5, Text } from '@oxyhq/bloom/typography';
|
|
9
9
|
import { useI18n } from '../../hooks/useI18n';
|
|
@@ -74,11 +74,11 @@ export interface OxyProviderProps {
|
|
|
74
74
|
authWebUrl?: string;
|
|
75
75
|
authRedirectUri?: string;
|
|
76
76
|
/**
|
|
77
|
-
* Authorize endpoint override for
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
77
|
+
* Authorize endpoint override for web "Sign in with Oxy". Defaults to the
|
|
78
|
+
* production Oxy IdP (`https://auth.oxy.so/authorize`) when unset. Set this
|
|
79
|
+
* from an env var (e.g. Vite `VITE_OXY_AUTHORIZE_URL`, Expo
|
|
80
|
+
* `EXPO_PUBLIC_OXY_AUTHORIZE_URL`) so a local/staging deployment targets its
|
|
81
|
+
* own IdP instead of production.
|
|
82
82
|
*/
|
|
83
83
|
authorizeBaseUrl?: string;
|
|
84
84
|
/**
|
|
@@ -98,9 +98,9 @@ export interface OxyProviderProps {
|
|
|
98
98
|
* rather than hidden in the UI: `accounts` stays empty and is never fetched,
|
|
99
99
|
* `switchToAccount` / `switchSession` reject with `IdentityBoundSessionError`,
|
|
100
100
|
* `accountDialogController` is `null` and `openAccountDialog()` does nothing,
|
|
101
|
-
* and the
|
|
102
|
-
*
|
|
103
|
-
*
|
|
101
|
+
* and the web OAuth cold-boot lane (the authorization-code return leg) is
|
|
102
|
+
* skipped — it commits whichever account the IdP resolves, which is not
|
|
103
|
+
* necessarily the local key's owner.
|
|
104
104
|
*
|
|
105
105
|
* Read once at mount, like `baseURL` / `oxyServices`: changing it on a
|
|
106
106
|
* mounted provider does not re-bind the session.
|
|
@@ -110,22 +110,23 @@ export interface OxyProviderProps {
|
|
|
110
110
|
/**
|
|
111
111
|
* How a WEB third-party "Sign in with Oxy" hands the user to the IdP.
|
|
112
112
|
*
|
|
113
|
-
* - `'
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
113
|
+
* - `'popup'` (default) — a small `auth.oxy.so` window opened from the
|
|
114
|
+
* user's click. The app stays MOUNTED and becomes authenticated without a
|
|
115
|
+
* reload; the IdP delivers only the authorization code + `state` back to
|
|
116
|
+
* the opener via `postMessage` (never a token, device secret, or PKCE
|
|
117
|
+
* verifier). A blocked popup falls back to the redirect automatically.
|
|
118
|
+
* - `'redirect'` — a full-page navigation to `auth.oxy.so`, which returns to
|
|
119
|
+
* the registered `redirect_uri` with `?code=`. The tab unmounts and
|
|
120
|
+
* remounts, so route and unsaved state are lost.
|
|
121
|
+
*
|
|
122
|
+
* Either way the navigation only ever happens from a real user gesture: the
|
|
123
|
+
* SDK never bounces the top-level window on its own (#691 phase 7b).
|
|
121
124
|
*
|
|
122
125
|
* Native is unaffected — it always uses an in-app auth session.
|
|
123
|
-
* @default '
|
|
126
|
+
* @default 'popup'
|
|
124
127
|
*/
|
|
125
128
|
webAuthMode?: WebAuthMode;
|
|
126
129
|
queryClient?: QueryClient;
|
|
127
|
-
/** Sync device credentials to auth.oxy.so after interactive sign-in. @default true */
|
|
128
|
-
hubSync?: boolean;
|
|
129
130
|
/**
|
|
130
131
|
* Convenience: wrap the whole app subtree in `<RequireOxyAuth prompt=...>`.
|
|
131
132
|
* `off` (default) renders children unconditionally; `soft` adds a dismissible
|