@oxyhq/services 22.9.0 → 22.10.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 +24 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +25 -125
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
- package/lib/commonjs/ui/components/OxyAuthChooser.js +137 -40
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyConsentScreen.js +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +1 -1
- package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
- package/lib/commonjs/ui/components/SurfaceScreen.js +52 -5
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +22 -12
- package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +23 -9
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +34 -39
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
- package/lib/commonjs/ui/navigation/accountDialogManager.js +14 -2
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +3 -3
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
- package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
- package/lib/commonjs/ui/navigation/surfaceRegistry.js +52 -8
- package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +42 -5
- package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -14
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
- package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
- package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +219 -206
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
- package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
- package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
- package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
- package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
- package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
- package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
- package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/module/index.js +12 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +27 -127
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
- package/lib/module/ui/components/OxyAuthChooser.js +137 -40
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyConsentScreen.js +1 -1
- package/lib/module/ui/components/ProfileButton.js +1 -1
- package/lib/module/ui/components/RequireOxyAuth.js +1 -1
- package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
- package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
- package/lib/module/ui/components/SurfaceScreen.js +53 -6
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/module/ui/components/oxyAuthChooserStyles.js +22 -12
- package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +23 -9
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/useAvatarPicker.js +34 -39
- package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
- package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
- package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
- package/lib/module/ui/navigation/accountDialogManager.js +14 -2
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +3 -3
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
- package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
- package/lib/module/ui/navigation/surfaceRegistry.js +52 -8
- package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +42 -5
- package/lib/module/ui/navigation/surfaces.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +220 -227
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +10 -14
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileScreen.js +102 -110
- package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/FAQScreen.js +11 -15
- package/lib/module/ui/screens/FAQScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +10 -17
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +222 -208
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
- package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
- package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
- package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
- package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/NotificationsScreen.js +71 -77
- package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PreferencesScreen.js +69 -75
- package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +102 -116
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
- package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
- package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/UserLinksScreen.js +26 -32
- package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +14 -24
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
- package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
- package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
- package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
- package/lib/module/ui/screens/trust/TrustRulesScreen.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/{OxyAccountDialog.d.ts → OxyAccountDialogScreen.d.ts} +4 -4
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +2 -2
- package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +4 -2
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
- package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
- package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +19 -9
- package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
- package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +7 -11
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +14 -2
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +31 -13
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.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 +0 -4
- 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/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.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/FileManagementScreen.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 +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/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/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/types/navigation.d.ts +8 -0
- package/lib/typescript/commonjs/ui/types/navigation.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/{OxyAccountDialog.d.ts → OxyAccountDialogScreen.d.ts} +4 -4
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
- package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +4 -2
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
- package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
- package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +19 -9
- package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
- package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +7 -11
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +14 -2
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
- package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +31 -13
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountSettingsScreen.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 +0 -4
- 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/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileScreen.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/FileManagementScreen.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 +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/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/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/types/navigation.d.ts +8 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +12 -5
- package/src/ui/components/{OxyAccountDialog.tsx → OxyAccountDialogScreen.tsx} +21 -110
- package/src/ui/components/OxyAuthChooser.tsx +153 -33
- package/src/ui/components/OxyConsentScreen.tsx +1 -1
- package/src/ui/components/ProfileButton.tsx +2 -2
- package/src/ui/components/RequireOxyAuth.tsx +1 -1
- package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
- package/src/ui/components/SurfaceScreen.tsx +66 -6
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
- package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
- package/src/ui/components/oxyAuthChooserStyles.ts +22 -12
- package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
- package/src/ui/context/OxyContext.tsx +22 -8
- package/src/ui/hooks/useAvatarPicker.ts +53 -66
- package/src/ui/hooks/useSurfaceHeader.ts +56 -0
- package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
- package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +68 -0
- package/src/ui/navigation/accountDialogManager.ts +14 -2
- package/src/ui/navigation/routes.ts +3 -3
- package/src/ui/navigation/surfaceBackBridge.ts +69 -0
- package/src/ui/navigation/surfaceRegistry.ts +80 -14
- package/src/ui/navigation/surfaces.ts +33 -5
- package/src/ui/screens/AccountMembersScreen.tsx +39 -100
- package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
- package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
- package/src/ui/screens/AppInfoScreen.tsx +6 -13
- package/src/ui/screens/AvatarCropScreen.tsx +8 -17
- package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
- package/src/ui/screens/CreateAccountScreen.tsx +13 -39
- package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
- package/src/ui/screens/EditProfileScreen.tsx +7 -16
- package/src/ui/screens/FAQScreen.tsx +9 -13
- package/src/ui/screens/FeedbackScreen.tsx +8 -22
- package/src/ui/screens/FileManagementScreen.tsx +191 -188
- package/src/ui/screens/HelpSupportScreen.tsx +7 -13
- package/src/ui/screens/HistoryViewScreen.tsx +26 -31
- package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
- package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
- package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
- package/src/ui/screens/ManageAccountScreen.tsx +96 -165
- package/src/ui/screens/NotificationsScreen.tsx +7 -13
- package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
- package/src/ui/screens/PreferencesScreen.tsx +7 -13
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
- package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
- package/src/ui/screens/ProfileScreen.tsx +9 -11
- package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
- package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
- package/src/ui/screens/UserLinksScreen.tsx +7 -14
- package/src/ui/screens/UserListScreen.tsx +2 -5
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +1 -1
- package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
- package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
- package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
- package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
- package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
- package/src/ui/types/navigation.ts +8 -0
- package/lib/commonjs/ui/components/Header.js +0 -305
- package/lib/commonjs/ui/components/Header.js.map +0 -1
- package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
- package/lib/module/ui/components/Header.js +0 -299
- package/lib/module/ui/components/Header.js.map +0 -1
- package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
- package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/Header.d.ts +0 -33
- package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
- package/src/ui/components/Header.tsx +0 -224
|
@@ -8,15 +8,17 @@ var _react = require("react");
|
|
|
8
8
|
var _core = require("@oxyhq/core");
|
|
9
9
|
var _bloom = require("@oxyhq/bloom");
|
|
10
10
|
var _avatarUtils = require("../utils/avatarUtils.js");
|
|
11
|
+
var _surfaces = require("../navigation/surfaces.js");
|
|
11
12
|
/**
|
|
12
13
|
* Avatar Picker Hook
|
|
13
14
|
*
|
|
14
15
|
* Extracts avatar selection logic from OxyContext for better modularity.
|
|
15
16
|
*
|
|
16
|
-
* Flow:
|
|
17
|
-
* 1.
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Flow (typed promises over the shared surface stack — no callback props):
|
|
18
|
+
* 1. `surfaces.present('FileManagement', …)` opens the image-only picker and
|
|
19
|
+
* resolves with the picked file (or `undefined` if the user cancels).
|
|
20
|
+
* 2. Resolve a private-safe source URL, then `surfaces.present('AvatarCrop', …)`
|
|
21
|
+
* opens the square-crop editor and resolves with the cropped JPEG.
|
|
20
22
|
* 3. The cropped JPEG is uploaded as a NEW file via `oxyServices.assetUpload`
|
|
21
23
|
* and that file becomes the user's avatar.
|
|
22
24
|
*
|
|
@@ -38,8 +40,7 @@ function useAvatarPicker({
|
|
|
38
40
|
oxyServices,
|
|
39
41
|
currentLanguage,
|
|
40
42
|
activeSessionId,
|
|
41
|
-
queryClient
|
|
42
|
-
showBottomSheet
|
|
43
|
+
queryClient
|
|
43
44
|
}) {
|
|
44
45
|
/**
|
|
45
46
|
* Final step: take the cropped JPEG, upload it as a new public file, then
|
|
@@ -66,24 +67,27 @@ function useAvatarPicker({
|
|
|
66
67
|
_bloom.toast.error(message || (0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar');
|
|
67
68
|
}
|
|
68
69
|
}, [activeSessionId, currentLanguage, oxyServices, queryClient]);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
* which swallows errors and falls back to the broken public URL) so a
|
|
79
|
-
* failure surfaces a real user-facing error instead of a blank crop canvas.
|
|
80
|
-
* No variant is requested — cropping needs the original.
|
|
81
|
-
*/
|
|
82
|
-
const handleFilePicked = (0, _react.useCallback)(async file => {
|
|
70
|
+
const openAvatarPicker = (0, _react.useCallback)(async () => {
|
|
71
|
+
// 1. Present the image-only picker; it dismisses with the picked file when
|
|
72
|
+
// the user taps one, or `undefined` if they cancel.
|
|
73
|
+
const file = await _surfaces.surfaces.present('FileManagement', {
|
|
74
|
+
selectMode: true,
|
|
75
|
+
multiSelect: false,
|
|
76
|
+
disabledMimeTypes: ['video/', 'audio/', 'application/pdf']
|
|
77
|
+
});
|
|
78
|
+
if (!file) return;
|
|
83
79
|
if (!file.contentType?.startsWith('image/')) {
|
|
84
80
|
_bloom.toast.error((0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.selectImage') || 'Please select an image file');
|
|
85
81
|
return;
|
|
86
82
|
}
|
|
83
|
+
|
|
84
|
+
// 2. Resolve a working source URL. The picked file is usually PRIVATE, so
|
|
85
|
+
// the synchronous `getFileDownloadUrl` (public CDN origin) would 404 and
|
|
86
|
+
// the crop screen's `Image.getSize` would fail silently. `assetGetUrl`
|
|
87
|
+
// throws on failure (unlike `getFileDownloadUrlAsync`, which swallows
|
|
88
|
+
// errors and falls back to the broken public URL), so a failure surfaces
|
|
89
|
+
// a real user-facing error instead of a blank crop canvas. No variant is
|
|
90
|
+
// requested — cropping needs the original.
|
|
87
91
|
let sourceUri;
|
|
88
92
|
try {
|
|
89
93
|
const resolved = await oxyServices.assetGetUrl(file.id);
|
|
@@ -96,26 +100,17 @@ function useAvatarPicker({
|
|
|
96
100
|
_bloom.toast.error(message || (0, _core.translate)(currentLanguage ?? undefined, 'editProfile.toasts.cropMeasureFailed') || 'Could not load the selected image');
|
|
97
101
|
return;
|
|
98
102
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}, [currentLanguage, finalizeCroppedAvatar, oxyServices, showBottomSheet]);
|
|
107
|
-
const openAvatarPicker = (0, _react.useCallback)(() => {
|
|
108
|
-
showBottomSheet({
|
|
109
|
-
screen: 'FileManagement',
|
|
110
|
-
props: {
|
|
111
|
-
selectMode: true,
|
|
112
|
-
multiSelect: false,
|
|
113
|
-
disabledMimeTypes: ['video/', 'audio/', 'application/pdf'],
|
|
114
|
-
afterSelect: 'none',
|
|
115
|
-
onSelect: handleFilePicked
|
|
116
|
-
}
|
|
103
|
+
|
|
104
|
+
// 3. Present the square-crop editor in place of the picker; it dismisses
|
|
105
|
+
// with the cropped JPEG on confirm, or `undefined` if cancelled.
|
|
106
|
+
const cropped = await _surfaces.surfaces.present('AvatarCrop', {
|
|
107
|
+
imageUri: sourceUri
|
|
117
108
|
});
|
|
118
|
-
|
|
109
|
+
if (!cropped) return;
|
|
110
|
+
|
|
111
|
+
// 4. Upload + set as the user's avatar.
|
|
112
|
+
await finalizeCroppedAvatar(cropped);
|
|
113
|
+
}, [currentLanguage, finalizeCroppedAvatar, oxyServices]);
|
|
119
114
|
return {
|
|
120
115
|
openAvatarPicker
|
|
121
116
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_bloom","_avatarUtils","extractUploadedFileId","result","undefined","id","file","first","files","useAvatarPicker","oxyServices","currentLanguage","activeSessionId","queryClient","
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_bloom","_avatarUtils","_surfaces","extractUploadedFileId","result","undefined","id","file","first","files","useAvatarPicker","oxyServices","currentLanguage","activeSessionId","queryClient","finalizeCroppedAvatar","useCallback","cropped","uploadResult","assetUpload","uri","type","mime","name","Date","now","newFileId","Error","updateAvatarVisibility","updateProfileWithAvatar","avatar","toast","success","translate","e","message","error","openAvatarPicker","surfaces","present","selectMode","multiSelect","disabledMimeTypes","contentType","startsWith","sourceUri","resolved","assetGetUrl","url","imageUri"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAvatarPicker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SurfaceHeaderContext = void 0;
|
|
7
|
+
exports.useSurfaceHeader = useSurfaceHeader;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
/**
|
|
10
|
+
* The header content a mounted surface screen contributes at runtime: its
|
|
11
|
+
* (translated) title/subtitle and optional slot nodes. Back/close affordances
|
|
12
|
+
* are owned by the surface host (`SurfaceScreen`) — a screen never wires them.
|
|
13
|
+
*
|
|
14
|
+
* A `right` slot is the canonical place for a screen-state action (e.g. a Save
|
|
15
|
+
* button whose disabled/loading state reflects the form). Slot nodes MUST be
|
|
16
|
+
* referentially stable (memoize them with `useMemo`) so the header does not
|
|
17
|
+
* thrash.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Provided by {@link ../components/SurfaceScreen}. Bridges a screen's runtime
|
|
22
|
+
* header contribution up to the host, which merges it with the back/close
|
|
23
|
+
* wiring and drives the Dialog's own nav header. `null` outside a surface (or in
|
|
24
|
+
* a headerless surface), so {@link useSurfaceHeader} is a safe no-op there.
|
|
25
|
+
*/
|
|
26
|
+
const SurfaceHeaderContext = exports.SurfaceHeaderContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Declare the Dialog nav header's content from within a surface screen — its
|
|
30
|
+
* title/subtitle and any action slot. Merges over nothing (the host owns
|
|
31
|
+
* back/close), replaces on change, and clears on unmount. Call it unconditionally;
|
|
32
|
+
* it is a no-op outside a header-mode surface.
|
|
33
|
+
*/
|
|
34
|
+
function useSurfaceHeader(content) {
|
|
35
|
+
const ctx = (0, _react.useContext)(SurfaceHeaderContext);
|
|
36
|
+
const set = ctx?.setContent;
|
|
37
|
+
// Set synchronously in the commit's layout phase so the bar/title fill in
|
|
38
|
+
// BEFORE the browser paints — no first-frame flash of an empty bar.
|
|
39
|
+
(0, _react.useLayoutEffect)(() => {
|
|
40
|
+
if (!set) return;
|
|
41
|
+
set(content ?? null);
|
|
42
|
+
return () => set(null);
|
|
43
|
+
// Slot nodes (`left`/`right`) are compared by identity; callers memoize them.
|
|
44
|
+
}, [set, content?.title, content?.subtitle, content?.largeTitle, content?.left, content?.right, content?.onBack]);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=useSurfaceHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","SurfaceHeaderContext","exports","createContext","useSurfaceHeader","content","ctx","useContext","set","setContent","useLayoutEffect","title","subtitle","largeTitle","left","right","onBack"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSurfaceHeader.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAG,IAAAE,oBAAa,EAAmC,IAAI,CAAC;;AAEzF;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,OAAgD,EAAQ;EACvF,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAACN,oBAAoB,CAAC;EAC5C,MAAMO,GAAG,GAAGF,GAAG,EAAEG,UAAU;EAC3B;EACA;EACA,IAAAC,sBAAe,EAAC,MAAM;IACpB,IAAI,CAACF,GAAG,EAAE;IACVA,GAAG,CAACH,OAAO,IAAI,IAAI,CAAC;IACpB,OAAO,MAAMG,GAAG,CAAC,IAAI,CAAC;IACtB;EACF,CAAC,EAAE,CACDA,GAAG,EACHH,OAAO,EAAEM,KAAK,EACdN,OAAO,EAAEO,QAAQ,EACjBP,OAAO,EAAEQ,UAAU,EACnBR,OAAO,EAAES,IAAI,EACbT,OAAO,EAAEU,KAAK,EACdV,OAAO,EAAEW,MAAM,CAChB,CAAC;AACJ","ignoreList":[]}
|
|
@@ -33,7 +33,7 @@ const EMPTY_SNAPSHOT = {
|
|
|
33
33
|
* real per-account name / email / avatar / color.
|
|
34
34
|
*
|
|
35
35
|
* This is a thin binding over the shared `AccountDialogController` in
|
|
36
|
-
* `@oxyhq/core` (the SAME headless source the {@link
|
|
36
|
+
* `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
|
|
37
37
|
* so there is ONE projection (`projectSwitchableAccounts`) and one switch path
|
|
38
38
|
* (`controller.switchTo`) across the whole SDK — the local duplicate projection
|
|
39
39
|
* this hook used to own has been removed. Every switch routes through
|
|
@@ -9,10 +9,22 @@ exports.openAccountDialog = openAccountDialog;
|
|
|
9
9
|
exports.registerAccountDialogControls = registerAccountDialogControls;
|
|
10
10
|
exports.subscribeToAccountDialog = subscribeToAccountDialog;
|
|
11
11
|
/**
|
|
12
|
-
* Imperative
|
|
12
|
+
* Imperative, outside-React entry points for the unified `OxyAccountDialogScreen`.
|
|
13
|
+
*
|
|
14
|
+
* These delegate to the live handles the mounted `OxyProvider` registers via
|
|
15
|
+
* {@link registerAccountDialogControls}. Under the hood `open`/`close` present
|
|
16
|
+
* and dismiss the `AccountDialog` surface on the shared Bloom surface stack
|
|
17
|
+
* (`OxyContext.openAccountDialog` → `presentDetached('AccountDialog', …)`), so
|
|
18
|
+
* whether the dialog is open is owned by that stack — this module is only the
|
|
19
|
+
* thin bridge that reaches the provider's controller (which sets the dialog
|
|
20
|
+
* view) from a non-React call site.
|
|
13
21
|
*/
|
|
14
22
|
|
|
15
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Live open/close handles registered by the mounted provider. `open` presents
|
|
25
|
+
* the `AccountDialog` surface (and points its view); `close` dismisses it. Both
|
|
26
|
+
* are stack operations — this interface never carries visibility state.
|
|
27
|
+
*/
|
|
16
28
|
|
|
17
29
|
let controls = null;
|
|
18
30
|
const visibilityListeners = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["controls","visibilityListeners","Set","registerAccountDialogControls","next","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","listener","subscribeToAccountDialog","add","delete"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;;AAIA;;AAMA,IAAIA,QAAsC,GAAG,IAAI;AACjD,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAE1D,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFJ,QAAQ,GAAGI,IAAI;EACf,OAAO,MAAM;IACX,IAAIJ,QAAQ,KAAKI,IAAI,EAAE;MACrBJ,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACO,SAASK,iBAAiBA,CAACC,IAAwB,EAAQ;EAChEN,QAAQ,EAAEO,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACO,SAASE,kBAAkBA,CAAA,EAAS;EACzCR,QAAQ,EAAES,KAAK,CAAC,CAAC;AACnB;;AAEA;AACO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMC,QAAQ,IAAIX,mBAAmB,EAAE;IAC1CW,QAAQ,CAACD,OAAO,CAAC;EACnB;AACF;;AAEA;AACO,SAASE,wBAAwBA,CAACD,QAAoC,EAAc;EACzFX,mBAAmB,CAACa,GAAG,CAACF,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXX,mBAAmB,CAACc,MAAM,CAACH,QAAQ,CAAC;EACtC,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["controls","visibilityListeners","Set","registerAccountDialogControls","next","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","listener","subscribeToAccountDialog","add","delete"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAMA,IAAIA,QAAsC,GAAG,IAAI;AACjD,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAE1D,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFJ,QAAQ,GAAGI,IAAI;EACf,OAAO,MAAM;IACX,IAAIJ,QAAQ,KAAKI,IAAI,EAAE;MACrBJ,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACO,SAASK,iBAAiBA,CAACC,IAAwB,EAAQ;EAChEN,QAAQ,EAAEO,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACO,SAASE,kBAAkBA,CAAA,EAAS;EACzCR,QAAQ,EAAES,KAAK,CAAC,CAAC;AACnB;;AAEA;AACO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMC,QAAQ,IAAIX,mBAAmB,EAAE;IAC1CW,QAAQ,CAACD,OAAO,CAAC;EACnB;AACF;;AAEA;AACO,SAASE,wBAAwBA,CAACD,QAAoC,EAAc;EACzFX,mBAAmB,CAACa,GAAG,CAACF,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXX,mBAAmB,CAACc,MAAM,CAACH,QAAQ,CAAC;EACtC,CAAC;AACH","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ exports.isValidRoute = exports.getScreenComponent = void 0;
|
|
|
10
10
|
|
|
11
11
|
// Define all available route names
|
|
12
12
|
|
|
13
|
-
// Unified account switcher + sign-in surface (
|
|
13
|
+
// Unified account switcher + sign-in surface (OxyAccountDialogScreen body)
|
|
14
14
|
|
|
15
15
|
// Lazy screen loaders - functions that return screen components on-demand
|
|
16
16
|
// This breaks the require cycle by deferring imports until screens are actually needed
|
|
@@ -55,9 +55,9 @@ const screenLoaders = {
|
|
|
55
55
|
ConnectedApps: () => require('../screens/ConnectedAppsScreen').default,
|
|
56
56
|
Preferences: () => require('../screens/PreferencesScreen').default,
|
|
57
57
|
// Unified account switcher + sign-in surface. Its body lives in the
|
|
58
|
-
// `
|
|
58
|
+
// `OxyAccountDialogScreen` component (folded from the standalone dialog); the
|
|
59
59
|
// surface stack provides the Dialog chrome around it.
|
|
60
|
-
AccountDialog: () => require('../components/
|
|
60
|
+
AccountDialog: () => require('../components/OxyAccountDialogScreen').default
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
// Cache loaded components to avoid re-requiring
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["screenLoaders","ManageAccount","require","default","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","AccountDialog","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["screenLoaders","ManageAccount","require","default","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","AccountDialog","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__invokeTopSurfaceBackForTests = __invokeTopSurfaceBackForTests;
|
|
7
|
+
exports.__resetSurfaceBackBridgeForTests = __resetSurfaceBackBridgeForTests;
|
|
8
|
+
exports.pushSurfaceBackHandler = pushSurfaceBackHandler;
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
/**
|
|
11
|
+
* Per-surface system-back handlers (Android hardware back + web Escape).
|
|
12
|
+
*
|
|
13
|
+
* Bloom's `SurfaceHost` dismisses the whole top surface on back/Escape. The SDK
|
|
14
|
+
* needs the old `BottomSheetRouter` semantics first: pop nav history, step a
|
|
15
|
+
* wizard back, then dismiss. A single global listener delegates to the topmost
|
|
16
|
+
* registered handler so stacked surfaces route correctly.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const handlerStack = [];
|
|
20
|
+
let androidInstalled = false;
|
|
21
|
+
let escapeInstalled = false;
|
|
22
|
+
function invokeTopHandler() {
|
|
23
|
+
const handler = handlerStack[handlerStack.length - 1];
|
|
24
|
+
return handler ? handler() : false;
|
|
25
|
+
}
|
|
26
|
+
function installAndroidHandler() {
|
|
27
|
+
if (androidInstalled || _reactNative.Platform.OS !== 'android') return;
|
|
28
|
+
androidInstalled = true;
|
|
29
|
+
_reactNative.BackHandler.addEventListener('hardwareBackPress', () => {
|
|
30
|
+
if (handlerStack.length === 0) return false;
|
|
31
|
+
return invokeTopHandler();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function installEscapeHandler() {
|
|
35
|
+
if (escapeInstalled || _reactNative.Platform.OS !== 'web') return;
|
|
36
|
+
if (typeof window === 'undefined') return;
|
|
37
|
+
escapeInstalled = true;
|
|
38
|
+
window.addEventListener('keydown', event => {
|
|
39
|
+
if (event.key !== 'Escape' || handlerStack.length === 0) return;
|
|
40
|
+
invokeTopHandler();
|
|
41
|
+
event.stopImmediatePropagation();
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
}, true);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Register before Bloom's `SurfaceHost` mounts so Escape capture runs first. */
|
|
47
|
+
installEscapeHandler();
|
|
48
|
+
|
|
49
|
+
/** Push a handler for one live surface; returns unregister. */
|
|
50
|
+
function pushSurfaceBackHandler(handler) {
|
|
51
|
+
handlerStack.push(handler);
|
|
52
|
+
installAndroidHandler();
|
|
53
|
+
return () => {
|
|
54
|
+
const index = handlerStack.lastIndexOf(handler);
|
|
55
|
+
if (index >= 0) handlerStack.splice(index, 1);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Test-only: invoke the top handler. */
|
|
60
|
+
function __invokeTopSurfaceBackForTests() {
|
|
61
|
+
return invokeTopHandler();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Test-only reset. */
|
|
65
|
+
function __resetSurfaceBackBridgeForTests() {
|
|
66
|
+
handlerStack.length = 0;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=surfaceBackBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","handlerStack","androidInstalled","escapeInstalled","invokeTopHandler","handler","length","installAndroidHandler","Platform","OS","BackHandler","addEventListener","installEscapeHandler","window","event","key","stopImmediatePropagation","preventDefault","pushSurfaceBackHandler","push","index","lastIndexOf","splice","__invokeTopSurfaceBackForTests","__resetSurfaceBackBridgeForTests"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceBackBridge.ts"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMC,YAAkC,GAAG,EAAE;AAC7C,IAAIC,gBAAgB,GAAG,KAAK;AAC5B,IAAIC,eAAe,GAAG,KAAK;AAE3B,SAASC,gBAAgBA,CAAA,EAAY;EACnC,MAAMC,OAAO,GAAGJ,YAAY,CAACA,YAAY,CAACK,MAAM,GAAG,CAAC,CAAC;EACrD,OAAOD,OAAO,GAAGA,OAAO,CAAC,CAAC,GAAG,KAAK;AACpC;AAEA,SAASE,qBAAqBA,CAAA,EAAS;EACrC,IAAIL,gBAAgB,IAAIM,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;EACnDP,gBAAgB,GAAG,IAAI;EACvBQ,wBAAW,CAACC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM;IACtD,IAAIV,YAAY,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;IAC3C,OAAOF,gBAAgB,CAAC,CAAC;EAC3B,CAAC,CAAC;AACJ;AAEA,SAASQ,oBAAoBA,CAAA,EAAS;EACpC,IAAIT,eAAe,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;EAC9C,IAAI,OAAOI,MAAM,KAAK,WAAW,EAAE;EACnCV,eAAe,GAAG,IAAI;EACtBU,MAAM,CAACF,gBAAgB,CACrB,SAAS,EACRG,KAAK,IAAK;IACT,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,IAAId,YAAY,CAACK,MAAM,KAAK,CAAC,EAAE;IACzDF,gBAAgB,CAAC,CAAC;IAClBU,KAAK,CAACE,wBAAwB,CAAC,CAAC;IAChCF,KAAK,CAACG,cAAc,CAAC,CAAC;EACxB,CAAC,EACD,IACF,CAAC;AACH;;AAEA;AACAL,oBAAoB,CAAC,CAAC;;AAEtB;AACO,SAASM,sBAAsBA,CAACb,OAA2B,EAAc;EAC9EJ,YAAY,CAACkB,IAAI,CAACd,OAAO,CAAC;EAC1BE,qBAAqB,CAAC,CAAC;EACvB,OAAO,MAAM;IACX,MAAMa,KAAK,GAAGnB,YAAY,CAACoB,WAAW,CAAChB,OAAO,CAAC;IAC/C,IAAIe,KAAK,IAAI,CAAC,EAAEnB,YAAY,CAACqB,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;EAC/C,CAAC;AACH;;AAEA;AACO,SAASG,8BAA8BA,CAAA,EAAY;EACxD,OAAOnB,gBAAgB,CAAC,CAAC;AAC3B;;AAEA;AACO,SAASoB,gCAAgCA,CAAA,EAAS;EACvDvB,YAAY,CAACK,MAAM,GAAG,CAAC;AACzB","ignoreList":[]}
|
|
@@ -50,23 +50,37 @@ void _registryCoversRoutes;
|
|
|
50
50
|
* Per-route surface configuration. Merges the historical `SheetRouteConfig`
|
|
51
51
|
* knobs with the new {@link SurfacePresentation}.
|
|
52
52
|
*
|
|
53
|
-
* NOTE: `scrollable`
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* flush layout) is what actually drives the surface today.
|
|
53
|
+
* NOTE: `scrollable` is LIVE — it is threaded through `bloomOptionsFor` onto the
|
|
54
|
+
* Bloom `Dialog` surface (`scrollable` prop), so a route that owns its own scroll
|
|
55
|
+
* container opts OUT of the Dialog's internal ScrollView. `manualActivation` /
|
|
56
|
+
* `dynamicBackdrop` / `handleComponent` remain informational — reserved for a
|
|
57
|
+
* future Bloom bottom-placement passthrough; the shared `DialogBottomSheet`
|
|
58
|
+
* currently owns pan coordination itself.
|
|
60
59
|
*/
|
|
61
60
|
|
|
62
61
|
/** Defaults shared across all routes — the canonical responsive "sheet". */
|
|
63
62
|
const DEFAULT_SURFACE_CONFIG = {
|
|
64
63
|
presentation: 'sheet',
|
|
65
64
|
scrollable: true,
|
|
65
|
+
header: true,
|
|
66
66
|
manualActivation: true,
|
|
67
67
|
dynamicBackdrop: true
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Routes that render NO Dialog nav header — they own their chrome:
|
|
72
|
+
* - `AvatarCrop` — its own translucent Cancel / title / Done top bar.
|
|
73
|
+
* - `PaymentGateway` — the payment surface owns its controls.
|
|
74
|
+
* - `WelcomeNewUser` — a full-bleed onboarding wizard with its own step chrome.
|
|
75
|
+
* - `Profile` — a full profile view, no nav-header chrome.
|
|
76
|
+
* (The flagship full-bleed image picker is handled separately below.)
|
|
77
|
+
*
|
|
78
|
+
* `AccountDialog` used to be here — it now uses the SHARED Dialog nav header like
|
|
79
|
+
* every other screen (its per-view title/subtitle + view-back go through
|
|
80
|
+
* `useSurfaceHeader`), so the account/sign-in surface no longer feels bespoke.
|
|
81
|
+
*/
|
|
82
|
+
const HEADERLESS_ROUTES = new Set(['AvatarCrop', 'PaymentGateway', 'WelcomeNewUser', 'Profile']);
|
|
83
|
+
|
|
70
84
|
/**
|
|
71
85
|
* Predicate matching `FileManagementScreen`'s internal `isImageOnlyPicker`
|
|
72
86
|
* derivation. When the consumer restricts to image MIME types (no videos, no
|
|
@@ -85,16 +99,46 @@ const isFileManagementImageOnlyPicker = props => {
|
|
|
85
99
|
return blocksVideos && blocksAudio && blocksDocs;
|
|
86
100
|
};
|
|
87
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Routes whose screen owns its OWN scroll container — a FlatList /
|
|
104
|
+
* VirtualizedList (`ConnectedApps`, `TrustLeaderboard`, `FollowersList` /
|
|
105
|
+
* `FollowingList` via `UserListScreen`) or its own vertical `ScrollView`
|
|
106
|
+
* (`FileManagement`). These MUST opt out of the Dialog's internal ScrollView
|
|
107
|
+
* (`scrollable: false`) so there is exactly ONE scroll container — otherwise a
|
|
108
|
+
* VirtualizedList nests inside a plain ScrollView (RN warning) or a nested
|
|
109
|
+
* vertical scroll-in-scroll breaks windowing. Screens with only a HORIZONTAL
|
|
110
|
+
* ScrollView (FAQ's category row, Premium's plan carousel) are NOT listed — a
|
|
111
|
+
* horizontal scroller does not conflict with the Dialog's vertical scroll.
|
|
112
|
+
*/
|
|
113
|
+
const OWN_SCROLL_CONTAINER_ROUTES = new Set(['FileManagement', 'ConnectedApps', 'TrustLeaderboard', 'FollowersList', 'FollowingList']);
|
|
114
|
+
|
|
88
115
|
/**
|
|
89
116
|
* Resolve the surface configuration for a route + props. Defaults to the
|
|
90
117
|
* responsive sheet; the image-only FileManagement picker upgrades to a full-bleed
|
|
91
|
-
* `'fullScreen'` surface that owns its own
|
|
118
|
+
* `'fullScreen'` surface, and every route that owns its own scroll container is
|
|
119
|
+
* marked `scrollable: false`.
|
|
92
120
|
*/
|
|
93
121
|
const getSurfaceConfig = (route, props) => {
|
|
94
122
|
if (route === 'FileManagement' && isFileManagementImageOnlyPicker(props)) {
|
|
123
|
+
// The full-bleed image picker owns its own translucent top bar — no nav header.
|
|
95
124
|
return {
|
|
96
125
|
...DEFAULT_SURFACE_CONFIG,
|
|
97
126
|
presentation: 'fullScreen',
|
|
127
|
+
scrollable: false,
|
|
128
|
+
header: false
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (HEADERLESS_ROUTES.has(route)) {
|
|
132
|
+
return {
|
|
133
|
+
...DEFAULT_SURFACE_CONFIG,
|
|
134
|
+
header: false
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
if (OWN_SCROLL_CONTAINER_ROUTES.has(route)) {
|
|
138
|
+
// Own-scroller list screens keep the nav header (static, non-collapsing —
|
|
139
|
+
// there is no Dialog scroll offset to drive the large-title collapse).
|
|
140
|
+
return {
|
|
141
|
+
...DEFAULT_SURFACE_CONFIG,
|
|
98
142
|
scrollable: false
|
|
99
143
|
};
|
|
100
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","manualActivation","dynamicBackdrop","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","has","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","getSurfaceConfig","route","exports","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["_registryCoversRoutes","DEFAULT_SURFACE_CONFIG","presentation","scrollable","header","manualActivation","dynamicBackdrop","HEADERLESS_ROUTES","Set","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","has","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","OWN_SCROLL_CONTAINER_ROUTES","getSurfaceConfig","route","exports","getSurfacePresentation"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaceRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,19 +43,48 @@ const FULLSCREEN_SURFACE_STYLE = {
|
|
|
43
43
|
overflow: 'hidden'
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Every SDK screen owns its own background + content padding + scroll region
|
|
48
|
+
* (they were authored for the bare `BottomSheet`). So the shared `Dialog` must
|
|
49
|
+
* NOT add its own `contentPadding` on top (that double-pads) — it owns only the
|
|
50
|
+
* structural chrome: the surface card, the size cap (`maxHeightRatio`) and the
|
|
51
|
+
* scroll boundary. `contentPadding: 0` makes the screen's own padding the single
|
|
52
|
+
* source, matching the image-picker (`fullScreen`) surface.
|
|
53
|
+
*/
|
|
54
|
+
const SDK_SURFACE_CHROME = {
|
|
55
|
+
contentPadding: 0,
|
|
56
|
+
maxHeightRatio: 0.9
|
|
57
|
+
};
|
|
58
|
+
|
|
46
59
|
/** Map a route's presentation taxonomy onto concrete Bloom `Dialog` options. */
|
|
47
60
|
function bloomOptionsFor(config) {
|
|
61
|
+
// Threaded onto every placement so a route that owns its own scroll container
|
|
62
|
+
// (`scrollable: false`) opts out of the Dialog's internal ScrollView.
|
|
63
|
+
const scrollable = config.scrollable;
|
|
64
|
+
// Nav-header mode marker: turns on the Dialog's OWN sticky gradient nav bar +
|
|
65
|
+
// large collapsing title over its scroll content. The title/subtitle/action
|
|
66
|
+
// slots are contributed at runtime by the mounted screen via `useSurfaceHeader`
|
|
67
|
+
// (resolved in `SurfaceScreen`), so the seed here just enables the scaffold.
|
|
68
|
+
const header = config.header ? {
|
|
69
|
+
largeTitle: true
|
|
70
|
+
} : undefined;
|
|
48
71
|
switch (config.presentation) {
|
|
49
72
|
case 'center':
|
|
50
73
|
return {
|
|
51
|
-
placement: 'center'
|
|
74
|
+
placement: 'center',
|
|
75
|
+
scrollable,
|
|
76
|
+
header,
|
|
77
|
+
...SDK_SURFACE_CHROME
|
|
52
78
|
};
|
|
53
79
|
case 'drawer':
|
|
54
80
|
return {
|
|
55
81
|
placement: {
|
|
56
82
|
base: 'bottom',
|
|
57
83
|
md: 'left'
|
|
58
|
-
}
|
|
84
|
+
},
|
|
85
|
+
scrollable,
|
|
86
|
+
header,
|
|
87
|
+
...SDK_SURFACE_CHROME
|
|
59
88
|
};
|
|
60
89
|
case 'fullScreen':
|
|
61
90
|
// Approximate a full-screen surface with the shared `Dialog`: a tall
|
|
@@ -67,12 +96,16 @@ function bloomOptionsFor(config) {
|
|
|
67
96
|
maxWidth: 640,
|
|
68
97
|
maxHeightRatio: 0.9,
|
|
69
98
|
dismissOnBackdrop: false,
|
|
99
|
+
scrollable,
|
|
70
100
|
style: FULLSCREEN_SURFACE_STYLE,
|
|
71
101
|
panelStyle: FULLSCREEN_SURFACE_STYLE
|
|
72
102
|
};
|
|
73
103
|
default:
|
|
74
104
|
return {
|
|
75
|
-
placement: SHEET_PLACEMENT
|
|
105
|
+
placement: SHEET_PLACEMENT,
|
|
106
|
+
scrollable,
|
|
107
|
+
header,
|
|
108
|
+
...SDK_SURFACE_CHROME
|
|
76
109
|
};
|
|
77
110
|
}
|
|
78
111
|
}
|
|
@@ -108,12 +141,16 @@ function presentInternal(route, props, opts, track) {
|
|
|
108
141
|
const result = _surfaces.surfaces.present(surface => /*#__PURE__*/(0, _react.createElement)(_SurfaceScreen.default, {
|
|
109
142
|
navStack,
|
|
110
143
|
surface,
|
|
111
|
-
presentation: config.presentation
|
|
144
|
+
presentation: config.presentation,
|
|
145
|
+
dismissOnBackdrop: bloomOpts.dismissOnBackdrop ?? true
|
|
112
146
|
}), bloomOpts);
|
|
113
147
|
const instance = {
|
|
114
148
|
route,
|
|
115
149
|
presentation: config.presentation,
|
|
116
|
-
navigate: (nextRoute, nextProps) =>
|
|
150
|
+
navigate: (nextRoute, nextProps) => {
|
|
151
|
+
const top = navStack.getTop();
|
|
152
|
+
if (top.route === nextRoute) navStack.replace(nextRoute, nextProps);else navStack.navigate(nextRoute, nextProps);
|
|
153
|
+
},
|
|
117
154
|
replace: (nextRoute, nextProps) => navStack.replace(nextRoute, nextProps),
|
|
118
155
|
goBack: () => navStack.goBack(),
|
|
119
156
|
canGoBack: () => navStack.canGoBack(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_surfaces","_SurfaceScreen","_interopRequireDefault","_surfaceRegistry","_surfaceNavStack","e","__esModule","default","SHEET_PLACEMENT","base","md","FULLSCREEN_SURFACE_STYLE","backgroundColor","overflow","bloomOptionsFor","config","
|
|
1
|
+
{"version":3,"names":["_react","require","_surfaces","_SurfaceScreen","_interopRequireDefault","_surfaceRegistry","_surfaceNavStack","e","__esModule","default","SHEET_PLACEMENT","base","md","FULLSCREEN_SURFACE_STYLE","backgroundColor","overflow","SDK_SURFACE_CHROME","contentPadding","maxHeightRatio","bloomOptionsFor","config","scrollable","header","largeTitle","undefined","presentation","placement","maxWidth","dismissOnBackdrop","style","panelStyle","activeRouteSurfaces","presentInternal","route","props","opts","track","navStack","createSurfaceNavStack","getSurfaceConfig","bloomOpts","label","result","bloomSurfaces","present","surface","createElement","SurfaceScreen","instance","navigate","nextRoute","nextProps","top","getTop","replace","goBack","canGoBack","setStep","step","dismiss","dismissResult","requestDismiss","tracked","push","finally","index","indexOf","splice","presentDetached","presentRoute","topRouteSurface","length","closeAllRouteSurfaces","reverse","navigateWithinOrPresent","currentPresentation","getSurfacePresentation","replaceWithinOrPresent","surfaces","exports","dismissAll","useSurfaces"],"sourceRoot":"../../../../src","sources":["ui/navigation/surfaces.ts"],"mappings":"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","ignoreList":[]}
|