@oxyhq/services 6.9.44 → 6.9.45

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.
Files changed (160) hide show
  1. package/lib/commonjs/ui/components/OxyPayButton.js +4 -2
  2. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxySignInButton.js +83 -82
  4. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  5. package/lib/commonjs/ui/components/SettingRow.js +11 -5
  6. package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
  7. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +76 -121
  8. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  9. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +32 -18
  10. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  11. package/lib/commonjs/ui/components/icon/OxyIcon.js +5 -4
  12. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
  13. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +11 -9
  14. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
  15. package/lib/commonjs/ui/components/internal/PinInput.js +3 -2
  16. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
  17. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +83 -219
  18. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  19. package/lib/commonjs/ui/constants/theme.js +2 -2
  20. package/lib/commonjs/ui/constants/theme.js.map +1 -1
  21. package/lib/commonjs/ui/screens/AccountCenterScreen.js +12 -10
  22. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  23. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +70 -79
  24. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  25. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +22 -10
  26. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  27. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +141 -81
  28. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  29. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +21 -9
  30. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  31. package/lib/commonjs/ui/screens/FileManagementScreen.js +83 -50
  32. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  33. package/lib/commonjs/ui/screens/HistoryViewScreen.js +80 -101
  34. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  35. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +66 -93
  36. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/SessionManagementScreen.js +101 -66
  38. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  39. package/lib/commonjs/ui/utils/fileManagement.js +0 -21
  40. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  41. package/lib/module/ui/components/OxyPayButton.js +4 -2
  42. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  43. package/lib/module/ui/components/OxySignInButton.js +84 -83
  44. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  45. package/lib/module/ui/components/SettingRow.js +11 -5
  46. package/lib/module/ui/components/SettingRow.js.map +1 -1
  47. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +76 -122
  48. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  49. package/lib/module/ui/components/fileManagement/UploadPreview.js +32 -19
  50. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  51. package/lib/module/ui/components/icon/OxyIcon.js +5 -4
  52. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
  53. package/lib/module/ui/components/internal/GroupedPillButtons.js +11 -9
  54. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
  55. package/lib/module/ui/components/internal/PinInput.js +3 -2
  56. package/lib/module/ui/components/internal/PinInput.js.map +1 -1
  57. package/lib/module/ui/components/modals/DeleteAccountModal.js +83 -220
  58. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  59. package/lib/module/ui/constants/theme.js +2 -2
  60. package/lib/module/ui/constants/theme.js.map +1 -1
  61. package/lib/module/ui/screens/AccountCenterScreen.js +11 -10
  62. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  63. package/lib/module/ui/screens/AccountOverviewScreen.js +71 -80
  64. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  65. package/lib/module/ui/screens/AccountSettingsScreen.js +22 -10
  66. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  67. package/lib/module/ui/screens/AccountSwitcherScreen.js +140 -81
  68. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  69. package/lib/module/ui/screens/AccountVerificationScreen.js +22 -10
  70. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  71. package/lib/module/ui/screens/FileManagementScreen.js +85 -52
  72. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  73. package/lib/module/ui/screens/HistoryViewScreen.js +80 -101
  74. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  75. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +66 -94
  76. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  77. package/lib/module/ui/screens/SessionManagementScreen.js +101 -67
  78. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  79. package/lib/module/ui/utils/fileManagement.js +0 -20
  80. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  81. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +0 -1
  83. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +2 -2
  85. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  87. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  89. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  94. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -4
  105. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  106. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  107. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +0 -1
  108. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  109. package/lib/typescript/module/ui/components/SettingRow.d.ts +2 -2
  110. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +1 -1
  111. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  112. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  113. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  114. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  115. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts.map +1 -1
  116. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
  117. package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +1 -1
  118. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  119. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  120. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  121. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  122. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  124. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  125. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  126. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  127. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  128. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  129. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -4
  130. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  131. package/package.json +2 -2
  132. package/src/ui/components/OxyPayButton.tsx +5 -3
  133. package/src/ui/components/OxySignInButton.tsx +82 -81
  134. package/src/ui/components/SettingRow.tsx +14 -7
  135. package/src/ui/components/fileManagement/FileDetailsModal.tsx +69 -99
  136. package/src/ui/components/fileManagement/UploadPreview.tsx +58 -46
  137. package/src/ui/components/icon/OxyIcon.tsx +5 -4
  138. package/src/ui/components/internal/GroupedPillButtons.tsx +15 -12
  139. package/src/ui/components/internal/PinInput.tsx +4 -3
  140. package/src/ui/components/modals/DeleteAccountModal.tsx +79 -221
  141. package/src/ui/constants/theme.ts +2 -2
  142. package/src/ui/screens/AccountCenterScreen.tsx +34 -136
  143. package/src/ui/screens/AccountOverviewScreen.tsx +63 -98
  144. package/src/ui/screens/AccountSettingsScreen.tsx +21 -7
  145. package/src/ui/screens/AccountSwitcherScreen.tsx +135 -87
  146. package/src/ui/screens/AccountVerificationScreen.tsx +24 -16
  147. package/src/ui/screens/FileManagementScreen.tsx +62 -54
  148. package/src/ui/screens/HistoryViewScreen.tsx +57 -204
  149. package/src/ui/screens/PremiumSubscriptionScreen.tsx +73 -93
  150. package/src/ui/screens/SessionManagementScreen.tsx +101 -73
  151. package/src/ui/utils/fileManagement.ts +0 -30
  152. package/lib/commonjs/ui/utils/confirmAction.js +0 -28
  153. package/lib/commonjs/ui/utils/confirmAction.js.map +0 -1
  154. package/lib/module/ui/utils/confirmAction.js +0 -25
  155. package/lib/module/ui/utils/confirmAction.js.map +0 -1
  156. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts +0 -7
  157. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts.map +0 -1
  158. package/lib/typescript/module/ui/utils/confirmAction.d.ts +0 -7
  159. package/lib/typescript/module/ui/utils/confirmAction.d.ts.map +0 -1
  160. package/src/ui/utils/confirmAction.ts +0 -23
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react';
4
- import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, Alert } from 'react-native';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing } from 'react-native';
5
5
  import { Image as ExpoImage } from 'expo-image';
6
6
  // Lazy load expo-document-picker (optional dependency)
7
7
  // This allows the screen to work even if expo-document-picker is not installed
@@ -16,6 +16,8 @@ const loadDocumentPicker = async () => {
16
16
  }
17
17
  };
18
18
  import { toast } from '../../lib/sonner';
19
+ import * as Prompt from '@oxyhq/bloom/prompt';
20
+ import { usePromptControl } from '@oxyhq/bloom/prompt';
19
21
  import { Ionicons } from '@expo/vector-icons';
20
22
  // @ts-ignore - MaterialCommunityIcons is available at runtime
21
23
  import { MaterialCommunityIcons } from '@expo/vector-icons';
@@ -27,10 +29,11 @@ import { useTheme } from '@oxyhq/bloom/theme';
27
29
  import { useOxy } from "../context/OxyContext.js";
28
30
  import { useI18n } from "../hooks/useI18n.js";
29
31
  import { useUploadFile } from "../hooks/mutations/useAccountMutations.js";
30
- import { confirmAction, convertDocumentPickerAssetToFile, formatFileSize, getFileIcon, getSafeDownloadUrl } from "../utils/fileManagement.js";
32
+ import { convertDocumentPickerAssetToFile, formatFileSize, getFileIcon, getSafeDownloadUrl } from "../utils/fileManagement.js";
31
33
  import { FileViewer } from "../components/fileManagement/FileViewer.js";
32
34
  import { FileDetailsModal } from "../components/fileManagement/FileDetailsModal.js";
33
35
  import { UploadPreview } from "../components/fileManagement/UploadPreview.js";
36
+ import { useDialogControl } from '@oxyhq/bloom/dialog';
34
37
  import { fileManagementStyles } from "../components/fileManagement/styles.js";
35
38
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
36
39
  /** Extract error message from unknown error type */
@@ -108,6 +111,11 @@ const FileManagementScreen = ({
108
111
  t
109
112
  } = useI18n();
110
113
  const uploadFileMutation = useUploadFile();
114
+ // Prompt controls
115
+ const fileDeletePrompt = usePromptControl();
116
+ const bulkDeletePrompt = usePromptControl();
117
+ const visibilityChangePrompt = usePromptControl();
118
+ const [pendingDeleteFile, setPendingDeleteFile] = useState(null);
111
119
  const files = useFiles();
112
120
  // Ensure containerWidth is a number (TypeScript guard)
113
121
  const safeContainerWidth = typeof containerWidth === 'number' ? containerWidth : 400;
@@ -124,7 +132,7 @@ const FileManagementScreen = ({
124
132
  loadingMore: false
125
133
  });
126
134
  const [selectedFile, setSelectedFile] = useState(null);
127
- const [showFileDetails, setShowFileDetails] = useState(false);
135
+ const fileDetailsControl = useDialogControl();
128
136
  // In selectMode we never open the detailed viewer
129
137
  const [openedFile, setOpenedFile] = useState(null);
130
138
  const [fileContent, setFileContent] = useState(null);
@@ -863,14 +871,18 @@ const FileManagementScreen = ({
863
871
  setIsPickingDocument(false);
864
872
  }
865
873
  };
866
- const handleFileDelete = async (fileId, filename) => {
867
- // Use platform-aware confirmation dialog
868
- const confirmed = await confirmAction(t('fileManagement.confirms.deleteFile', {
869
- filename
870
- }), t('fileManagement.deleteFile'), t('fileManagement.confirm'), t('common.cancel'));
871
- if (!confirmed) {
872
- return;
873
- }
874
+ const confirmFileDelete = useCallback((fileId, filename) => {
875
+ setPendingDeleteFile({
876
+ id: fileId,
877
+ name: filename
878
+ });
879
+ fileDeletePrompt.open();
880
+ }, [fileDeletePrompt]);
881
+ const handleFileDelete = useCallback(async () => {
882
+ if (!pendingDeleteFile) return;
883
+ const {
884
+ id: fileId
885
+ } = pendingDeleteFile;
874
886
  try {
875
887
  storeSetDeleting(fileId);
876
888
  await oxyServices.deleteFile(fileId);
@@ -894,19 +906,15 @@ const FileManagementScreen = ({
894
906
  }
895
907
  } finally {
896
908
  storeSetDeleting(null);
909
+ setPendingDeleteFile(null);
897
910
  }
898
- };
911
+ }, [pendingDeleteFile, storeSetDeleting, oxyServices, loadFiles, t]);
912
+ const confirmBulkDelete = useCallback(() => {
913
+ if (selectedIds.size === 0) return;
914
+ bulkDeletePrompt.open();
915
+ }, [selectedIds.size, bulkDeletePrompt]);
899
916
  const handleBulkDelete = useCallback(async () => {
900
917
  if (selectedIds.size === 0) return;
901
- const fileMap = {};
902
- files.forEach(f => {
903
- fileMap[f.id] = f;
904
- });
905
- const selectedFiles = Array.from(selectedIds).map(id => fileMap[id]).filter(Boolean);
906
- const confirmed = await confirmAction(t('fileManagement.confirms.deleteFiles', {
907
- count: selectedFiles.length
908
- }), t('fileManagement.deleteFiles'), t('fileManagement.confirm'), t('common.cancel'));
909
- if (!confirmed) return;
910
918
  try {
911
919
  const deletePromises = Array.from(selectedIds).map(async fileId => {
912
920
  try {
@@ -1081,7 +1089,7 @@ const FileManagementScreen = ({
1081
1089
  };
1082
1090
  const showFileDetailsModal = file => {
1083
1091
  setSelectedFile(file);
1084
- setShowFileDetails(true);
1092
+ fileDetailsControl.open();
1085
1093
  };
1086
1094
  const renderSimplePhotoItem = useCallback((photo, index) => {
1087
1095
  const downloadUrl = getSafeDownloadUrlCallback(photo, 'thumb');
@@ -1325,9 +1333,7 @@ const FileManagementScreen = ({
1325
1333
  style: [fileManagementStyles.actionButton, {
1326
1334
  backgroundColor: bloomTheme.isDark ? '#400000' : '#FFEBEE'
1327
1335
  }],
1328
- onPress: () => {
1329
- handleFileDelete(file.id, file.filename);
1330
- },
1336
+ onPress: () => confirmFileDelete(file.id, file.filename),
1331
1337
  disabled: deleting === file.id,
1332
1338
  children: deleting === file.id ? /*#__PURE__*/_jsx(ActivityIndicator, {
1333
1339
  size: "small",
@@ -1504,7 +1510,7 @@ const FileManagementScreen = ({
1504
1510
  style: [fileManagementStyles.groupedActionBtn, {
1505
1511
  backgroundColor: bloomTheme.isDark ? '#400000' : '#FFEBEE'
1506
1512
  }],
1507
- onPress: () => handleFileDelete(file.id, file.filename),
1513
+ onPress: () => confirmFileDelete(file.id, file.filename),
1508
1514
  disabled: deleting === file.id,
1509
1515
  children: deleting === file.id ? /*#__PURE__*/_jsx(ActivityIndicator, {
1510
1516
  size: "small",
@@ -1525,7 +1531,7 @@ const FileManagementScreen = ({
1525
1531
  }) : undefined
1526
1532
  };
1527
1533
  });
1528
- }, [filteredFiles, theme, deleting, handleFileDownload, handleFileDelete, handleFileOpen, getSafeDownloadUrlCallback, selectMode, selectedIds]);
1534
+ }, [filteredFiles, theme, deleting, handleFileDownload, confirmFileDelete, handleFileOpen, getSafeDownloadUrlCallback, selectMode, selectedIds]);
1529
1535
 
1530
1536
  // Scroll to selected file after selection
1531
1537
  useEffect(() => {
@@ -2001,14 +2007,13 @@ const FileManagementScreen = ({
2001
2007
  onToggleDetails: () => setShowFileDetailsInViewer(!showFileDetailsInViewer),
2002
2008
  onClose: handleCloseFile,
2003
2009
  onDownload: handleFileDownload,
2004
- onDelete: handleFileDelete,
2010
+ onDelete: confirmFileDelete,
2005
2011
  isOwner: user?.id === targetUserId
2006
2012
  }), /*#__PURE__*/_jsx(FileDetailsModal, {
2007
- visible: showFileDetails,
2013
+ control: fileDetailsControl,
2008
2014
  file: selectedFile,
2009
- onClose: () => setShowFileDetails(false),
2010
2015
  onDownload: handleFileDownload,
2011
- onDelete: handleFileDelete,
2016
+ onDelete: confirmFileDelete,
2012
2017
  isOwner: user?.id === targetUserId
2013
2018
  })]
2014
2019
  });
@@ -2029,7 +2034,6 @@ const FileManagementScreen = ({
2029
2034
  elevation: "none",
2030
2035
  titleAlignment: "left"
2031
2036
  }), /*#__PURE__*/_jsx(UploadPreview, {
2032
- visible: true,
2033
2037
  pendingFiles: pendingFiles,
2034
2038
  onConfirm: handleConfirmUpload,
2035
2039
  onCancel: handleCancelUpload,
@@ -2073,28 +2077,13 @@ const FileManagementScreen = ({
2073
2077
  text: t('fileManagement.delete', {
2074
2078
  count: selectedIds.size
2075
2079
  }),
2076
- onPress: handleBulkDelete,
2080
+ onPress: confirmBulkDelete,
2077
2081
  icon: 'delete'
2078
2082
  }, {
2079
2083
  key: 'visibility',
2080
2084
  text: t('fileManagement.visibility'),
2081
2085
  onPress: () => {
2082
- // Show visibility options menu
2083
- Alert.alert(t('fileManagement.changeVisibility'), t('fileManagement.changeVisibilityConfirm', {
2084
- count: selectedIds.size
2085
- }), [{
2086
- text: t('common.cancel'),
2087
- style: 'cancel'
2088
- }, {
2089
- text: t('fileManagement.private'),
2090
- onPress: () => handleBulkVisibilityChange('private')
2091
- }, {
2092
- text: t('fileManagement.public'),
2093
- onPress: () => handleBulkVisibilityChange('public')
2094
- }, {
2095
- text: t('fileManagement.unlisted'),
2096
- onPress: () => handleBulkVisibilityChange('unlisted')
2097
- }]);
2086
+ visibilityChangePrompt.open();
2098
2087
  },
2099
2088
  icon: 'eye'
2100
2089
  }] : undefined,
@@ -2339,11 +2328,10 @@ const FileManagementScreen = ({
2339
2328
  })]
2340
2329
  })
2341
2330
  }), !selectMode && /*#__PURE__*/_jsx(FileDetailsModal, {
2342
- visible: showFileDetails,
2331
+ control: fileDetailsControl,
2343
2332
  file: selectedFile,
2344
- onClose: () => setShowFileDetails(false),
2345
2333
  onDownload: handleFileDownload,
2346
- onDelete: handleFileDelete,
2334
+ onDelete: confirmFileDelete,
2347
2335
  isOwner: user?.id === targetUserId
2348
2336
  }), !selectMode && uploading && /*#__PURE__*/_jsx(View, {
2349
2337
  style: [fileManagementStyles.uploadBannerContainer, {
@@ -2381,6 +2369,51 @@ const FileManagementScreen = ({
2381
2369
  color: colors.primary
2382
2370
  })]
2383
2371
  })
2372
+ }), /*#__PURE__*/_jsx(Prompt.Basic, {
2373
+ control: fileDeletePrompt,
2374
+ title: t('fileManagement.deleteFile') || 'Delete File',
2375
+ description: pendingDeleteFile ? t('fileManagement.confirms.deleteFile', {
2376
+ filename: pendingDeleteFile.name
2377
+ }) : '',
2378
+ onConfirm: handleFileDelete,
2379
+ confirmButtonCta: t('fileManagement.confirm') || 'Delete',
2380
+ confirmButtonColor: "negative"
2381
+ }), /*#__PURE__*/_jsx(Prompt.Basic, {
2382
+ control: bulkDeletePrompt,
2383
+ title: t('fileManagement.deleteFiles') || 'Delete Files',
2384
+ description: t('fileManagement.confirms.deleteFiles', {
2385
+ count: selectedIds.size
2386
+ }),
2387
+ onConfirm: handleBulkDelete,
2388
+ confirmButtonCta: t('fileManagement.confirm') || 'Delete',
2389
+ confirmButtonColor: "negative"
2390
+ }), /*#__PURE__*/_jsxs(Prompt.Outer, {
2391
+ control: visibilityChangePrompt,
2392
+ children: [/*#__PURE__*/_jsxs(Prompt.Content, {
2393
+ children: [/*#__PURE__*/_jsx(Prompt.TitleText, {
2394
+ children: t('fileManagement.changeVisibility') || 'Change Visibility'
2395
+ }), /*#__PURE__*/_jsx(Prompt.DescriptionText, {
2396
+ children: t('fileManagement.changeVisibilityConfirm', {
2397
+ count: selectedIds.size
2398
+ })
2399
+ })]
2400
+ }), /*#__PURE__*/_jsxs(Prompt.Actions, {
2401
+ children: [/*#__PURE__*/_jsx(Prompt.Action, {
2402
+ cta: t('fileManagement.private') || 'Private',
2403
+ onPress: () => handleBulkVisibilityChange('private'),
2404
+ color: "primary"
2405
+ }), /*#__PURE__*/_jsx(Prompt.Action, {
2406
+ cta: t('fileManagement.public') || 'Public',
2407
+ onPress: () => handleBulkVisibilityChange('public'),
2408
+ color: "primary_subtle"
2409
+ }), /*#__PURE__*/_jsx(Prompt.Action, {
2410
+ cta: t('fileManagement.unlisted') || 'Unlisted',
2411
+ onPress: () => handleBulkVisibilityChange('unlisted'),
2412
+ color: "primary_subtle"
2413
+ }), /*#__PURE__*/_jsx(Prompt.Cancel, {
2414
+ cta: t('common.cancel') || 'Cancel'
2415
+ })]
2416
+ })]
2384
2417
  })]
2385
2418
  });
2386
2419
  };