@oxy.so/services 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -11
- package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/commonjs/assets/fonts/icons/manifest.json +5 -11
- package/lib/commonjs/ui/components/FollowButton.js +15 -28
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js +10 -11
- package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthPrompt.js +3 -2
- package/lib/commonjs/ui/components/OxyAuthPrompt.js.map +1 -1
- package/lib/commonjs/ui/components/OxyConsentScreen.js +4 -2
- package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js +2 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +67 -267
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileSummaryCard.js +2 -2
- package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js +9 -49
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +3 -2
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +2 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignUpView.js +4 -2
- package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +2 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +20 -14
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +48 -85
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +35 -31
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +9 -6
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +22 -19
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +6 -3
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +6 -3
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +7 -5
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +20 -17
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +5 -3
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -6
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +36 -60
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +2 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +7 -6
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +2 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +18 -9
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +99 -200
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +8 -9
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +2 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +20 -10
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +4 -2
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +2 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +31 -33
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +22 -11
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +7 -18
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +7 -16
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +6 -6
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +23 -66
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +3 -2
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/module/assets/assets/fonts/icons/manifest.json +5 -11
- package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/module/assets/fonts/icons/manifest.json +5 -11
- package/lib/module/ui/components/FollowButton.js +15 -28
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/FollowTargetButton.js +10 -11
- package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/module/ui/components/OxyAuthPrompt.js +2 -1
- package/lib/module/ui/components/OxyAuthPrompt.js.map +1 -1
- package/lib/module/ui/components/OxyConsentScreen.js +4 -2
- package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +1 -1
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/OxySignInRequestSurface.js +2 -1
- package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +70 -269
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/ProfileSummaryCard.js +2 -2
- package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/module/ui/components/SurfaceHeaderAction.js +8 -48
- package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +2 -1
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +2 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js +2 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignUpView.js +4 -2
- package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js +2 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js +12 -6
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js +38 -75
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/fileManagement/UploadPreview.js +31 -27
- package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js +6 -3
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentMethodStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentReviewStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSuccessStep.js +4 -2
- package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSummaryStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js +4 -2
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
- package/lib/module/ui/icons/subsetGlyphMaps.js +0 -6
- package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +37 -61
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +2 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +2 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +2 -1
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +2 -1
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +18 -9
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +91 -192
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +9 -10
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +2 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +20 -10
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +4 -2
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +2 -1
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +32 -34
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +22 -11
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js +6 -17
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileListSection.js +5 -14
- package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +3 -3
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js +24 -66
- package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +2 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthPrompt.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +1 -20
- 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/SurfaceHeaderAction.d.ts +1 -5
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -6
- package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts +1 -14
- package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthPrompt.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +1 -20
- 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/SurfaceHeaderAction.d.ts +1 -5
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -6
- package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts +1 -14
- package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/src/assets/fonts/icons/manifest.json +5 -11
- package/src/ui/components/FollowButton.tsx +14 -29
- package/src/ui/components/FollowTargetButton.tsx +9 -11
- package/src/ui/components/OxyAuthPrompt.tsx +2 -7
- package/src/ui/components/OxyConsentScreen.tsx +2 -2
- package/src/ui/components/OxySignInButton.tsx +2 -2
- package/src/ui/components/OxySignInRequestSurface.tsx +1 -1
- package/src/ui/components/ProfileButton.tsx +30 -297
- package/src/ui/components/ProfileSummaryCard.tsx +1 -2
- package/src/ui/components/SurfaceHeaderAction.tsx +7 -49
- package/src/ui/components/SurfaceScreen.tsx +2 -1
- package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -1
- package/src/ui/components/authChooser/SignInEntryView.tsx +1 -1
- package/src/ui/components/authChooser/SignUpView.tsx +2 -2
- package/src/ui/components/authChooser/requestSurfaces.tsx +1 -1
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +8 -6
- package/src/ui/components/fileManagement/FileViewer.tsx +21 -50
- package/src/ui/components/fileManagement/UploadPreview.tsx +12 -29
- package/src/ui/components/modals/DeleteAccountModal.tsx +4 -3
- package/src/ui/components/payment/PaymentDetailsStep.tsx +4 -3
- package/src/ui/components/payment/PaymentMethodStep.tsx +4 -3
- package/src/ui/components/payment/PaymentReviewStep.tsx +4 -3
- package/src/ui/components/payment/PaymentSuccessStep.tsx +3 -2
- package/src/ui/components/payment/PaymentSummaryStep.tsx +4 -3
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +2 -1
- package/src/ui/components/surfaces/ActionSheetSurface.tsx +3 -2
- package/src/ui/icons/subsetGlyphMaps.ts +0 -6
- package/src/ui/screens/AccountMembersScreen.tsx +17 -65
- package/src/ui/screens/AccountSettingsScreen.tsx +1 -1
- package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
- package/src/ui/screens/AvatarCropScreen.tsx +2 -10
- package/src/ui/screens/CreateAccountScreen.tsx +1 -1
- package/src/ui/screens/FeedbackScreen.tsx +9 -9
- package/src/ui/screens/FileManagementScreen.tsx +37 -184
- package/src/ui/screens/LanguageSelectorScreen.tsx +5 -13
- package/src/ui/screens/PaymentGatewayScreen.tsx +1 -1
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +10 -10
- package/src/ui/screens/PrivacySettingsScreen.tsx +2 -2
- package/src/ui/screens/ProfileScreen.tsx +1 -1
- package/src/ui/screens/UserListScreen.tsx +17 -44
- package/src/ui/screens/WelcomeNewUserScreen.tsx +11 -11
- package/src/ui/screens/fileManagement/FileLibraryError.tsx +6 -14
- package/src/ui/screens/fileManagement/FileListSection.tsx +4 -16
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +2 -13
- package/src/ui/screens/fileManagement/UploadBar.tsx +17 -56
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +1 -1
- package/src/ui/screens/trust/TrustRulesScreen.tsx +2 -1
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +0 -61
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +0 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +0 -118
- package/lib/commonjs/ui/components/internal/PinInput.js.map +0 -1
- package/lib/module/ui/components/fileManagement/AnimatedButton.js +0 -55
- package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +0 -1
- package/lib/module/ui/components/internal/PinInput.js +0 -113
- package/lib/module/ui/components/internal/PinInput.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
- package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts +0 -23
- package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
- package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/internal/PinInput.d.ts +0 -23
- package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +0 -1
- package/src/ui/components/fileManagement/AnimatedButton.tsx +0 -64
- package/src/ui/components/internal/PinInput.tsx +0 -123
|
@@ -375,7 +375,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
375
375
|
|
|
376
376
|
<View className="flex-row gap-space-8 mt-space-24 w-full">
|
|
377
377
|
<Button
|
|
378
|
-
|
|
378
|
+
appearance="subtle" tone="neutral"
|
|
379
379
|
onPress={goBack}
|
|
380
380
|
accessibilityLabel="Go back"
|
|
381
381
|
icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
|
|
@@ -385,7 +385,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
385
385
|
</Button>
|
|
386
386
|
|
|
387
387
|
<Button
|
|
388
|
-
|
|
388
|
+
appearance="solid" tone="accent"
|
|
389
389
|
onPress={nextStep}
|
|
390
390
|
disabled={!isTypeStepValid()}
|
|
391
391
|
accessibilityLabel="Continue to next step"
|
|
@@ -485,7 +485,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
485
485
|
|
|
486
486
|
<View className="flex-row gap-space-8 mt-space-24 w-full">
|
|
487
487
|
<Button
|
|
488
|
-
|
|
488
|
+
appearance="subtle" tone="neutral"
|
|
489
489
|
onPress={prevStep}
|
|
490
490
|
accessibilityLabel="Go back"
|
|
491
491
|
icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
|
|
@@ -495,7 +495,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
495
495
|
</Button>
|
|
496
496
|
|
|
497
497
|
<Button
|
|
498
|
-
|
|
498
|
+
appearance="solid" tone="accent"
|
|
499
499
|
onPress={nextStep}
|
|
500
500
|
disabled={!isDetailsStepValid()}
|
|
501
501
|
accessibilityLabel="Continue to next step"
|
|
@@ -574,7 +574,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
574
574
|
|
|
575
575
|
<View className="flex-row gap-space-8 mt-space-24 w-full">
|
|
576
576
|
<Button
|
|
577
|
-
|
|
577
|
+
appearance="subtle" tone="neutral"
|
|
578
578
|
onPress={prevStep}
|
|
579
579
|
accessibilityLabel="Go back"
|
|
580
580
|
icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
|
|
@@ -584,7 +584,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
584
584
|
</Button>
|
|
585
585
|
|
|
586
586
|
<Button
|
|
587
|
-
|
|
587
|
+
appearance="solid" tone="accent"
|
|
588
588
|
onPress={nextStep}
|
|
589
589
|
disabled={!isContactStepValid()}
|
|
590
590
|
accessibilityLabel="Continue to summary"
|
|
@@ -653,7 +653,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
653
653
|
</View>
|
|
654
654
|
|
|
655
655
|
<Button
|
|
656
|
-
|
|
656
|
+
appearance="solid" tone="accent"
|
|
657
657
|
onPress={handleSubmitFeedback}
|
|
658
658
|
disabled={feedbackState.status === "submitting"}
|
|
659
659
|
loading={feedbackState.status === "submitting"}
|
|
@@ -670,7 +670,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
670
670
|
|
|
671
671
|
<View className="flex-row mt-space-16 w-full">
|
|
672
672
|
<Button
|
|
673
|
-
|
|
673
|
+
appearance="subtle" tone="neutral"
|
|
674
674
|
onPress={prevStep}
|
|
675
675
|
accessibilityLabel="Go back"
|
|
676
676
|
icon={<Ionicons name="arrow-back" size={16} color={colors.text} />}
|
|
@@ -701,7 +701,7 @@ const FeedbackScreen: React.FC<BaseScreenProps> = ({
|
|
|
701
701
|
"Your feedback has been submitted successfully. We'll review it and get back to you soon."}
|
|
702
702
|
</Text>
|
|
703
703
|
<Button
|
|
704
|
-
|
|
704
|
+
appearance="solid" tone="accent"
|
|
705
705
|
onPress={() => {
|
|
706
706
|
resetForm();
|
|
707
707
|
setCurrentStep(0);
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
+
import { Button } from '@oxy.so/bloom/button';
|
|
1
2
|
import type React from 'react';
|
|
2
3
|
import { useState, useCallback, useMemo, useRef } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
Text,
|
|
6
|
-
TouchableOpacity,
|
|
7
|
-
StyleSheet,
|
|
8
|
-
ScrollView,
|
|
9
|
-
ActivityIndicator,
|
|
10
|
-
RefreshControl,
|
|
11
|
-
TextInput,
|
|
12
|
-
useWindowDimensions,
|
|
13
|
-
} from 'react-native';
|
|
4
|
+
import { View, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { Text } from '@oxy.so/bloom/typography';
|
|
14
6
|
import { useQueryClient } from '@tanstack/react-query';
|
|
15
7
|
import { Image as ExpoImage } from 'expo-image';
|
|
16
8
|
import type { FileManagementScreenProps } from '../types/fileManagement';
|
|
@@ -46,11 +38,10 @@ import PhotoPickerView from './fileManagement/PhotoPickerSection';
|
|
|
46
38
|
import FileListSection, { type FileListItem } from './fileManagement/FileListSection';
|
|
47
39
|
import FileLibraryError from './fileManagement/FileLibraryError';
|
|
48
40
|
import UploadBar from './fileManagement/UploadBar';
|
|
49
|
-
import {
|
|
41
|
+
import { SegmentedControl, SegmentedControlItem } from '@oxy.so/bloom/segmented-control';
|
|
42
|
+
import { Search } from '@oxy.so/bloom/search';
|
|
50
43
|
|
|
51
|
-
//
|
|
52
|
-
// style array (interpolated backgroundColor), and the photo tiles are
|
|
53
|
-
// `expo-image` (no className remap). Everything else uses NativeWind classNames.
|
|
44
|
+
// Photo tiles use expo-image dimensions; controls use Bloom primitives.
|
|
54
45
|
// Nav-header slot layout for this screen's action row + review-mode back button.
|
|
55
46
|
const fmHeaderStyles = StyleSheet.create({
|
|
56
47
|
actionsRow: {
|
|
@@ -67,15 +58,6 @@ const fmHeaderStyles = StyleSheet.create({
|
|
|
67
58
|
});
|
|
68
59
|
|
|
69
60
|
const screenStyles = StyleSheet.create({
|
|
70
|
-
viewModeButton: {
|
|
71
|
-
paddingHorizontal: 10,
|
|
72
|
-
paddingVertical: 6,
|
|
73
|
-
borderRadius: 999,
|
|
74
|
-
minWidth: 36,
|
|
75
|
-
alignItems: 'center',
|
|
76
|
-
justifyContent: 'center',
|
|
77
|
-
marginHorizontal: 1,
|
|
78
|
-
},
|
|
79
61
|
justifiedPhotoImage: { width: '100%', height: '100%', borderRadius: 6 },
|
|
80
62
|
});
|
|
81
63
|
|
|
@@ -799,35 +781,16 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
799
781
|
},
|
|
800
782
|
// Hide action buttons when selecting (in selectMode or bulk operations mode)
|
|
801
783
|
rightElement: (!selectMode && selectedIds.size === 0) ? (
|
|
802
|
-
<View className="flex-row items-center gap-
|
|
803
|
-
{(isImage || isVideo || file.contentType.includes('pdf'))
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
<TouchableOpacity
|
|
813
|
-
className="w-[34px] h-[34px] rounded-[8px] items-center justify-center"
|
|
814
|
-
style={{ backgroundColor: colors.backgroundSecondary }}
|
|
815
|
-
onPress={() => handleFileDownload(file.id, file.filename)}
|
|
816
|
-
>
|
|
817
|
-
<Ionicons name="download" size={18} color={colors.primary} />
|
|
818
|
-
</TouchableOpacity>
|
|
819
|
-
<TouchableOpacity
|
|
820
|
-
className="w-[34px] h-[34px] rounded-[8px] items-center justify-center"
|
|
821
|
-
style={{ backgroundColor: colors.negativeSubtle }}
|
|
822
|
-
onPress={() => confirmFileDelete(file.id, file.filename)}
|
|
823
|
-
disabled={deletingId === file.id}
|
|
824
|
-
>
|
|
825
|
-
{deletingId === file.id ? (
|
|
826
|
-
<ActivityIndicator size="small" color={colors.error} />
|
|
827
|
-
) : (
|
|
828
|
-
<Ionicons name="trash" size={18} color={colors.error} />
|
|
829
|
-
)}
|
|
830
|
-
</TouchableOpacity>
|
|
784
|
+
<View className="flex-row items-center gap-1.5 ml-3">
|
|
785
|
+
{(isImage || isVideo || file.contentType.includes('pdf')) ? <Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
|
|
786
|
+
accessibilityLabel={`Preview ${file.filename}`} onPress={() => handleFileOpen(file)}
|
|
787
|
+
icon={<Ionicons name="eye" size={18} color={colors.text} />} /> : null}
|
|
788
|
+
<Button appearance="subtle" tone="neutral" size="small" iconOnly stopPropagation
|
|
789
|
+
accessibilityLabel={`Download ${file.filename}`} onPress={() => handleFileDownload(file.id, file.filename)}
|
|
790
|
+
icon={<Ionicons name="download" size={18} color={colors.text} />} />
|
|
791
|
+
<Button appearance="subtle" tone="danger" size="small" iconOnly stopPropagation loading={deletingId === file.id}
|
|
792
|
+
accessibilityLabel={`Delete ${file.filename}`} onPress={() => confirmFileDelete(file.id, file.filename)}
|
|
793
|
+
icon={<Ionicons name="trash" size={18} color={colors.error} />} />
|
|
831
794
|
</View>
|
|
832
795
|
) : undefined,
|
|
833
796
|
};
|
|
@@ -844,7 +807,6 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
844
807
|
iconColor={colors.error}
|
|
845
808
|
titleColor={colors.text}
|
|
846
809
|
descriptionColor={colors.textSecondary}
|
|
847
|
-
buttonColor={colors.primary}
|
|
848
810
|
/>
|
|
849
811
|
);
|
|
850
812
|
|
|
@@ -866,21 +828,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
866
828
|
: t('fileManagement.emptyPhotos.otherDescription')
|
|
867
829
|
} </Text>
|
|
868
830
|
{user?.id === targetUserId && (
|
|
869
|
-
<
|
|
870
|
-
className="flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]"
|
|
871
|
-
style={{ backgroundColor: colors.primary }}
|
|
872
|
-
onPress={handleFileUpload}
|
|
873
|
-
disabled={uploading || isPickingDocument}
|
|
874
|
-
>
|
|
875
|
-
{(uploading || isPickingDocument) ? (
|
|
876
|
-
<ActivityIndicator size="small" color="#FFFFFF" />
|
|
877
|
-
) : (
|
|
878
|
-
<>
|
|
879
|
-
<Ionicons name="cloud-upload" size={20} color="#FFFFFF" />
|
|
880
|
-
<Text className="text-white text-[16px] font-semibold">{t('fileManagement.uploadPhotos')}</Text>
|
|
881
|
-
</>
|
|
882
|
-
)}
|
|
883
|
-
</TouchableOpacity>
|
|
831
|
+
<Button onPress={handleFileUpload} loading={uploading || isPickingDocument}>{t('fileManagement.uploadPhotos')}</Button>
|
|
884
832
|
)}
|
|
885
833
|
</View>
|
|
886
834
|
);
|
|
@@ -934,21 +882,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
934
882
|
}
|
|
935
883
|
</Text>
|
|
936
884
|
{user?.id === targetUserId && (
|
|
937
|
-
<
|
|
938
|
-
className="flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]"
|
|
939
|
-
style={{ backgroundColor: colors.primary }}
|
|
940
|
-
onPress={handleFileUpload}
|
|
941
|
-
disabled={uploading || isPickingDocument}
|
|
942
|
-
>
|
|
943
|
-
{(uploading || isPickingDocument) ? (
|
|
944
|
-
<ActivityIndicator size="small" color="#FFFFFF" />
|
|
945
|
-
) : (
|
|
946
|
-
<>
|
|
947
|
-
<Ionicons name="cloud-upload" size={20} color="#FFFFFF" />
|
|
948
|
-
<Text className="text-white text-[16px] font-semibold">{t('fileManagement.uploadFiles')}</Text>
|
|
949
|
-
</>
|
|
950
|
-
)}
|
|
951
|
-
</TouchableOpacity>
|
|
885
|
+
<Button onPress={handleFileUpload} loading={uploading || isPickingDocument}>{t('fileManagement.uploadFiles')}</Button>
|
|
952
886
|
)}
|
|
953
887
|
</View>
|
|
954
888
|
);
|
|
@@ -1215,60 +1149,18 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
1215
1149
|
className="flex-1"
|
|
1216
1150
|
style={{ maxWidth: '80%' }}
|
|
1217
1151
|
>
|
|
1218
|
-
<
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
style={screenStyles.viewModeButton}
|
|
1229
|
-
accessibilityLabel={t('fileManagement.a11y.viewAll') || 'Show all files'}
|
|
1230
|
-
/>
|
|
1231
|
-
<AnimatedButton
|
|
1232
|
-
isSelected={viewMode === 'photos'}
|
|
1233
|
-
onPress={() => setViewMode('photos')}
|
|
1234
|
-
icon={viewMode === 'photos' ? 'image-multiple' : 'image-multiple-outline'}
|
|
1235
|
-
primaryColor={colors.primary}
|
|
1236
|
-
textColor={colors.text}
|
|
1237
|
-
style={screenStyles.viewModeButton}
|
|
1238
|
-
accessibilityLabel={t('fileManagement.a11y.viewPhotos') || 'Show photos only'}
|
|
1239
|
-
/>
|
|
1240
|
-
<AnimatedButton
|
|
1241
|
-
isSelected={viewMode === 'videos'}
|
|
1242
|
-
onPress={() => setViewMode('videos')}
|
|
1243
|
-
icon={viewMode === 'videos' ? 'video' : 'video-outline'}
|
|
1244
|
-
primaryColor={colors.primary}
|
|
1245
|
-
textColor={colors.text}
|
|
1246
|
-
style={screenStyles.viewModeButton}
|
|
1247
|
-
accessibilityLabel={t('fileManagement.a11y.viewVideos') || 'Show videos only'}
|
|
1248
|
-
/>
|
|
1249
|
-
<AnimatedButton
|
|
1250
|
-
isSelected={viewMode === 'documents'}
|
|
1251
|
-
onPress={() => setViewMode('documents')}
|
|
1252
|
-
icon={viewMode === 'documents' ? 'file-document' : 'file-document-outline'}
|
|
1253
|
-
primaryColor={colors.primary}
|
|
1254
|
-
textColor={colors.text}
|
|
1255
|
-
style={screenStyles.viewModeButton}
|
|
1256
|
-
accessibilityLabel={t('fileManagement.a11y.viewDocuments') || 'Show documents only'}
|
|
1257
|
-
/>
|
|
1258
|
-
<AnimatedButton
|
|
1259
|
-
isSelected={viewMode === 'audio'}
|
|
1260
|
-
onPress={() => setViewMode('audio')}
|
|
1261
|
-
icon={viewMode === 'audio' ? 'music-note' : 'music-note-outline'}
|
|
1262
|
-
primaryColor={colors.primary}
|
|
1263
|
-
textColor={colors.text}
|
|
1264
|
-
style={screenStyles.viewModeButton}
|
|
1265
|
-
accessibilityLabel={t('fileManagement.a11y.viewAudio') || 'Show audio only'}
|
|
1266
|
-
/>
|
|
1267
|
-
</View>
|
|
1152
|
+
<SegmentedControl type="radio" label={t('fileManagement.viewMode') || 'File type'}
|
|
1153
|
+
value={viewMode} onValueChange={setViewMode} size="small">
|
|
1154
|
+
{(['all', 'photos', 'videos', 'documents', 'audio'] as const).map(mode => (
|
|
1155
|
+
<SegmentedControlItem key={mode} value={mode} accessibilityLabel={mode}>
|
|
1156
|
+
<MaterialCommunityIcons
|
|
1157
|
+
name={({ all: 'folder-outline', photos: 'image-multiple-outline', videos: 'video-outline', documents: 'file-document-outline', audio: 'music-note-outline' } as const)[mode]}
|
|
1158
|
+
size={18} color={colors.text} />
|
|
1159
|
+
</SegmentedControlItem>
|
|
1160
|
+
))}
|
|
1161
|
+
</SegmentedControl>
|
|
1268
1162
|
</ScrollView>
|
|
1269
|
-
<
|
|
1270
|
-
className="flex-row items-center justify-center px-[10px] py-[6px] rounded-full min-w-[36px] gap-[4px]"
|
|
1271
|
-
style={{ backgroundColor: colors.card }}
|
|
1163
|
+
<Button appearance="subtle" tone="neutral" size="small"
|
|
1272
1164
|
accessibilityRole="button"
|
|
1273
1165
|
accessibilityLabel={t('fileManagement.a11y.sortBy', {
|
|
1274
1166
|
field: sortBy,
|
|
@@ -1285,7 +1177,7 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
1285
1177
|
setSortOrder(prev => prev === 'asc' ? 'desc' : 'asc');
|
|
1286
1178
|
}
|
|
1287
1179
|
}}
|
|
1288
|
-
|
|
1180
|
+
trailing={<View className="flex-row items-center gap-1">
|
|
1289
1181
|
<MaterialCommunityIcons
|
|
1290
1182
|
name={
|
|
1291
1183
|
sortBy === 'date' ? 'calendar' :
|
|
@@ -1300,58 +1192,21 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
1300
1192
|
size={14}
|
|
1301
1193
|
color={colors.textSecondary}
|
|
1302
1194
|
/>
|
|
1303
|
-
</
|
|
1195
|
+
</View>} />
|
|
1304
1196
|
{user?.id === targetUserId && (!selectMode || allowUploadInSelectMode) && (
|
|
1305
|
-
<
|
|
1306
|
-
className="h-[44px] w-[44px] rounded-[22px] items-center justify-center"
|
|
1307
|
-
style={{ backgroundColor: colors.primary }}
|
|
1308
|
-
onPress={handleFileUpload}
|
|
1309
|
-
disabled={uploading || isPickingDocument}
|
|
1310
|
-
accessibilityRole="button"
|
|
1197
|
+
<Button iconOnly onPress={handleFileUpload} loading={uploading || isPickingDocument}
|
|
1311
1198
|
accessibilityLabel={t('fileManagement.a11y.uploadFile') || 'Upload file'}
|
|
1312
|
-
|
|
1313
|
-
>
|
|
1314
|
-
{uploading ? (
|
|
1315
|
-
<View className="items-center justify-center">
|
|
1316
|
-
<ActivityIndicator size="small" color="#FFFFFF" />
|
|
1317
|
-
{uploadProgress && (
|
|
1318
|
-
<Text className="text-white text-[10px] font-semibold mt-[2px]">
|
|
1319
|
-
{uploadProgress.current}/{uploadProgress.total}
|
|
1320
|
-
</Text>
|
|
1321
|
-
)}
|
|
1322
|
-
</View>
|
|
1323
|
-
) : isPickingDocument ? (
|
|
1324
|
-
<ActivityIndicator size="small" color="#FFFFFF" />
|
|
1325
|
-
) : (
|
|
1326
|
-
<Ionicons name="add" size={22} color="#FFFFFF" />
|
|
1327
|
-
)}
|
|
1328
|
-
</TouchableOpacity>
|
|
1199
|
+
icon={<Ionicons name="add" size={22} color={colors.primaryForeground} />} />
|
|
1329
1200
|
)}
|
|
1330
1201
|
</View>
|
|
1331
1202
|
|
|
1332
1203
|
{/* Search Bar */}
|
|
1333
1204
|
{files.length > 0 && (viewMode === 'all' || files.some(f => f.contentType.startsWith('image/'))) && (
|
|
1334
|
-
<View
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
<Ionicons name="search" size={22} color={colors.icon} />
|
|
1339
|
-
<TextInput
|
|
1340
|
-
className="flex-1 text-[16px] leading-[20px]"
|
|
1341
|
-
style={{ color: colors.text }}
|
|
1342
|
-
placeholder={viewMode === 'photos' ? t('fileManagement.searchPhotos') : t('fileManagement.searchFiles')}
|
|
1343
|
-
placeholderTextColor={colors.textSecondary}
|
|
1344
|
-
value={searchQuery}
|
|
1345
|
-
onChangeText={setSearchQuery}
|
|
1205
|
+
<View className="mx-[12px] mb-[12px]">
|
|
1206
|
+
<Search
|
|
1207
|
+
label={viewMode === 'photos' ? t('fileManagement.searchPhotos') : t('fileManagement.searchFiles')}
|
|
1208
|
+
value={searchQuery} onValueChange={setSearchQuery} onClearText={() => setSearchQuery('')}
|
|
1346
1209
|
/>
|
|
1347
|
-
{searchQuery.length > 0 && (
|
|
1348
|
-
<TouchableOpacity
|
|
1349
|
-
onPress={() => setSearchQuery('')}
|
|
1350
|
-
className="p-[4px] rounded-[12px] items-center justify-center"
|
|
1351
|
-
>
|
|
1352
|
-
<Ionicons name="close-circle" size={22} color={colors.icon} />
|
|
1353
|
-
</TouchableOpacity>
|
|
1354
|
-
)}
|
|
1355
1210
|
</View>
|
|
1356
1211
|
)}
|
|
1357
1212
|
|
|
@@ -1410,8 +1265,6 @@ const FileManagementScreen: React.FC<FileManagementScreenProps> = ({
|
|
|
1410
1265
|
{!selectMode && uploading && (
|
|
1411
1266
|
<UploadBar
|
|
1412
1267
|
uploadProgress={uploadProgress}
|
|
1413
|
-
isDark={bloomTheme.isDark}
|
|
1414
|
-
colors={colors}
|
|
1415
1268
|
t={t}
|
|
1416
1269
|
/>
|
|
1417
1270
|
)}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Button } from '@oxy.so/bloom/button';
|
|
1
2
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
2
|
-
import { View, StyleSheet
|
|
3
|
+
import { View, StyleSheet } from 'react-native';
|
|
3
4
|
import type { BaseScreenProps } from '../types/navigation';
|
|
4
5
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
5
6
|
import Ionicons from '../icons/Ionicons';
|
|
@@ -196,19 +197,10 @@ const LanguageSelectorScreen: React.FC<LanguageSelectorScreenProps> = () => {
|
|
|
196
197
|
</Text>
|
|
197
198
|
</View>
|
|
198
199
|
) : canRemove ? (
|
|
199
|
-
<
|
|
200
|
-
onPress={() => handleRemove(entry.code)}
|
|
201
|
-
disabled={isBusy}
|
|
202
|
-
hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}
|
|
203
|
-
accessibilityRole="button"
|
|
200
|
+
<Button appearance="plain" tone="neutral" size="small" iconOnly stopPropagation
|
|
201
|
+
onPress={() => handleRemove(entry.code)} disabled={isBusy}
|
|
204
202
|
accessibilityLabel={`${t('language.remove')} ${entry.name}`}
|
|
205
|
-
|
|
206
|
-
<Ionicons
|
|
207
|
-
name="close-circle"
|
|
208
|
-
size={REMOVE_ICON_SIZE}
|
|
209
|
-
color={bloomTheme.colors.textSecondary}
|
|
210
|
-
/>
|
|
211
|
-
</TouchableOpacity>
|
|
203
|
+
icon={<Ionicons name="close-circle" size={REMOVE_ICON_SIZE} color={bloomTheme.colors.textSecondary} />} />
|
|
212
204
|
) : undefined
|
|
213
205
|
}
|
|
214
206
|
showChevron={false}
|
|
@@ -195,7 +195,7 @@ const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps> = (props) => {
|
|
|
195
195
|
{t('payment.errors.invalidAmount')}
|
|
196
196
|
</H4>
|
|
197
197
|
<Button
|
|
198
|
-
|
|
198
|
+
appearance="solid" tone="accent"
|
|
199
199
|
onPress={handleClose}
|
|
200
200
|
size="small"
|
|
201
201
|
icon={<Ionicons name="close" size={16} />}
|
|
@@ -599,7 +599,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
599
599
|
<View className="flex-row gap-space-12">
|
|
600
600
|
{subscription.cancelAtPeriodEnd ? (
|
|
601
601
|
<Button
|
|
602
|
-
|
|
602
|
+
appearance="solid" tone="accent"
|
|
603
603
|
onPress={handleReactivateSubscription}
|
|
604
604
|
className="flex-1"
|
|
605
605
|
accessibilityLabel={t('premium.actions.reactivate') || 'Reactivate'}
|
|
@@ -608,7 +608,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
608
608
|
</Button>
|
|
609
609
|
) : (
|
|
610
610
|
<Button
|
|
611
|
-
|
|
611
|
+
appearance="solid" tone="danger"
|
|
612
612
|
onPress={handleCancelSubscription}
|
|
613
613
|
className="flex-1"
|
|
614
614
|
accessibilityLabel={t('premium.actions.cancelSubBtn') || 'Cancel Subscription'}
|
|
@@ -618,7 +618,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
618
618
|
)}
|
|
619
619
|
|
|
620
620
|
<Button
|
|
621
|
-
|
|
621
|
+
appearance="subtle" tone="neutral"
|
|
622
622
|
onPress={() => navigate?.('PaymentGateway')}
|
|
623
623
|
className="flex-1"
|
|
624
624
|
accessibilityLabel={t('premium.actions.manageBilling') || 'Manage Billing'}
|
|
@@ -752,7 +752,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
752
752
|
|
|
753
753
|
{isCurrentPlan ? (
|
|
754
754
|
<Button
|
|
755
|
-
|
|
755
|
+
appearance="subtle" tone="neutral"
|
|
756
756
|
disabled
|
|
757
757
|
icon={<Ionicons name="checkmark-circle" size={18} color={colors.success} />}
|
|
758
758
|
accessibilityLabel={t('premium.plan.current') || 'Current Plan'}
|
|
@@ -762,7 +762,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
762
762
|
</Button>
|
|
763
763
|
) : !availability.available ? (
|
|
764
764
|
<Button
|
|
765
|
-
|
|
765
|
+
appearance="subtle" tone="neutral"
|
|
766
766
|
disabled
|
|
767
767
|
accessibilityLabel={t('premium.plan.notAvailableInApp') || 'Not Available in Current App'}
|
|
768
768
|
className="w-full"
|
|
@@ -895,7 +895,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
895
895
|
|
|
896
896
|
{isIncludedInCurrentPlan ? (
|
|
897
897
|
<Button
|
|
898
|
-
|
|
898
|
+
appearance="solid" tone="accent"
|
|
899
899
|
disabled
|
|
900
900
|
icon={<Ionicons name="checkmark-circle" size={16} color={colors.primaryForeground} />}
|
|
901
901
|
accessibilityLabel={t('premium.feature.includedInPlan') || 'Included in your plan'}
|
|
@@ -906,7 +906,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
906
906
|
) : isSubscribed ? (
|
|
907
907
|
<View className="flex-row gap-space-8">
|
|
908
908
|
<Button
|
|
909
|
-
|
|
909
|
+
appearance="subtle" tone="neutral"
|
|
910
910
|
disabled
|
|
911
911
|
icon={<Ionicons name="checkmark" size={16} color={colors.success} />}
|
|
912
912
|
accessibilityLabel={t('premium.feature.subscribed') || 'Subscribed'}
|
|
@@ -915,7 +915,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
915
915
|
{t('premium.feature.subscribed') || 'Subscribed'}
|
|
916
916
|
</Button>
|
|
917
917
|
<Button
|
|
918
|
-
|
|
918
|
+
appearance="subtle" tone="neutral"
|
|
919
919
|
onPress={() => handleFeatureUnsubscribe(feature.id)}
|
|
920
920
|
accessibilityLabel={t('premium.actions.unsubscribe') || 'Unsubscribe'}
|
|
921
921
|
className="flex-1"
|
|
@@ -925,7 +925,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
925
925
|
</View>
|
|
926
926
|
) : canPurchase ? (
|
|
927
927
|
<Button
|
|
928
|
-
|
|
928
|
+
appearance="solid" tone="accent"
|
|
929
929
|
onPress={() => handleFeatureSubscribe(feature.id)}
|
|
930
930
|
disabled={processingPayment}
|
|
931
931
|
loading={processingPayment}
|
|
@@ -936,7 +936,7 @@ const PremiumSubscriptionScreen: React.FC<BaseScreenProps> = ({
|
|
|
936
936
|
</Button>
|
|
937
937
|
) : (
|
|
938
938
|
<Button
|
|
939
|
-
|
|
939
|
+
appearance="subtle" tone="neutral"
|
|
940
940
|
disabled
|
|
941
941
|
accessibilityLabel={t('premium.feature.plansOnly') || 'Only available in subscription plans'}
|
|
942
942
|
className="w-full"
|
|
@@ -367,7 +367,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
367
367
|
title={displayName}
|
|
368
368
|
rightElement={
|
|
369
369
|
<Button
|
|
370
|
-
|
|
370
|
+
appearance="solid" tone="danger"
|
|
371
371
|
size="small"
|
|
372
372
|
onPress={() => handleUnblock(userId)}
|
|
373
373
|
>
|
|
@@ -401,7 +401,7 @@ const PrivacySettingsScreen: React.FC<BaseScreenProps> = ({
|
|
|
401
401
|
description={t('privacySettings.restrictedDescription') || 'Limited interactions'}
|
|
402
402
|
rightElement={
|
|
403
403
|
<Button
|
|
404
|
-
|
|
404
|
+
appearance="subtle" tone="neutral"
|
|
405
405
|
size="small"
|
|
406
406
|
onPress={() => handleUnrestrict(userId)}
|
|
407
407
|
>
|
|
@@ -214,7 +214,7 @@ const ProfileScreen: React.FC<ProfileScreenProps> = ({ userId, username, theme,
|
|
|
214
214
|
<View style={styles.actionButtonWrapper}>
|
|
215
215
|
{isOwnProfile ? (
|
|
216
216
|
<Button
|
|
217
|
-
|
|
217
|
+
appearance="subtle" tone="neutral"
|
|
218
218
|
size="small"
|
|
219
219
|
onPress={() => navigate?.('ManageAccount')}
|
|
220
220
|
>
|