@oxyhq/services 22.9.0 → 22.11.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/AvatarCameraBadge.js +42 -0
- package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -0
- package/lib/commonjs/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +55 -133
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
- package/lib/commonjs/ui/components/OxyAuthChooser.js +657 -88
- 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 +15 -1
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileSummaryCard.js +3 -23
- package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +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 +91 -8
- 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 +81 -19
- package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +83 -23
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.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 +79 -29
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js +129 -0
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/useAvatarPicker.js +38 -55
- package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/commonjs/ui/hooks/useReduceMotion.js +57 -0
- package/lib/commonjs/ui/hooks/useReduceMotion.js.map +1 -0
- 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 +36 -2
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -6
- package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +4 -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/surfaceNavStack.js +62 -15
- package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceRegistry.js +84 -19
- package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +139 -25
- 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 +287 -289
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +301 -0
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -0
- 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 +403 -627
- 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/WelcomeNewUserScreen.js +16 -48
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +63 -0
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +54 -41
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +44 -81
- package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +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/commonjs/ui/stores/resetSessionScopedStores.js +8 -3
- package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +11 -2
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/commonjs/ui/utils/fileManagement.js +0 -79
- package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
- package/lib/module/index.js +12 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/AvatarCameraBadge.js +40 -0
- package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -0
- package/lib/module/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +57 -135
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
- package/lib/module/ui/components/OxyAuthChooser.js +659 -91
- 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 +16 -2
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/ProfileSummaryCard.js +2 -23
- package/lib/module/ui/components/ProfileSummaryCard.js.map +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 +93 -10
- 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 +81 -19
- package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +83 -25
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.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 +80 -30
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +16 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
- package/lib/module/ui/hooks/queries/useFileQueries.js +120 -0
- package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -0
- package/lib/module/ui/hooks/useAvatarPicker.js +38 -55
- package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
- package/lib/module/ui/hooks/useReduceMotion.js +53 -0
- package/lib/module/ui/hooks/useReduceMotion.js.map +1 -0
- 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 +34 -2
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/module/ui/navigation/bottomSheetManager.js +6 -7
- package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +4 -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/surfaceNavStack.js +62 -15
- package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/module/ui/navigation/surfaceRegistry.js +84 -19
- package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +138 -26
- 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 +289 -291
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/ChangeAvatarScreen.js +298 -0
- package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -0
- 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 +408 -631
- 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/WelcomeNewUserScreen.js +17 -49
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js +59 -0
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +54 -42
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +45 -81
- package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +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/module/ui/stores/resetSessionScopedStores.js +8 -3
- package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +11 -2
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/ui/utils/fileManagement.js +0 -78
- package/lib/module/ui/utils/fileManagement.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/AvatarCameraBadge.d.ts +4 -0
- package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts.map +1 -0
- package/lib/typescript/{module/ui/components/OxyAccountDialog.d.ts → commonjs/ui/components/OxyAccountDialogScreen.d.ts} +5 -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/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- 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 +3 -4
- 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 +75 -13
- package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.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/queries/queryKeys.d.ts +9 -0
- package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +50 -0
- package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +17 -16
- package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts +14 -0
- package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts.map +1 -0
- 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 +27 -2
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +4 -5
- package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.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/surfaceNavStack.d.ts +21 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +101 -23
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +42 -11
- 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 +18 -9
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts +34 -0
- package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
- 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/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
- package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.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/stores/resetSessionScopedStores.d.ts +8 -1
- package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +10 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -48
- package/lib/typescript/commonjs/ui/utils/fileManagement.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/AvatarCameraBadge.d.ts +4 -0
- package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts.map +1 -0
- package/lib/typescript/{commonjs/ui/components/OxyAccountDialog.d.ts → module/ui/components/OxyAccountDialogScreen.d.ts} +5 -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/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- 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 +3 -4
- 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 +75 -13
- package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.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/queries/queryKeys.d.ts +9 -0
- package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +50 -0
- package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +17 -16
- package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts +14 -0
- package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts.map +1 -0
- 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 +27 -2
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +4 -5
- package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.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/surfaceNavStack.d.ts +21 -0
- package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +101 -23
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts +42 -11
- 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 +18 -9
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts +34 -0
- package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
- 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/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
- package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.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/stores/resetSessionScopedStores.d.ts +8 -1
- package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +10 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -48
- package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
- package/package.json +9 -5
- package/src/index.ts +12 -5
- package/src/ui/components/AvatarCameraBadge.tsx +35 -0
- package/src/ui/components/{OxyAccountDialog.tsx → OxyAccountDialogScreen.tsx} +50 -116
- package/src/ui/components/OxyAuthChooser.tsx +743 -86
- package/src/ui/components/OxyConsentScreen.tsx +1 -1
- package/src/ui/components/ProfileButton.tsx +18 -3
- package/src/ui/components/ProfileSummaryCard.tsx +2 -25
- package/src/ui/components/RequireOxyAuth.tsx +1 -1
- package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
- package/src/ui/components/SurfaceScreen.tsx +108 -14
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
- package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
- package/src/ui/components/oxyAuthChooserStyles.ts +78 -16
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +158 -84
- package/src/ui/components/photogrid/__tests__/chunkPhotos.test.ts +51 -0
- package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
- package/src/ui/context/OxyContext.tsx +79 -25
- package/src/ui/hooks/queries/queryKeys.ts +15 -0
- package/src/ui/hooks/queries/useFileQueries.ts +162 -0
- package/src/ui/hooks/useAvatarPicker.ts +46 -74
- package/src/ui/hooks/useReduceMotion.ts +58 -0
- package/src/ui/hooks/useSurfaceHeader.ts +57 -0
- package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
- package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +55 -7
- package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +149 -0
- package/src/ui/navigation/accountDialogManager.ts +42 -2
- package/src/ui/navigation/bottomSheetManager.ts +6 -7
- package/src/ui/navigation/routes.ts +6 -4
- package/src/ui/navigation/surfaceBackBridge.ts +69 -0
- package/src/ui/navigation/surfaceNavStack.ts +72 -9
- package/src/ui/navigation/surfaceRegistry.ts +164 -24
- package/src/ui/navigation/surfaces.ts +137 -30
- 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 +340 -311
- package/src/ui/screens/ChangeAvatarScreen.tsx +359 -0
- 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 +370 -610
- 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/WelcomeNewUserScreen.tsx +18 -48
- package/src/ui/screens/fileManagement/FileLibraryError.tsx +56 -0
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +56 -46
- package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +55 -71
- 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/stores/resetSessionScopedStores.ts +8 -3
- package/src/ui/types/navigation.ts +10 -0
- package/src/ui/utils/avatarUtils.ts +11 -2
- package/src/ui/utils/fileManagement.ts +1 -101
- 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/commonjs/ui/stores/fileStore.js +0 -153
- package/lib/commonjs/ui/stores/fileStore.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/module/ui/stores/fileStore.js +0 -145
- package/lib/module/ui/stores/fileStore.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/commonjs/ui/stores/fileStore.d.ts +0 -31
- package/lib/typescript/commonjs/ui/stores/fileStore.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/lib/typescript/module/ui/stores/fileStore.d.ts +0 -31
- package/lib/typescript/module/ui/stores/fileStore.d.ts.map +0 -1
- package/src/ui/components/Header.tsx +0 -224
- package/src/ui/stores/fileStore.ts +0 -118
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { useState, useEffect, useCallback
|
|
2
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
3
3
|
import { View, ScrollView, ActivityIndicator } from 'react-native';
|
|
4
4
|
import type { BaseScreenProps } from '../types/navigation';
|
|
5
|
-
import {
|
|
5
|
+
import { toast } from '@oxyhq/bloom';
|
|
6
|
+
import { surfaces } from '@oxyhq/bloom/surfaces';
|
|
6
7
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
7
8
|
import { Button } from '@oxyhq/bloom/button';
|
|
8
9
|
import { Chip } from '@oxyhq/bloom/chip';
|
|
@@ -16,8 +17,8 @@ import {
|
|
|
16
17
|
SegmentedControlItemText,
|
|
17
18
|
} from '@oxyhq/bloom/segmented-control';
|
|
18
19
|
import { Ionicons } from '@expo/vector-icons';
|
|
19
|
-
import Header from '../components/Header';
|
|
20
20
|
import { useI18n } from '../hooks/useI18n';
|
|
21
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
21
22
|
import { useOxy } from '../context/OxyContext';
|
|
22
23
|
|
|
23
24
|
type IoniconName = React.ComponentProps<typeof Ionicons>['name'];
|
|
@@ -88,6 +89,20 @@ const FEATURE_CATEGORIES: IndividualFeature['category'][] = [
|
|
|
88
89
|
'productivity',
|
|
89
90
|
];
|
|
90
91
|
|
|
92
|
+
// Pure package-name → display-name mapping (module scope so the nav-header
|
|
93
|
+
// subtitle can reference it before the component's render helpers).
|
|
94
|
+
const getAppDisplayName = (packageName: string): string => {
|
|
95
|
+
const appNames: Record<string, string> = {
|
|
96
|
+
'mention': 'Mention',
|
|
97
|
+
'oxy-social': 'Oxy Social',
|
|
98
|
+
'oxy-workspace': 'Oxy Workspace',
|
|
99
|
+
'oxy-creator': 'Oxy Creator',
|
|
100
|
+
'oxy-analytics': 'Oxy Analytics',
|
|
101
|
+
'oxy-studio': 'Oxy Studio',
|
|
102
|
+
};
|
|
103
|
+
return appNames[packageName] || packageName;
|
|
104
|
+
};
|
|
105
|
+
|
|
91
106
|
const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
92
107
|
onClose,
|
|
93
108
|
navigate,
|
|
@@ -105,16 +120,13 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
105
120
|
const [billingInterval, setBillingInterval] = useState<BillingInterval>(BILLING_MONTH);
|
|
106
121
|
const [activeTab, setActiveTab] = useState<ActiveTab>(TAB_PLANS);
|
|
107
122
|
const [currentAppPackage, setCurrentAppPackage] = useState<string>('mention'); // Default to mention for demo
|
|
108
|
-
const [pendingUnsubscribeFeatureId, setPendingUnsubscribeFeatureId] = useState<string | null>(null);
|
|
109
123
|
|
|
110
124
|
const { t } = useI18n();
|
|
125
|
+
|
|
126
|
+
useSurfaceHeader({ title: t('premium.title') || 'Oxy+ Subscriptions', subtitle: t('premium.forApp', { app: getAppDisplayName(currentAppPackage) }) || `for ${getAppDisplayName(currentAppPackage)}` });
|
|
111
127
|
const bloomTheme = useTheme();
|
|
112
128
|
const colors = bloomTheme.colors;
|
|
113
129
|
|
|
114
|
-
// Prompt controls
|
|
115
|
-
const cancelSubscriptionDialog = useDialogControl();
|
|
116
|
-
const unsubscribeFeatureDialog = useDialogControl();
|
|
117
|
-
|
|
118
130
|
// Oxy+ subscription plans
|
|
119
131
|
const mockPlans: SubscriptionPlan[] = [
|
|
120
132
|
{
|
|
@@ -426,11 +438,15 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
426
438
|
}
|
|
427
439
|
};
|
|
428
440
|
|
|
429
|
-
const confirmCancelSubscription = useCallback(() => {
|
|
430
|
-
cancelSubscriptionDialog.open();
|
|
431
|
-
}, [cancelSubscriptionDialog]);
|
|
432
|
-
|
|
433
441
|
const handleCancelSubscription = useCallback(async () => {
|
|
442
|
+
const confirmed = await surfaces.confirm({
|
|
443
|
+
title: t('premium.confirms.cancelSubTitle') || 'Cancel Subscription',
|
|
444
|
+
message: t('premium.confirms.cancelSub') || 'Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.',
|
|
445
|
+
confirmLabel: t('premium.actions.cancelSubBtn') || 'Cancel Subscription',
|
|
446
|
+
cancelLabel: t('common.cancel') || 'Cancel',
|
|
447
|
+
destructive: true,
|
|
448
|
+
});
|
|
449
|
+
if (!confirmed) return;
|
|
434
450
|
try {
|
|
435
451
|
setSubscription(prev => prev ? {
|
|
436
452
|
...prev,
|
|
@@ -512,18 +528,22 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
512
528
|
}
|
|
513
529
|
};
|
|
514
530
|
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
531
|
+
const handleFeatureUnsubscribe = useCallback(async (featureId: string) => {
|
|
532
|
+
const feature = individualFeatures.find(f => f.id === featureId);
|
|
533
|
+
const confirmed = await surfaces.confirm({
|
|
534
|
+
title: t('premium.confirms.unsubscribeFeatureTitle') || 'Unsubscribe from Feature',
|
|
535
|
+
message: feature
|
|
536
|
+
? (t('premium.confirms.unsubscribeFeature', { name: feature.name }) ?? `Are you sure you want to unsubscribe from ${feature.name}?`)
|
|
537
|
+
: '',
|
|
538
|
+
confirmLabel: t('premium.actions.unsubscribe') || 'Unsubscribe',
|
|
539
|
+
cancelLabel: t('common.cancel') || 'Cancel',
|
|
540
|
+
destructive: true,
|
|
541
|
+
});
|
|
542
|
+
if (!confirmed) return;
|
|
523
543
|
try {
|
|
524
544
|
setIndividualFeatures(prev =>
|
|
525
545
|
prev.map(f =>
|
|
526
|
-
f.id ===
|
|
546
|
+
f.id === featureId
|
|
527
547
|
? { ...f, isSubscribed: false }
|
|
528
548
|
: f
|
|
529
549
|
)
|
|
@@ -531,27 +551,8 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
531
551
|
toast.success((t('premium.toasts.featureUnsubscribed', { name: feature?.name ?? '' }) ?? `Unsubscribed from ${feature?.name}`));
|
|
532
552
|
} catch (error) {
|
|
533
553
|
toast.error(t('premium.toasts.featureUnsubscribeFailed') || 'Failed to unsubscribe from feature');
|
|
534
|
-
} finally {
|
|
535
|
-
setPendingUnsubscribeFeatureId(null);
|
|
536
554
|
}
|
|
537
|
-
}, [
|
|
538
|
-
|
|
539
|
-
const pendingUnsubscribeFeature = useMemo(
|
|
540
|
-
() => individualFeatures.find(f => f.id === pendingUnsubscribeFeatureId),
|
|
541
|
-
[individualFeatures, pendingUnsubscribeFeatureId]
|
|
542
|
-
);
|
|
543
|
-
|
|
544
|
-
const getAppDisplayName = (packageName: string) => {
|
|
545
|
-
const appNames: Record<string, string> = {
|
|
546
|
-
'mention': 'Mention',
|
|
547
|
-
'oxy-social': 'Oxy Social',
|
|
548
|
-
'oxy-workspace': 'Oxy Workspace',
|
|
549
|
-
'oxy-creator': 'Oxy Creator',
|
|
550
|
-
'oxy-analytics': 'Oxy Analytics',
|
|
551
|
-
'oxy-studio': 'Oxy Studio'
|
|
552
|
-
};
|
|
553
|
-
return appNames[packageName] || packageName;
|
|
554
|
-
};
|
|
555
|
+
}, [individualFeatures, t]);
|
|
555
556
|
|
|
556
557
|
const renderCurrentSubscription = () => {
|
|
557
558
|
if (!subscription) return null;
|
|
@@ -608,7 +609,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
608
609
|
) : (
|
|
609
610
|
<Button
|
|
610
611
|
variant="destructive"
|
|
611
|
-
onPress={
|
|
612
|
+
onPress={handleCancelSubscription}
|
|
612
613
|
className="flex-1"
|
|
613
614
|
accessibilityLabel={t('premium.actions.cancelSubBtn') || 'Cancel Subscription'}
|
|
614
615
|
>
|
|
@@ -915,7 +916,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
915
916
|
</Button>
|
|
916
917
|
<Button
|
|
917
918
|
variant="outline"
|
|
918
|
-
onPress={() =>
|
|
919
|
+
onPress={() => handleFeatureUnsubscribe(feature.id)}
|
|
919
920
|
accessibilityLabel={t('premium.actions.unsubscribe') || 'Unsubscribe'}
|
|
920
921
|
className="flex-1"
|
|
921
922
|
>
|
|
@@ -1006,41 +1007,21 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
1006
1007
|
|
|
1007
1008
|
if (loading) {
|
|
1008
1009
|
return (
|
|
1009
|
-
|
|
1010
|
-
<
|
|
1011
|
-
title={t('premium.title') || 'Oxy+ Subscriptions'}
|
|
1012
|
-
subtitle={t('premium.forApp', { app: getAppDisplayName(currentAppPackage) }) || `for ${getAppDisplayName(currentAppPackage)}`}
|
|
1013
|
-
onBack={goBack || onClose}
|
|
1014
|
-
onClose={onClose}
|
|
1015
|
-
showCloseButton={!!onClose}
|
|
1016
|
-
elevation="subtle"
|
|
1017
|
-
/>
|
|
1018
|
-
<View className="flex-1 items-center justify-center px-screen-margin">
|
|
1010
|
+
<>
|
|
1011
|
+
<View className="items-center justify-center px-screen-margin py-space-40">
|
|
1019
1012
|
<ActivityIndicator size="large" color={colors.primary} />
|
|
1020
1013
|
<Text className="text-text-secondary text-base text-center mt-space-16">
|
|
1021
1014
|
{t('premium.loading') || 'Loading subscription plans...'}
|
|
1022
1015
|
</Text>
|
|
1023
1016
|
</View>
|
|
1024
|
-
|
|
1017
|
+
</>
|
|
1025
1018
|
);
|
|
1026
1019
|
}
|
|
1027
1020
|
|
|
1028
1021
|
return (
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
subtitle={t('premium.forApp', { app: getAppDisplayName(currentAppPackage) }) || `for ${getAppDisplayName(currentAppPackage)}`}
|
|
1033
|
-
onBack={goBack || onClose}
|
|
1034
|
-
onClose={onClose}
|
|
1035
|
-
showCloseButton={!!onClose}
|
|
1036
|
-
elevation="subtle"
|
|
1037
|
-
/>
|
|
1038
|
-
|
|
1039
|
-
<ScrollView
|
|
1040
|
-
className="flex-1"
|
|
1041
|
-
contentContainerClassName="px-screen-margin pb-space-32"
|
|
1042
|
-
showsVerticalScrollIndicator={false}
|
|
1043
|
-
>
|
|
1022
|
+
<>
|
|
1023
|
+
|
|
1024
|
+
<View className="px-screen-margin pb-space-32">
|
|
1044
1025
|
<View className="pt-space-20">
|
|
1045
1026
|
{renderAppSwitcher()}
|
|
1046
1027
|
|
|
@@ -1114,27 +1095,8 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
1114
1095
|
</BenefitList>
|
|
1115
1096
|
</View>
|
|
1116
1097
|
</View>
|
|
1117
|
-
</
|
|
1118
|
-
|
|
1119
|
-
<Dialog
|
|
1120
|
-
control={cancelSubscriptionDialog}
|
|
1121
|
-
title={t('premium.confirms.cancelSubTitle') || 'Cancel Subscription'}
|
|
1122
|
-
description={t('premium.confirms.cancelSub') || 'Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.'}
|
|
1123
|
-
actions={[
|
|
1124
|
-
{ label: t('premium.actions.cancelSubBtn') || 'Cancel Subscription', color: 'destructive', onPress: handleCancelSubscription },
|
|
1125
|
-
{ label: t('common.cancel') || 'Cancel', color: 'cancel' },
|
|
1126
|
-
]}
|
|
1127
|
-
/>
|
|
1128
|
-
<Dialog
|
|
1129
|
-
control={unsubscribeFeatureDialog}
|
|
1130
|
-
title={t('premium.confirms.unsubscribeFeatureTitle') || 'Unsubscribe from Feature'}
|
|
1131
|
-
description={pendingUnsubscribeFeature ? (t('premium.confirms.unsubscribeFeature', { name: pendingUnsubscribeFeature.name }) ?? `Are you sure you want to unsubscribe from ${pendingUnsubscribeFeature.name}?`) : ''}
|
|
1132
|
-
actions={[
|
|
1133
|
-
{ label: t('premium.actions.unsubscribe') || 'Unsubscribe', color: 'destructive', onPress: handleFeatureUnsubscribe },
|
|
1134
|
-
{ label: t('common.cancel') || 'Cancel', color: 'cancel' },
|
|
1135
|
-
]}
|
|
1136
|
-
/>
|
|
1137
|
-
</View>
|
|
1098
|
+
</View>
|
|
1099
|
+
</>
|
|
1138
1100
|
);
|
|
1139
1101
|
};
|
|
1140
1102
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React, { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
import { View
|
|
2
|
+
import { View } from 'react-native';
|
|
3
3
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
4
|
import { toast } from '@oxyhq/bloom';
|
|
5
5
|
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
6
6
|
import { Switch } from '@oxyhq/bloom/switch';
|
|
7
7
|
import { Button } from '@oxyhq/bloom/button';
|
|
8
8
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
9
|
-
import Header from '../components/Header';
|
|
10
9
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
11
10
|
import { Loading } from '@oxyhq/bloom/loading';
|
|
12
11
|
import { Text } from '@oxyhq/bloom/typography';
|
|
13
12
|
import { SettingsIcon } from '../components/SettingsIcon';
|
|
14
13
|
import { useI18n } from '../hooks/useI18n';
|
|
14
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
15
15
|
import { useSettingToggles } from '../hooks/useSettingToggle';
|
|
16
16
|
import type { BlockedUser, RestrictedUser } from '@oxyhq/core';
|
|
17
17
|
import { getAccountDisplayName } from '@oxyhq/core';
|
|
@@ -69,6 +69,8 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
69
69
|
// switched, else the personal user).
|
|
70
70
|
const { oxyServices, user } = useOxy();
|
|
71
71
|
const { t, locale } = useI18n();
|
|
72
|
+
|
|
73
|
+
useSurfaceHeader({ title: t('privacySettings.title') || 'Privacy Settings' });
|
|
72
74
|
const bloomTheme = useTheme();
|
|
73
75
|
const [isLoading, setIsLoading] = useState(true);
|
|
74
76
|
const [blockedUsers, setBlockedUsers] = useState<BlockedUser[]>([]);
|
|
@@ -205,29 +207,16 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
205
207
|
|
|
206
208
|
if (isLoading) {
|
|
207
209
|
return (
|
|
208
|
-
|
|
209
|
-
<Header
|
|
210
|
-
title={t('privacySettings.title') || 'Privacy Settings'}
|
|
211
|
-
onBack={goBack || onClose}
|
|
212
|
-
variant="minimal"
|
|
213
|
-
elevation="subtle"
|
|
214
|
-
/>
|
|
210
|
+
<>
|
|
215
211
|
<Loading size="large" color={bloomTheme.colors.text} />
|
|
216
|
-
|
|
212
|
+
</>
|
|
217
213
|
);
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
return (
|
|
221
|
-
|
|
222
|
-
<Header
|
|
223
|
-
title={t('privacySettings.title') || 'Privacy Settings'}
|
|
224
|
-
onBack={goBack || onClose}
|
|
225
|
-
variant="minimal"
|
|
226
|
-
elevation="subtle"
|
|
227
|
-
/>
|
|
217
|
+
<>
|
|
228
218
|
|
|
229
|
-
<
|
|
230
|
-
<View className="px-screen-margin pb-space-24">
|
|
219
|
+
<View className="px-screen-margin pb-space-24">
|
|
231
220
|
{/* Account Privacy */}
|
|
232
221
|
<SettingsListGroup title={t('privacySettings.sections.account') || 'ACCOUNT PRIVACY'}>
|
|
233
222
|
<SettingsListItem
|
|
@@ -423,8 +412,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
423
412
|
)}
|
|
424
413
|
</SettingsListGroup>
|
|
425
414
|
</View>
|
|
426
|
-
|
|
427
|
-
</View>
|
|
415
|
+
</>
|
|
428
416
|
);
|
|
429
417
|
};
|
|
430
418
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
|
-
import { View, StyleSheet, ActivityIndicator
|
|
3
|
+
import { View, StyleSheet, ActivityIndicator } from 'react-native';
|
|
4
4
|
import type { BaseScreenProps } from '../types/navigation';
|
|
5
5
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
6
6
|
import { Button } from '@oxyhq/bloom/button';
|
|
@@ -142,7 +142,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
142
142
|
|
|
143
143
|
if (isLoading) {
|
|
144
144
|
return (
|
|
145
|
-
<View
|
|
145
|
+
<View className="items-center py-space-40">
|
|
146
146
|
<ActivityIndicator size="large" color={bloomTheme.colors.primary} />
|
|
147
147
|
</View>
|
|
148
148
|
);
|
|
@@ -150,7 +150,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
150
150
|
|
|
151
151
|
if (error) {
|
|
152
152
|
return (
|
|
153
|
-
|
|
153
|
+
<>
|
|
154
154
|
<View style={styles.errorHeader} className="px-screen-margin py-space-12 border-b border-border">
|
|
155
155
|
{goBack && (
|
|
156
156
|
<Button
|
|
@@ -165,14 +165,14 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
165
165
|
{t('profile.errorTitle') || 'Profile Error'}
|
|
166
166
|
</H2>
|
|
167
167
|
</View>
|
|
168
|
-
<View style={styles.errorContent} className="px-space-32 gap-space-12">
|
|
168
|
+
<View style={styles.errorContent} className="px-space-32 gap-space-12 py-space-40">
|
|
169
169
|
<Ionicons name="alert-circle" size={48} color={bloomTheme.colors.error} />
|
|
170
170
|
<Text style={styles.errorText} className="text-text">{error}</Text>
|
|
171
171
|
<Text style={styles.errorSubtext} className="text-text-secondary">
|
|
172
172
|
{t('profile.errorSubtext') || "This could happen if the user doesn't exist or the profile service is unavailable."}
|
|
173
173
|
</Text>
|
|
174
174
|
</View>
|
|
175
|
-
|
|
175
|
+
</>
|
|
176
176
|
);
|
|
177
177
|
}
|
|
178
178
|
|
|
@@ -192,8 +192,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
192
192
|
})();
|
|
193
193
|
|
|
194
194
|
return (
|
|
195
|
-
<View style={styles.
|
|
196
|
-
<ScrollView style={styles.flex} contentContainerStyle={styles.scrollContainer}>
|
|
195
|
+
<View style={styles.scrollContainer}>
|
|
197
196
|
{/* Banner Image */}
|
|
198
197
|
<View style={styles.bannerContainer} className="bg-fill-brand/20">
|
|
199
198
|
<View style={styles.flex} className="bg-fill-brand" />
|
|
@@ -243,6 +242,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
243
242
|
</View>
|
|
244
243
|
|
|
245
244
|
{/* Info Grid as a settings list group */}
|
|
245
|
+
<View className="px-screen-margin">
|
|
246
246
|
<SettingsListGroup>
|
|
247
247
|
{profile?.createdAt && (
|
|
248
248
|
<SettingsListItem
|
|
@@ -302,6 +302,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
302
302
|
/>
|
|
303
303
|
)}
|
|
304
304
|
</SettingsListGroup>
|
|
305
|
+
</View>
|
|
305
306
|
|
|
306
307
|
{/* All Stats in one row */}
|
|
307
308
|
<View style={styles.statsRow} className="px-screen-margin">
|
|
@@ -326,7 +327,6 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
326
327
|
<Text style={styles.statLabel} className="text-text-secondary">{t('profile.following') || 'Following'}</Text>
|
|
327
328
|
</View>
|
|
328
329
|
</View>
|
|
329
|
-
</ScrollView>
|
|
330
330
|
</View>
|
|
331
331
|
);
|
|
332
332
|
};
|
|
@@ -335,9 +335,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
335
335
|
// that no token class can express. Colors, spacing, radius, and typography roles
|
|
336
336
|
// live on Bloom components + NativeWind token classes.
|
|
337
337
|
const styles = StyleSheet.create({
|
|
338
|
-
container: { flex: 1 },
|
|
339
338
|
flex: { flex: 1 },
|
|
340
|
-
centerContainer: { flex: 1, justifyContent: 'center', alignItems: 'center' },
|
|
341
339
|
scrollContainer: { alignItems: 'stretch', paddingBottom: 40 },
|
|
342
340
|
bannerContainer: { height: BANNER_HEIGHT, position: 'relative', overflow: 'hidden' },
|
|
343
341
|
avatarRow: {
|
|
@@ -366,7 +364,7 @@ const styles = StyleSheet.create({
|
|
|
366
364
|
// Error state layout
|
|
367
365
|
errorHeader: { flexDirection: 'row', alignItems: 'center', gap: 16 },
|
|
368
366
|
errorTitle: { fontSize: 20 },
|
|
369
|
-
errorContent: {
|
|
367
|
+
errorContent: { justifyContent: 'center', alignItems: 'center' },
|
|
370
368
|
errorText: { fontSize: 18, fontWeight: '600', textAlign: 'center' },
|
|
371
369
|
errorSubtext: { fontSize: 14, textAlign: 'center' },
|
|
372
370
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { View
|
|
2
|
+
import { View } from 'react-native';
|
|
3
3
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
4
|
import { toast } from '@oxyhq/bloom';
|
|
5
5
|
import {
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from '@oxyhq/bloom/segmented-control';
|
|
10
10
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
11
11
|
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
12
|
-
import Header from '../components/Header';
|
|
13
12
|
import { Loading } from '@oxyhq/bloom/loading';
|
|
14
13
|
import { Text } from '@oxyhq/bloom/typography';
|
|
15
14
|
import { SettingsIcon } from '../components/SettingsIcon';
|
|
16
15
|
import { useI18n } from '../hooks/useI18n';
|
|
16
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
17
17
|
import { useOxy } from '../context/OxyContext';
|
|
18
18
|
|
|
19
19
|
type SavesTab = 'saves' | 'collections';
|
|
@@ -42,6 +42,8 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
|
|
|
42
42
|
// switched, else the personal user).
|
|
43
43
|
const { oxyServices, user } = useOxy();
|
|
44
44
|
const { t } = useI18n();
|
|
45
|
+
|
|
46
|
+
useSurfaceHeader({ title: t('saves.title') || 'Saves & Collections' });
|
|
45
47
|
const bloomTheme = useTheme();
|
|
46
48
|
const [savedItems, setSavedItems] = useState<SavedItem[]>([]);
|
|
47
49
|
const [collections, setCollections] = useState<Collection[]>([]);
|
|
@@ -87,13 +89,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
|
|
|
87
89
|
};
|
|
88
90
|
|
|
89
91
|
return (
|
|
90
|
-
|
|
91
|
-
<Header
|
|
92
|
-
title={t('saves.title') || 'Saves & Collections'}
|
|
93
|
-
onBack={goBack || onClose}
|
|
94
|
-
variant="minimal"
|
|
95
|
-
elevation="subtle"
|
|
96
|
-
/>
|
|
92
|
+
<>
|
|
97
93
|
|
|
98
94
|
{/* Tabs */}
|
|
99
95
|
<View className="px-screen-margin py-space-12 border-b border-border">
|
|
@@ -116,8 +112,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
|
|
|
116
112
|
</SegmentedControl>
|
|
117
113
|
</View>
|
|
118
114
|
|
|
119
|
-
<
|
|
120
|
-
<View className="px-screen-margin pb-space-24">
|
|
115
|
+
<View className="px-screen-margin pb-space-24">
|
|
121
116
|
{isLoading ? (
|
|
122
117
|
<Loading
|
|
123
118
|
size="large"
|
|
@@ -165,8 +160,7 @@ const SavesCollectionsScreen: React.FC<BaseScreenProps> = ({
|
|
|
165
160
|
)
|
|
166
161
|
)}
|
|
167
162
|
</View>
|
|
168
|
-
|
|
169
|
-
</View>
|
|
163
|
+
</>
|
|
170
164
|
);
|
|
171
165
|
};
|
|
172
166
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { View
|
|
2
|
+
import { View } from 'react-native';
|
|
3
3
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
|
-
import Header from '../components/Header';
|
|
5
4
|
import { Loading } from '@oxyhq/bloom/loading';
|
|
6
5
|
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
7
6
|
import { Switch } from '@oxyhq/bloom/switch';
|
|
8
7
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
9
8
|
import { SettingsIcon } from '../components/SettingsIcon';
|
|
10
9
|
import { useI18n } from '../hooks/useI18n';
|
|
10
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
11
11
|
import { useSettingToggles } from '../hooks/useSettingToggle';
|
|
12
12
|
import { useOxy } from '../context/OxyContext';
|
|
13
13
|
import type { User } from '@oxyhq/core';
|
|
@@ -26,6 +26,8 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
26
26
|
// authenticate as the active session, which IS that account.
|
|
27
27
|
const { oxyServices, user } = useOxy();
|
|
28
28
|
const { t } = useI18n();
|
|
29
|
+
|
|
30
|
+
useSurfaceHeader({ title: t('searchSettings.title') || 'Search Settings' });
|
|
29
31
|
const bloomTheme = useTheme();
|
|
30
32
|
const [isLoading, setIsLoading] = useState(true);
|
|
31
33
|
|
|
@@ -79,29 +81,16 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
79
81
|
|
|
80
82
|
if (isLoading) {
|
|
81
83
|
return (
|
|
82
|
-
|
|
83
|
-
<Header
|
|
84
|
-
title={t('searchSettings.title') || 'Search Settings'}
|
|
85
|
-
onBack={goBack || onClose}
|
|
86
|
-
variant="minimal"
|
|
87
|
-
elevation="subtle"
|
|
88
|
-
/>
|
|
84
|
+
<>
|
|
89
85
|
<Loading size="large" color={bloomTheme.colors.text} />
|
|
90
|
-
|
|
86
|
+
</>
|
|
91
87
|
);
|
|
92
88
|
}
|
|
93
89
|
|
|
94
90
|
return (
|
|
95
|
-
|
|
96
|
-
<Header
|
|
97
|
-
title={t('searchSettings.title') || 'Search Settings'}
|
|
98
|
-
onBack={goBack || onClose}
|
|
99
|
-
variant="minimal"
|
|
100
|
-
elevation="subtle"
|
|
101
|
-
/>
|
|
91
|
+
<>
|
|
102
92
|
|
|
103
|
-
<
|
|
104
|
-
<View className="px-screen-margin pb-space-24">
|
|
93
|
+
<View className="px-screen-margin pb-space-24">
|
|
105
94
|
{/* SafeSearch */}
|
|
106
95
|
<SettingsListGroup title={t('searchSettings.safeSearch.title') || 'SafeSearch'}>
|
|
107
96
|
<SettingsListItem
|
|
@@ -146,8 +135,7 @@ const SearchSettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
146
135
|
/>
|
|
147
136
|
</SettingsListGroup>
|
|
148
137
|
</View>
|
|
149
|
-
|
|
150
|
-
</View>
|
|
138
|
+
</>
|
|
151
139
|
);
|
|
152
140
|
};
|
|
153
141
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { View,
|
|
2
|
+
import { View, Linking } from 'react-native';
|
|
3
3
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
|
-
import Header from '../components/Header';
|
|
5
4
|
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
6
5
|
import { SettingsIcon } from '../components/SettingsIcon';
|
|
7
6
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
8
7
|
import { useI18n } from '../hooks/useI18n';
|
|
8
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
9
9
|
|
|
10
10
|
interface UserLinksScreenProps extends BaseScreenProps {
|
|
11
11
|
userId: string;
|
|
@@ -28,6 +28,8 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
|
|
|
28
28
|
const bloomTheme = useTheme();
|
|
29
29
|
const { t } = useI18n();
|
|
30
30
|
|
|
31
|
+
useSurfaceHeader({ title: t('userLinks.title'), subtitle: links.length !== 1 ? t('userLinks.linkCount_plural', { count: links.length }) : t('userLinks.linkCount', { count: links.length }) });
|
|
32
|
+
|
|
31
33
|
const handleLinkPress = async (url: string) => {
|
|
32
34
|
try {
|
|
33
35
|
await Linking.openURL(url);
|
|
@@ -39,17 +41,9 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
|
|
|
39
41
|
};
|
|
40
42
|
|
|
41
43
|
return (
|
|
42
|
-
|
|
43
|
-
<Header
|
|
44
|
-
title={t('userLinks.title')}
|
|
45
|
-
subtitle={links.length !== 1 ? t('userLinks.linkCount_plural', { count: links.length }) : t('userLinks.linkCount', { count: links.length })}
|
|
46
|
-
onBack={goBack}
|
|
47
|
-
variant="minimal"
|
|
48
|
-
elevation="subtle"
|
|
49
|
-
/>
|
|
44
|
+
<>
|
|
50
45
|
|
|
51
|
-
<
|
|
52
|
-
<View className="px-screen-margin pb-space-24">
|
|
46
|
+
<View className="px-screen-margin pb-space-24">
|
|
53
47
|
<SettingsListGroup title={t('userLinks.title')}>
|
|
54
48
|
{links.map((link) => (
|
|
55
49
|
<SettingsListItem
|
|
@@ -62,8 +56,7 @@ const UserLinksScreen: React.FC<UserLinksScreenProps> = ({
|
|
|
62
56
|
))}
|
|
63
57
|
</SettingsListGroup>
|
|
64
58
|
</View>
|
|
65
|
-
|
|
66
|
-
</View>
|
|
59
|
+
</>
|
|
67
60
|
);
|
|
68
61
|
};
|
|
69
62
|
|
|
@@ -12,11 +12,11 @@ import type { BaseScreenProps } from '../types/navigation';
|
|
|
12
12
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
13
13
|
import { H6, Text } from '@oxyhq/bloom/typography';
|
|
14
14
|
import { Button } from '@oxyhq/bloom/button';
|
|
15
|
-
import Header from '../components/Header';
|
|
16
15
|
import { Avatar } from '@oxyhq/bloom/avatar';
|
|
17
16
|
import FollowButton from '../components/FollowButton';
|
|
18
17
|
import { Ionicons } from '@expo/vector-icons';
|
|
19
18
|
import { useI18n } from '../hooks/useI18n';
|
|
19
|
+
import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
|
|
20
20
|
import { useOxy } from '../context/OxyContext';
|
|
21
21
|
import { logger, getAccountDisplayName, getAccountFallbackHandle } from '@oxyhq/core';
|
|
22
22
|
import type { User } from '@oxyhq/core';
|
|
@@ -46,7 +46,6 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
|
|
|
46
46
|
userId,
|
|
47
47
|
mode,
|
|
48
48
|
initialCount,
|
|
49
|
-
goBack,
|
|
50
49
|
navigate,
|
|
51
50
|
}) => {
|
|
52
51
|
const { oxyServices, user: currentUser } = useOxy();
|
|
@@ -230,11 +229,11 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
|
|
|
230
229
|
: (t('userList.following') || 'Following');
|
|
231
230
|
|
|
232
231
|
const headerSubtitle = total > 0 ? String(total) : undefined;
|
|
232
|
+
useSurfaceHeader({ title, subtitle: headerSubtitle });
|
|
233
233
|
|
|
234
234
|
if (isLoading && users.length === 0) {
|
|
235
235
|
return (
|
|
236
236
|
<View className="flex-1 bg-bg">
|
|
237
|
-
<Header title={title} onBack={goBack} elevation="subtle" />
|
|
238
237
|
<View style={styles.center}>
|
|
239
238
|
<ActivityIndicator size="large" color={bloomTheme.colors.primary} />
|
|
240
239
|
</View>
|
|
@@ -245,7 +244,6 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
|
|
|
245
244
|
if (error) {
|
|
246
245
|
return (
|
|
247
246
|
<View className="flex-1 bg-bg">
|
|
248
|
-
<Header title={title} onBack={goBack} elevation="subtle" />
|
|
249
247
|
<View style={styles.center} className="px-space-32 gap-space-16">
|
|
250
248
|
<Ionicons name="alert-circle" size={ERROR_ICON_SIZE} color={bloomTheme.colors.error} />
|
|
251
249
|
<Text className="text-text-secondary text-base text-center">{error}</Text>
|
|
@@ -259,7 +257,6 @@ const UserListScreen: React.FC<UserListScreenProps> = ({
|
|
|
259
257
|
|
|
260
258
|
return (
|
|
261
259
|
<View className="flex-1 bg-bg">
|
|
262
|
-
<Header title={title} subtitle={headerSubtitle} onBack={goBack} elevation="subtle" />
|
|
263
260
|
<FlatList
|
|
264
261
|
data={users}
|
|
265
262
|
renderItem={renderUser}
|