@oxy.so/services 11.8.0 → 11.9.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.
Files changed (109) hide show
  1. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -4
  4. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/manifest.json +5 -4
  7. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +2 -1
  8. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  9. package/lib/commonjs/ui/hooks/queries/queryKeys.js +3 -1
  10. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  11. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +39 -17
  12. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  13. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +1 -0
  14. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  15. package/lib/commonjs/ui/navigation/routes.js +1 -0
  16. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  17. package/lib/commonjs/ui/navigation/surfaceRegistry.js +2 -2
  18. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  19. package/lib/commonjs/ui/screens/FileManagementScreen.js +102 -44
  20. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  21. package/lib/commonjs/ui/screens/FileTrashScreen.js +235 -0
  22. package/lib/commonjs/ui/screens/FileTrashScreen.js.map +1 -0
  23. package/lib/commonjs/ui/screens/fileManagement/trashActions.js +147 -0
  24. package/lib/commonjs/ui/screens/fileManagement/trashActions.js.map +1 -0
  25. package/lib/commonjs/ui/stores/assetStore.js +22 -7
  26. package/lib/commonjs/ui/stores/assetStore.js.map +1 -1
  27. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  28. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  29. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -4
  30. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  31. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  32. package/lib/module/assets/fonts/icons/manifest.json +5 -4
  33. package/lib/module/ui/components/fileManagement/FileViewer.js +2 -1
  34. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  35. package/lib/module/ui/hooks/queries/queryKeys.js +3 -1
  36. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  37. package/lib/module/ui/hooks/queries/useFileQueries.js +38 -17
  38. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  39. package/lib/module/ui/icons/subsetGlyphMaps.js +1 -0
  40. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  41. package/lib/module/ui/navigation/routes.js +1 -0
  42. package/lib/module/ui/navigation/routes.js.map +1 -1
  43. package/lib/module/ui/navigation/surfaceRegistry.js +2 -2
  44. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  45. package/lib/module/ui/screens/FileManagementScreen.js +102 -44
  46. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  47. package/lib/module/ui/screens/FileTrashScreen.js +232 -0
  48. package/lib/module/ui/screens/FileTrashScreen.js.map +1 -0
  49. package/lib/module/ui/screens/fileManagement/trashActions.js +138 -0
  50. package/lib/module/ui/screens/fileManagement/trashActions.js.map +1 -0
  51. package/lib/module/ui/stores/assetStore.js +22 -7
  52. package/lib/module/ui/stores/assetStore.js.map +1 -1
  53. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts +3 -0
  54. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +2 -0
  56. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +22 -6
  58. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  60. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +1 -0
  62. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  64. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +2 -0
  66. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/ui/screens/FileTrashScreen.d.ts +14 -0
  69. package/lib/typescript/commonjs/ui/screens/FileTrashScreen.d.ts.map +1 -0
  70. package/lib/typescript/commonjs/ui/screens/fileManagement/trashActions.d.ts +66 -0
  71. package/lib/typescript/commonjs/ui/screens/fileManagement/trashActions.d.ts.map +1 -0
  72. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts.map +1 -1
  73. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts +3 -0
  74. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  75. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +2 -0
  76. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  77. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +22 -6
  78. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  79. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  80. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  81. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +1 -0
  82. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  83. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  84. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  85. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +2 -0
  86. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  87. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  88. package/lib/typescript/module/ui/screens/FileTrashScreen.d.ts +14 -0
  89. package/lib/typescript/module/ui/screens/FileTrashScreen.d.ts.map +1 -0
  90. package/lib/typescript/module/ui/screens/fileManagement/trashActions.d.ts +66 -0
  91. package/lib/typescript/module/ui/screens/fileManagement/trashActions.d.ts.map +1 -0
  92. package/lib/typescript/module/ui/stores/assetStore.d.ts.map +1 -1
  93. package/package.json +5 -4
  94. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  95. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  96. package/src/assets/fonts/icons/manifest.json +5 -4
  97. package/src/ui/components/fileManagement/FileViewer.tsx +5 -1
  98. package/src/ui/hooks/queries/__tests__/fileQueries.test.ts +70 -0
  99. package/src/ui/hooks/queries/queryKeys.ts +2 -0
  100. package/src/ui/hooks/queries/useFileQueries.ts +45 -16
  101. package/src/ui/icons/subsetGlyphMaps.ts +1 -0
  102. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +9 -0
  103. package/src/ui/navigation/routes.ts +2 -0
  104. package/src/ui/navigation/surfaceRegistry.ts +4 -1
  105. package/src/ui/screens/FileManagementScreen.tsx +142 -49
  106. package/src/ui/screens/FileTrashScreen.tsx +228 -0
  107. package/src/ui/screens/fileManagement/__tests__/trashActions.test.ts +177 -0
  108. package/src/ui/screens/fileManagement/trashActions.ts +161 -0
  109. package/src/ui/stores/assetStore.ts +24 -13
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * What the file manager does when the person removes, restores or deletes a
5
+ * file (ADR 0043 D5). Pure of React and of the UI: every call takes the asset
6
+ * API and the confirmation it may need, so the decisions are testable on their
7
+ * own and the screens only render.
8
+ *
9
+ * - "Delete" in the library MOVES TO TRASH: the file stops being served, is
10
+ * kept, and can be restored from Trash. A `blocked` file (taken down after a
11
+ * content claim, D10) cannot be trashed — it is already served to nobody —
12
+ * so removing it is the permanent delete, which is its owner's to make.
13
+ * - Permanent deletion happens only from Trash (or for a blocked file). The
14
+ * API refuses to delete a file an application still uses (409, with the
15
+ * number of uses); the person is told and decides, and only then is the
16
+ * delete forced.
17
+ */
18
+
19
+ /** The part of `oxyServices.assets` these actions use. */
20
+
21
+ /** What removing a file from the library does to it. */
22
+
23
+ /** A `blocked` file is deleted (it cannot go to trash); every other is trashed. */
24
+ export function libraryRemovalFor(file) {
25
+ return file.status === 'blocked' ? 'delete' : 'trash';
26
+ }
27
+
28
+ /** The HTTP status of a failed asset call, when it carries one. */
29
+ export function errorStatus(error) {
30
+ if (error && typeof error === 'object') {
31
+ const status = error.status;
32
+ if (typeof status === 'number') return status;
33
+ const response = error.response;
34
+ if (response && typeof response.status === 'number') return response.status;
35
+ }
36
+ return undefined;
37
+ }
38
+
39
+ /** The API's machine code of a failed asset call, when it carries one. */
40
+ function errorCode(error) {
41
+ if (error && typeof error === 'object') {
42
+ const code = error.code;
43
+ if (typeof code === 'string') return code;
44
+ }
45
+ return undefined;
46
+ }
47
+
48
+ /**
49
+ * How many uses an application still has of a file the API refused to delete
50
+ * (409, `details.summary.remainingLinks`), or `null` when the refusal is not
51
+ * that one.
52
+ */
53
+ export function remainingUses(error) {
54
+ if (errorStatus(error) !== 409 || !error || typeof error !== 'object') return null;
55
+ const details = error.details;
56
+ const summary = details && typeof details === 'object' ? details.summary : undefined;
57
+ const remaining = summary && typeof summary === 'object' ? summary.remainingLinks : undefined;
58
+ return typeof remaining === 'number' && remaining > 0 ? remaining : null;
59
+ }
60
+
61
+ /** Outcome of {@link deletePermanently}. */
62
+
63
+ /**
64
+ * Delete a file for good. When applications still use it the API refuses;
65
+ * `confirmStillUsed(count)` asks the person, and only a yes forces the delete.
66
+ * A file already gone (404) is `gone` — the caller just refreshes. Any other
67
+ * failure is thrown.
68
+ */
69
+ export async function deletePermanently(assets, fileId, confirmStillUsed) {
70
+ try {
71
+ await assets.delete(fileId);
72
+ return 'deleted';
73
+ } catch (error) {
74
+ if (errorStatus(error) === 404) return 'gone';
75
+ const uses = remainingUses(error);
76
+ if (uses === null) throw error;
77
+ if (!(await confirmStillUsed(uses))) return 'cancelled';
78
+ await assets.delete(fileId, {
79
+ force: true
80
+ });
81
+ return 'deleted';
82
+ }
83
+ }
84
+
85
+ /** Outcome of {@link restoreFromTrash}. */
86
+
87
+ /**
88
+ * Bring a file back from trash. One that is no longer in trash — restored
89
+ * elsewhere, or blocked after a claim (409 `FILE_NOT_IN_TRASH`) — or no longer
90
+ * exists (404) is reported, not thrown: the trash list is just stale.
91
+ */
92
+ export async function restoreFromTrash(assets, fileId) {
93
+ try {
94
+ await assets.restore(fileId);
95
+ return 'restored';
96
+ } catch (error) {
97
+ if (errorStatus(error) === 404) return 'gone';
98
+ if (errorStatus(error) === 409 && errorCode(error) === 'FILE_NOT_IN_TRASH') {
99
+ return 'not_in_trash';
100
+ }
101
+ throw error;
102
+ }
103
+ }
104
+
105
+ /** Per-file outcome of removing several files from the library. */
106
+
107
+ /**
108
+ * Remove several files from the library at once: each goes to trash, except a
109
+ * blocked one, which is deleted (asking about remaining uses as
110
+ * {@link deletePermanently} does). One failure never stops the others.
111
+ */
112
+ export async function removeFromLibrary(assets, files, confirmStillUsed) {
113
+ const result = {
114
+ trashed: [],
115
+ deleted: [],
116
+ failed: []
117
+ };
118
+ const toTrash = files.filter(file => libraryRemovalFor(file) === 'trash');
119
+ const toDelete = files.filter(file => libraryRemovalFor(file) === 'delete');
120
+ const trashed = await Promise.allSettled(toTrash.map(file => assets.trash(file.id)));
121
+ trashed.forEach((settled, index) => {
122
+ (settled.status === 'fulfilled' ? result.trashed : result.failed).push(toTrash[index].id);
123
+ });
124
+
125
+ // One at a time: each may ask the person a question, and two questions at
126
+ // once would stack.
127
+ for (const file of toDelete) {
128
+ try {
129
+ const outcome = await deletePermanently(assets, file.id, uses => confirmStillUsed(uses, file.filename));
130
+ // `cancelled`: the person kept it; nothing to report.
131
+ if (outcome !== 'cancelled') result.deleted.push(file.id);
132
+ } catch {
133
+ result.failed.push(file.id);
134
+ }
135
+ }
136
+ return result;
137
+ }
138
+ //# sourceMappingURL=trashActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["libraryRemovalFor","file","status","errorStatus","error","response","undefined","errorCode","code","remainingUses","details","summary","remaining","remainingLinks","deletePermanently","assets","fileId","confirmStillUsed","delete","uses","force","restoreFromTrash","restore","removeFromLibrary","files","result","trashed","deleted","failed","toTrash","filter","toDelete","Promise","allSettled","map","trash","id","forEach","settled","index","push","outcome","filename"],"sourceRoot":"../../../../../src","sources":["ui/screens/fileManagement/trashActions.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  import { create } from 'zustand';
4
+ /**
5
+ * Whether a link is the given application's use. The Oxy API names the using
6
+ * application by ID (`applicationId`, mirrored in `app` since ADR 0043 D4);
7
+ * a link added locally before the server answered may still carry the name
8
+ * the caller passed in `app`. Either matches.
9
+ */
10
+ function linkIsApp(link, app) {
11
+ return (link.applicationId ?? link.app) === app || link.app === app;
12
+ }
13
+ function sameLink(link, app, entityType, entityId) {
14
+ return linkIsApp(link, app) && link.entityType === entityType && link.entityId === entityId;
15
+ }
4
16
  const initialState = {
5
17
  assets: {},
6
18
  uploadProgress: {},
@@ -86,12 +98,13 @@ export const useAssetStore = create((set, get) => ({
86
98
  if (!asset) return state;
87
99
 
88
100
  // Check if link already exists
89
- const existingLink = asset.links.find(l => l.app === link.app && l.entityType === link.entityType && l.entityId === link.entityId);
101
+ const existingLink = asset.links.find(l => sameLink(l, link.applicationId ?? link.app, link.entityType, link.entityId) || sameLink(l, link.app, link.entityType, link.entityId));
90
102
  if (existingLink) return state;
91
103
  const updatedAsset = {
92
104
  ...asset,
93
105
  links: [...asset.links, link],
94
- usageCount: asset.links.length + 1
106
+ usageCount: asset.links.length + 1,
107
+ inUse: true
95
108
  };
96
109
  return {
97
110
  assets: {
@@ -105,12 +118,14 @@ export const useAssetStore = create((set, get) => ({
105
118
  set(state => {
106
119
  const asset = state.assets[assetId];
107
120
  if (!asset) return state;
108
- const filteredLinks = asset.links.filter(link => !(link.app === app && link.entityType === entityType && link.entityId === entityId));
121
+ const filteredLinks = asset.links.filter(link => !sameLink(link, app, entityType, entityId));
109
122
  const updatedAsset = {
110
123
  ...asset,
111
124
  links: filteredLinks,
112
125
  usageCount: filteredLinks.length,
113
- status: filteredLinks.length === 0 ? 'trash' : asset.status
126
+ // The last link going never trashes the file (ADR 0043 D5): it stays
127
+ // where it is and is only no longer in use.
128
+ inUse: filteredLinks.length > 0
114
129
  };
115
130
  return {
116
131
  assets: {
@@ -180,13 +195,13 @@ export const useAssetStore = create((set, get) => ({
180
195
  const {
181
196
  assets
182
197
  } = get();
183
- return Object.values(assets).filter(asset => asset.links.some(link => link.app === app));
198
+ return Object.values(assets).filter(asset => asset.links.some(link => linkIsApp(link, app)));
184
199
  },
185
200
  getAssetsByEntity: (app, entityType, entityId) => {
186
201
  const {
187
202
  assets
188
203
  } = get();
189
- return Object.values(assets).filter(asset => asset.links.some(link => link.app === app && link.entityType === entityType && link.entityId === entityId));
204
+ return Object.values(assets).filter(asset => asset.links.some(link => sameLink(link, app, entityType, entityId)));
190
205
  },
191
206
  getAssetUsageCount: assetId => {
192
207
  const {
@@ -201,7 +216,7 @@ export const useAssetStore = create((set, get) => ({
201
216
  } = get();
202
217
  const asset = assets[assetId];
203
218
  if (!asset) return false;
204
- return asset.links.some(link => link.app === app && link.entityType === entityType && link.entityId === entityId);
219
+ return asset.links.some(link => sameLink(link, app, entityType, entityId));
205
220
  },
206
221
  // Reset store
207
222
  reset: () => {
@@ -1 +1 @@
1
- {"version":3,"names":["create","initialState","assets","uploadProgress","loading","uploading","linking","deleting","errors","useAssetStore","set","get","setAsset","asset","state","id","mergeAsset","patch","setAssets","assetMap","reduce","acc","removeAsset","assetId","removed","rest","setUploadProgress","fileId","progress","removeUploadProgress","addLink","link","existingLink","links","find","l","app","entityType","entityId","updatedAsset","usageCount","length","removeLink","filteredLinks","filter","status","setUploading","setLinking","setDeleting","setUploadError","error","upload","setLinkError","setDeleteError","delete","clearErrors","getAssetsByApp","Object","values","some","getAssetsByEntity","getAssetUsageCount","isAssetLinked","reset","useAssets","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked"],"sourceRoot":"../../../../src","sources":["ui/stores/assetStore.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","linkIsApp","link","app","applicationId","sameLink","entityType","entityId","initialState","assets","uploadProgress","loading","uploading","linking","deleting","errors","useAssetStore","set","get","setAsset","asset","state","id","mergeAsset","patch","setAssets","assetMap","reduce","acc","removeAsset","assetId","removed","rest","setUploadProgress","fileId","progress","removeUploadProgress","addLink","existingLink","links","find","l","updatedAsset","usageCount","length","inUse","removeLink","filteredLinks","filter","setUploading","setLinking","setDeleting","setUploadError","error","upload","setLinkError","setDeleteError","delete","clearErrors","getAssetsByApp","Object","values","some","getAssetsByEntity","getAssetUsageCount","isAssetLinked","reset","useAssets","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked"],"sourceRoot":"../../../../src","sources":["ui/stores/assetStore.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAGhC;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAACC,IAAe,EAAEC,GAAW,EAAW;EACxD,OAAO,CAACD,IAAI,CAACE,aAAa,IAAIF,IAAI,CAACC,GAAG,MAAMA,GAAG,IAAID,IAAI,CAACC,GAAG,KAAKA,GAAG;AACrE;AAEA,SAASE,QAAQA,CAACH,IAAe,EAAEC,GAAW,EAAEG,UAAkB,EAAEC,QAAgB,EAAW;EAC7F,OAAON,SAAS,CAACC,IAAI,EAAEC,GAAG,CAAC,IAAID,IAAI,CAACI,UAAU,KAAKA,UAAU,IAAIJ,IAAI,CAACK,QAAQ,KAAKA,QAAQ;AAC7F;AA4DA,MAAMC,YAAY,GAAG;EACnBC,MAAM,EAAE,CAAC,CAAC;EACVC,cAAc,EAAE,CAAC,CAAC;EAClBC,OAAO,EAAE;IACPC,SAAS,EAAE,KAAK;IAChBC,OAAO,EAAE,KAAK;IACdC,QAAQ,EAAE;EACZ,CAAC;EACDC,MAAM,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGhB,MAAM,CAAa,CAACiB,GAAG,EAAEC,GAAG,MAAM;EAC7D,GAAGV,YAAY;EAEf;EACAW,QAAQ,EAAGC,KAAY,IAAK;IAC1BH,GAAG,CAAEI,KAAK,KAAM;MACdZ,MAAM,EAAE;QACN,GAAGY,KAAK,CAACZ,MAAM;QACf,CAACW,KAAK,CAACE,EAAE,GAAGF;MACd;IACF,CAAC,CAAC,CAAC;EACL,CAAC;EAEDG,UAAU,EAAGC,KAAK,IAAK;IACrBP,GAAG,CAAEI,KAAK,KAAM;MACdZ,MAAM,EAAE;QACN,GAAGY,KAAK,CAACZ,MAAM;QACf;QACA,CAACe,KAAK,CAACF,EAAE,GAAG;UAAE,GAAGD,KAAK,CAACZ,MAAM,CAACe,KAAK,CAACF,EAAE,CAAC;UAAE,GAAGE;QAAM;MACpD;IACF,CAAC,CAAC,CAAC;EACL,CAAC;EAEDC,SAAS,EAAGhB,MAAe,IAAK;IAC9BQ,GAAG,CAAEI,KAAK,IAAK;MACb,MAAMK,QAAQ,GAAGjB,MAAM,CAACkB,MAAM,CAC5B,CAACC,GAAG,EAAER,KAAK,KAAK;QACdQ,GAAG,CAACR,KAAK,CAACE,EAAE,CAAC,GAAGF,KAAK;QACrB,OAAOQ,GAAG;MACZ,CAAC,EACD,CAAC,CACH,CAAC;MAED,OAAO;QACLnB,MAAM,EAAE;UACN,GAAGY,KAAK,CAACZ,MAAM;UACf,GAAGiB;QACL;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEDG,WAAW,EAAGC,OAAe,IAAK;IAChCb,GAAG,CAAEI,KAAK,IAAK;MACb,MAAM;QAAE,CAACS,OAAO,GAAGC,OAAO;QAAE,GAAGC;MAAK,CAAC,GAAGX,KAAK,CAACZ,MAAM;MACpD,OAAO;QAAEA,MAAM,EAAEuB;MAAK,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC;EAED;EACAC,iBAAiB,EAAEA,CAACC,MAAc,EAAEC,QAA6B,KAAK;IACpElB,GAAG,CAAEI,KAAK,KAAM;MACdX,cAAc,EAAE;QACd,GAAGW,KAAK,CAACX,cAAc;QACvB,CAACwB,MAAM,GAAGC;MACZ;IACF,CAAC,CAAC,CAAC;EACL,CAAC;EAEDC,oBAAoB,EAAGF,MAAc,IAAK;IACxCjB,GAAG,CAAEI,KAAK,IAAK;MACb,MAAM;QAAE,CAACa,MAAM,GAAGH,OAAO;QAAE,GAAGC;MAAK,CAAC,GAAGX,KAAK,CAACX,cAAc;MAC3D,OAAO;QAAEA,cAAc,EAAEsB;MAAK,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC;EAED;EACAK,OAAO,EAAEA,CAACP,OAAe,EAAE5B,IAAe,KAAK;IAC7Ce,GAAG,CAAEI,KAAK,IAAK;MACb,MAAMD,KAAK,GAAGC,KAAK,CAACZ,MAAM,CAACqB,OAAO,CAAC;MACnC,IAAI,CAACV,KAAK,EAAE,OAAOC,KAAK;;MAExB;MACA,MAAMiB,YAAY,GAAGlB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAClCC,CAAY,IACXpC,QAAQ,CAACoC,CAAC,EAAEvC,IAAI,CAACE,aAAa,IAAIF,IAAI,CAACC,GAAG,EAAED,IAAI,CAACI,UAAU,EAAEJ,IAAI,CAACK,QAAQ,CAAC,IAC3EF,QAAQ,CAACoC,CAAC,EAAEvC,IAAI,CAACC,GAAG,EAAED,IAAI,CAACI,UAAU,EAAEJ,IAAI,CAACK,QAAQ,CACxD,CAAC;MAED,IAAI+B,YAAY,EAAE,OAAOjB,KAAK;MAE9B,MAAMqB,YAAY,GAAG;QACnB,GAAGtB,KAAK;QACRmB,KAAK,EAAE,CAAC,GAAGnB,KAAK,CAACmB,KAAK,EAAErC,IAAI,CAAC;QAC7ByC,UAAU,EAAEvB,KAAK,CAACmB,KAAK,CAACK,MAAM,GAAG,CAAC;QAClCC,KAAK,EAAE;MACT,CAAC;MAED,OAAO;QACLpC,MAAM,EAAE;UACN,GAAGY,KAAK,CAACZ,MAAM;UACf,CAACqB,OAAO,GAAGY;QACb;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAEDI,UAAU,EAAEA,CAAChB,OAAe,EAAE3B,GAAW,EAAEG,UAAkB,EAAEC,QAAgB,KAAK;IAClFU,GAAG,CAAEI,KAAK,IAAK;MACb,MAAMD,KAAK,GAAGC,KAAK,CAACZ,MAAM,CAACqB,OAAO,CAAC;MACnC,IAAI,CAACV,KAAK,EAAE,OAAOC,KAAK;MAExB,MAAM0B,aAAa,GAAG3B,KAAK,CAACmB,KAAK,CAACS,MAAM,CACrC9C,IAAe,IAAK,CAACG,QAAQ,CAACH,IAAI,EAAEC,GAAG,EAAEG,UAAU,EAAEC,QAAQ,CAChE,CAAC;MAED,MAAMmC,YAAY,GAAG;QACnB,GAAGtB,KAAK;QACRmB,KAAK,EAAEQ,aAAa;QACpBJ,UAAU,EAAEI,aAAa,CAACH,MAAM;QAChC;QACA;QACAC,KAAK,EAAEE,aAAa,CAACH,MAAM,GAAG;MAChC,CAAC;MAED,OAAO;QACLnC,MAAM,EAAE;UACN,GAAGY,KAAK,CAACZ,MAAM;UACf,CAACqB,OAAO,GAAGY;QACb;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EAED;EACAO,YAAY,EAAGrC,SAAkB,IAAK;IACpCK,GAAG,CAAEI,KAAK,KAAM;MACdV,OAAO,EAAE;QAAE,GAAGU,KAAK,CAACV,OAAO;QAAEC;MAAU;IACzC,CAAC,CAAC,CAAC;EACL,CAAC;EAEDsC,UAAU,EAAGrC,OAAgB,IAAK;IAChCI,GAAG,CAAEI,KAAK,KAAM;MACdV,OAAO,EAAE;QAAE,GAAGU,KAAK,CAACV,OAAO;QAAEE;MAAQ;IACvC,CAAC,CAAC,CAAC;EACL,CAAC;EAEDsC,WAAW,EAAGrC,QAAiB,IAAK;IAClCG,GAAG,CAAEI,KAAK,KAAM;MACdV,OAAO,EAAE;QAAE,GAAGU,KAAK,CAACV,OAAO;QAAEG;MAAS;IACxC,CAAC,CAAC,CAAC;EACL,CAAC;EAED;EACAsC,cAAc,EAAGC,KAAc,IAAK;IAClCpC,GAAG,CAAEI,KAAK,KAAM;MACdN,MAAM,EAAE;QAAE,GAAGM,KAAK,CAACN,MAAM;QAAEuC,MAAM,EAAED;MAAM;IAC3C,CAAC,CAAC,CAAC;EACL,CAAC;EAEDE,YAAY,EAAGF,KAAc,IAAK;IAChCpC,GAAG,CAAEI,KAAK,KAAM;MACdN,MAAM,EAAE;QAAE,GAAGM,KAAK,CAACN,MAAM;QAAEb,IAAI,EAAEmD;MAAM;IACzC,CAAC,CAAC,CAAC;EACL,CAAC;EAEDG,cAAc,EAAGH,KAAc,IAAK;IAClCpC,GAAG,CAAEI,KAAK,KAAM;MACdN,MAAM,EAAE;QAAE,GAAGM,KAAK,CAACN,MAAM;QAAE0C,MAAM,EAAEJ;MAAM;IAC3C,CAAC,CAAC,CAAC;EACL,CAAC;EAEDK,WAAW,EAAEA,CAAA,KAAM;IACjBzC,GAAG,CAAC;MAAEF,MAAM,EAAE,CAAC;IAAE,CAAC,CAAC;EACrB,CAAC;EAED;EACA4C,cAAc,EAAGxD,GAAW,IAAK;IAC/B,MAAM;MAAEM;IAAO,CAAC,GAAGS,GAAG,CAAC,CAAC;IACxB,OAAO0C,MAAM,CAACC,MAAM,CAACpD,MAAM,CAAC,CAACuC,MAAM,CAAE5B,KAAK,IACxCA,KAAK,CAACmB,KAAK,CAACuB,IAAI,CAAE5D,IAAe,IAAKD,SAAS,CAACC,IAAI,EAAEC,GAAG,CAAC,CAC5D,CAAC;EACH,CAAC;EAED4D,iBAAiB,EAAEA,CAAC5D,GAAW,EAAEG,UAAkB,EAAEC,QAAgB,KAAK;IACxE,MAAM;MAAEE;IAAO,CAAC,GAAGS,GAAG,CAAC,CAAC;IACxB,OAAO0C,MAAM,CAACC,MAAM,CAACpD,MAAM,CAAC,CAACuC,MAAM,CAAE5B,KAAK,IACxCA,KAAK,CAACmB,KAAK,CAACuB,IAAI,CAAE5D,IAAe,IAAKG,QAAQ,CAACH,IAAI,EAAEC,GAAG,EAAEG,UAAU,EAAEC,QAAQ,CAAC,CACjF,CAAC;EACH,CAAC;EAEDyD,kBAAkB,EAAGlC,OAAe,IAAK;IACvC,MAAM;MAAErB;IAAO,CAAC,GAAGS,GAAG,CAAC,CAAC;IACxB,MAAME,KAAK,GAAGX,MAAM,CAACqB,OAAO,CAAC;IAC7B,OAAOV,KAAK,GAAGA,KAAK,CAACuB,UAAU,GAAG,CAAC;EACrC,CAAC;EAEDsB,aAAa,EAAEA,CAACnC,OAAe,EAAE3B,GAAW,EAAEG,UAAkB,EAAEC,QAAgB,KAAK;IACrF,MAAM;MAAEE;IAAO,CAAC,GAAGS,GAAG,CAAC,CAAC;IACxB,MAAME,KAAK,GAAGX,MAAM,CAACqB,OAAO,CAAC;IAC7B,IAAI,CAACV,KAAK,EAAE,OAAO,KAAK;IAExB,OAAOA,KAAK,CAACmB,KAAK,CAACuB,IAAI,CAAE5D,IAAe,IAAKG,QAAQ,CAACH,IAAI,EAAEC,GAAG,EAAEG,UAAU,EAAEC,QAAQ,CAAC,CAAC;EACzF,CAAC;EAED;EACA2D,KAAK,EAAEA,CAAA,KAAM;IACXjD,GAAG,CAACT,YAAY,CAAC;EACnB;AACF,CAAC,CAAC,CAAC;;AAEH;AACA,OAAO,MAAM2D,SAAS,GAAGA,CAAA,KAAMnD,aAAa,CAAEK,KAAK,IAAKuC,MAAM,CAACC,MAAM,CAACxC,KAAK,CAACZ,MAAM,CAAC,CAAC;AACpF,OAAO,MAAM2D,QAAQ,GAAItC,OAAe,IAAKd,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAACZ,MAAM,CAACqB,OAAO,CAAC,CAAC;AAC5F,OAAO,MAAMuC,iBAAiB,GAAGA,CAAA,KAAMrD,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAACX,cAAc,CAAC;AACrF,OAAO,MAAM4D,eAAe,GAAGA,CAAA,KAAMtD,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAACV,OAAO,CAAC;AAC5E,OAAO,MAAM4D,cAAc,GAAGA,CAAA,KAAMvD,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAACN,MAAM,CAAC;;AAE1E;AACA,OAAO,MAAMyD,cAAc,GAAIrE,GAAW,IAAKa,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAACsC,cAAc,CAACxD,GAAG,CAAC,CAAC;AAElG,OAAO,MAAMsE,iBAAiB,GAAGA,CAACtE,GAAW,EAAEG,UAAkB,EAAEC,QAAgB,KACjFS,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAAC0C,iBAAiB,CAAC5D,GAAG,EAAEG,UAAU,EAAEC,QAAQ,CAAC,CAAC;AAE9E,OAAO,MAAMmE,kBAAkB,GAAI5C,OAAe,IAChDd,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAAC2C,kBAAkB,CAAClC,OAAO,CAAC,CAAC;AAE7D,OAAO,MAAM6C,gBAAgB,GAAGA,CAC9B7C,OAAe,EACf3B,GAAW,EACXG,UAAkB,EAClBC,QAAgB,KACbS,aAAa,CAAEK,KAAK,IAAKA,KAAK,CAAC4C,aAAa,CAACnC,OAAO,EAAE3B,GAAG,EAAEG,UAAU,EAAEC,QAAQ,CAAC,CAAC","ignoreList":[]}
@@ -8,7 +8,10 @@ interface FileViewerProps {
8
8
  onToggleDetails: () => void;
9
9
  onClose: () => void;
10
10
  onDownload: (fileId: string, filename: string) => void;
11
+ /** Removes the file from the library: to trash, or for good if it is blocked. */
11
12
  onDelete: (fileId: string, filename: string) => void;
13
+ /** The remove button's label — "Move to trash", or "Delete" for a blocked file. */
14
+ deleteLabel: string;
12
15
  isOwner: boolean;
13
16
  }
14
17
  export declare const FileViewer: React.FC<FileViewerProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"FileViewer.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/fileManagement/FileViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,UAAU,eAAe;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AA0BD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsWhD,CAAC"}
1
+ {"version":3,"file":"FileViewer.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/fileManagement/FileViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,UAAU,eAAe;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,iFAAiF;IACjF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0BD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuWhD,CAAC"}
@@ -78,6 +78,8 @@ export declare const queryKeys: {
78
78
  readonly files: {
79
79
  readonly all: readonly ["files"];
80
80
  readonly list: (ownerId?: string) => readonly ["files", "list", string];
81
+ /** The owner's trash (ADR 0043 D5) — under `files.all`, so one invalidation covers both. */
82
+ readonly trash: (ownerId?: string) => readonly ["files", "trash", string];
81
83
  };
82
84
  readonly connectedApps: {
83
85
  readonly all: readonly ["connectedApps"];
@@ -1 +1 @@
1
- {"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/queryKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,eAAO,MAAM,SAAS;;;;oCAKC,MAAM,EAAE;;qCAEP,MAAM;uCACJ,MAAM,GAAG,IAAI;;;;;;iCAWnB,MAAM,EAAE;;kCAEP,MAAM;QACvB,yFAAyF;2CAC/D,MAAM,YAAY,MAAM;QAElD;;;;;WAKG;wCACoB,MAAM,YAAY,MAAM;sCAQ1B,MAAM;;;;;iCAOX,MAAM;;qCAEF,MAAM;;oCAEP,MAAM;;;;;uCAOH,MAAM;;oCAET,MAAM;;;;qCAML,MAAM;QAE1B,uDAAuD;kCACtC,MAAM;;;;oCAMJ,MAAM,WAAW,MAAM,cAAc,MAAM;iCAE9C,MAAM;mCACJ,MAAM,cAAc,MAAM;;IAK9C,4GAA4G;;;oCAGvF,MAAM;;;;iCAKT,MAAM;;;;wCAMC,MAAM;;;;kCAOZ,MAAM;;;;;;;;kCAYN,MAAM;;;;oCAMJ,MAAM;wCAEF,MAAM,GAAG,SAAS,SAAS,MAAM;;;;;;iCASxC,MAAM;;;;yCAME,MAAM;oCAEX,MAAM;mCAEP,MAAM;8CAEK,MAAM,WAAW,MAAM,WAAW,MAAM;;CAU/D,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,aAAa,WAAW,KAAG,IAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,aAAa,WAAW,KAAG,IAElE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,aAAa,WAAW,KAAG,IAEpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,WAAW,KAAG,IAEvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,aAAa,WAAW,KAAG,IAEpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,aAAa,WAAW,KAAG,IAEzE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,aAAa,WAAW,KAAG,IAEhE,CAAC"}
1
+ {"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/queryKeys.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,eAAO,MAAM,SAAS;;;;oCAKC,MAAM,EAAE;;qCAEP,MAAM;uCACJ,MAAM,GAAG,IAAI;;;;;;iCAWnB,MAAM,EAAE;;kCAEP,MAAM;QACvB,yFAAyF;2CAC/D,MAAM,YAAY,MAAM;QAElD;;;;;WAKG;wCACoB,MAAM,YAAY,MAAM;sCAQ1B,MAAM;;;;;iCAOX,MAAM;;qCAEF,MAAM;;oCAEP,MAAM;;;;;uCAOH,MAAM;;oCAET,MAAM;;;;qCAML,MAAM;QAE1B,uDAAuD;kCACtC,MAAM;;;;oCAMJ,MAAM,WAAW,MAAM,cAAc,MAAM;iCAE9C,MAAM;mCACJ,MAAM,cAAc,MAAM;;IAK9C,4GAA4G;;;oCAGvF,MAAM;;;;iCAKT,MAAM;;;;wCAMC,MAAM;;;;kCAOZ,MAAM;QACvB,4FAA4F;mCAC1E,MAAM;;;;;;;;kCAYP,MAAM;;;;oCAMJ,MAAM;wCAEF,MAAM,GAAG,SAAS,SAAS,MAAM;;;;;;iCASxC,MAAM;;;;yCAME,MAAM;oCAEX,MAAM;mCAEP,MAAM;8CAEK,MAAM,WAAW,MAAM,WAAW,MAAM;;CAU/D,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,aAAa,WAAW,KAAG,IAEhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,aAAa,WAAW,KAAG,IAElE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,aAAa,WAAW,KAAG,IAEpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,aAAa,WAAW,KAAG,IAEnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,aAAa,WAAW,KAAG,IAEvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,aAAa,WAAW,KAAG,IAEpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,aAAa,WAAW,KAAG,IAEzE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,aAAa,WAAW,KAAG,IAEhE,CAAC"}
@@ -22,6 +22,12 @@ export interface RawUserFile {
22
22
  createdAt?: string;
23
23
  metadata?: Record<string, unknown>;
24
24
  variants?: unknown[];
25
+ /** Whether any application uses the file (ADR 0043 D5). */
26
+ inUse?: boolean;
27
+ /** `blocked`: taken down after a content claim (ADR 0043 D10). */
28
+ status?: string;
29
+ /** When the owner moved it to trash (ADR 0043 D5). */
30
+ trashedAt?: string | null;
25
31
  }
26
32
  /** One page of the infinite file list. */
27
33
  export interface UserFilesPage {
@@ -33,16 +39,26 @@ export interface UserFilesPage {
33
39
  export type UserFilesInfinite = InfiniteData<UserFilesPage>;
34
40
  /** Normalize a raw API file record into the client `FileMetadata` shape. */
35
41
  export declare function mapRawFileToMetadata(raw: RawUserFile): FileMetadata;
42
+ /** Which of the owner's files a page lists: the library, or the trash (ADR 0043 D5). */
43
+ export type UserFilesListing = 'library' | 'trash';
44
+ /** Map one `oxyServices.assets.list` response onto a page. */
45
+ export declare function toUserFilesPage(response: {
46
+ files?: unknown[];
47
+ total?: number;
48
+ hasMore?: boolean;
49
+ }, offset: number): UserFilesPage;
36
50
  /**
37
- * Infinite-paginated list of the owner's files. Fires on mount and whenever
38
- * `ownerId` changes (a new key); `staleTime: 0` reloads on every open. The
39
- * rendered list is `data.pages.flatMap(p => p.files)`.
51
+ * Infinite-paginated list of the owner's files: the LIBRARY (active files, and
52
+ * blocked ones shown as removed after a claim) or, with `listing: 'trash'`,
53
+ * what the owner moved to trash, most recently trashed first. Fires on mount
54
+ * and whenever `ownerId` changes (a new key); `staleTime: 0` reloads on every
55
+ * open. The rendered list is `data.pages.flatMap(p => p.files)`.
40
56
  */
41
- export declare const useUserFilesInfinite: (ownerId?: string) => import("@tanstack/react-query").UseInfiniteQueryResult<InfiniteData<UserFilesPage, unknown>, Error>;
57
+ export declare const useUserFilesInfinite: (ownerId?: string, listing?: UserFilesListing) => import("@tanstack/react-query").UseInfiniteQueryResult<InfiniteData<UserFilesPage, unknown>, Error>;
42
58
  /** Prepend an (optimistic) file to the first page. */
43
59
  export declare function prependFileToCache(queryClient: QueryClient, ownerId: string | undefined, file: FileMetadata): void;
44
- /** Remove a file (by id) from every page. */
45
- export declare function removeFileFromCache(queryClient: QueryClient, ownerId: string | undefined, fileId: string): void;
60
+ /** Remove a file (by id) from every page of the library, or of the trash. */
61
+ export declare function removeFileFromCache(queryClient: QueryClient, ownerId: string | undefined, fileId: string, listing?: UserFilesListing): void;
46
62
  /** Swap an optimistic file (by id) for its persisted counterpart. */
47
63
  export declare function replaceFileInCache(queryClient: QueryClient, ownerId: string | undefined, oldId: string, newFile: FileMetadata): void;
48
64
  /** Shallow-merge a metadata patch into a cached file (e.g. visibility change). */
@@ -1 +1 @@
1
- {"version":3,"file":"useFileQueries.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/useFileQueries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,8BAA8B;AAC9B,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE5D,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAWnE;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,wGAsBpD,CAAC;AAiBF,sDAAsD;AACtD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,YAAY,GACjB,IAAI,CAUN;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,GACb,IAAI,CAIN;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,IAAI,CAIN;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,IAAI,CAYN"}
1
+ {"version":3,"file":"useFileQueries.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/hooks/queries/useFileQueries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAoB,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,8BAA8B;AAC9B,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE5D,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAgBnE;AAED,wFAAwF;AACxF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnD,8DAA8D;AAC9D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAClE,MAAM,EAAE,MAAM,GACb,aAAa,CAQf;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,EAAE,UAAS,gBAA4B,wGAmB3F,CAAC;AAiBF,sDAAsD;AACtD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,YAAY,GACjB,IAAI,CAUN;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAA4B,GACpC,IAAI,CAKN;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,IAAI,CAIN;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,IAAI,CAYN"}
@@ -1,4 +1,4 @@
1
1
  /** Glyphs are decorative: hidden from assistive technology (see `decorativeIconSet`). */
2
- declare const Ionicons: import("@expo/vector-icons/build/createIconSet").Icon<"push" | "at" | "code" | "business" | "open" | "add" | "desktop" | "search" | "navigate" | "warning" | "text" | "scale" | "link" | "image" | "key" | "resize" | "ellipse" | "alert" | "radio" | "list" | "infinite" | "alert-circle" | "alert-circle-outline" | "apps" | "archive" | "arrow-down" | "arrow-up" | "briefcase-outline" | "bug" | "calendar" | "calendar-outline" | "camera" | "camera-outline" | "card" | "card-outline" | "cart-outline" | "chevron-down" | "chevron-up" | "close" | "close-circle" | "cloud-outline" | "cloud-upload" | "cloud-upload-outline" | "cog" | "cog-outline" | "cube-outline" | "download" | "download-outline" | "earth" | "ellipse-outline" | "eye" | "eye-off-outline" | "filter-outline" | "flash" | "folder" | "folder-open-outline" | "folder-outline" | "gift" | "gift-outline" | "grid" | "heart" | "heart-outline" | "help-circle" | "help-circle-outline" | "image-outline" | "information" | "information-outline" | "leaf" | "library" | "pencil-outline" | "play" | "pulse" | "receipt-outline" | "rocket" | "school-outline" | "server" | "share-outline" | "shield" | "star" | "sync" | "trophy" | "trophy-outline" | "volume-off" | "wallet" | "wallet-outline" | "watch" | "wifi" | "images" | "settings" | "people" | "add-circle-outline" | "arrow-back" | "arrow-forward" | "bulb" | "business-outline" | "cash-outline" | "chatbubble" | "checkmark" | "checkmark-circle" | "chevron-back" | "chevron-forward" | "cloud-offline-outline" | "construct-outline" | "copy-outline" | "document" | "document-outline" | "document-text" | "documents" | "ellipsis-horizontal" | "flame" | "footsteps" | "globe-outline" | "hand-left" | "hardware-chip-outline" | "hourglass-outline" | "images-outline" | "information-circle" | "link-outline" | "location" | "location-outline" | "lock-closed" | "log-out-outline" | "musical-notes" | "people-outline" | "pricetag-outline" | "qr-code-outline" | "refresh-outline" | "remove" | "repeat-outline" | "search-outline" | "shield-checkmark" | "shield-checkmark-outline" | "swap-horizontal-outline" | "swap-vertical-outline" | "time-outline" | "trash" | "trash-outline" | "videocam", "OxyServicesIonicons">;
2
+ declare const Ionicons: import("@expo/vector-icons/build/createIconSet").Icon<"push" | "at" | "code" | "business" | "open" | "add" | "desktop" | "search" | "navigate" | "warning" | "text" | "scale" | "link" | "image" | "key" | "resize" | "ellipse" | "alert" | "radio" | "list" | "infinite" | "alert-circle" | "alert-circle-outline" | "apps" | "archive" | "arrow-down" | "arrow-up" | "briefcase-outline" | "bug" | "calendar" | "calendar-outline" | "camera" | "camera-outline" | "card" | "card-outline" | "cart-outline" | "chevron-down" | "chevron-up" | "close" | "close-circle" | "cloud-outline" | "cloud-upload" | "cloud-upload-outline" | "cog" | "cog-outline" | "cube-outline" | "download" | "download-outline" | "earth" | "ellipse-outline" | "eye" | "eye-off-outline" | "filter-outline" | "flash" | "folder" | "folder-open-outline" | "folder-outline" | "gift" | "gift-outline" | "grid" | "heart" | "heart-outline" | "help-circle" | "help-circle-outline" | "image-outline" | "information" | "information-outline" | "leaf" | "library" | "pencil-outline" | "play" | "pulse" | "receipt-outline" | "rocket" | "school-outline" | "server" | "share-outline" | "shield" | "star" | "sync" | "trophy" | "trophy-outline" | "volume-off" | "wallet" | "wallet-outline" | "watch" | "wifi" | "images" | "settings" | "trash" | "people" | "add-circle-outline" | "arrow-back" | "arrow-forward" | "arrow-undo" | "bulb" | "business-outline" | "cash-outline" | "chatbubble" | "checkmark" | "checkmark-circle" | "chevron-back" | "chevron-forward" | "cloud-offline-outline" | "construct-outline" | "copy-outline" | "document" | "document-outline" | "document-text" | "documents" | "ellipsis-horizontal" | "flame" | "footsteps" | "globe-outline" | "hand-left" | "hardware-chip-outline" | "hourglass-outline" | "images-outline" | "information-circle" | "link-outline" | "location" | "location-outline" | "lock-closed" | "log-out-outline" | "musical-notes" | "people-outline" | "pricetag-outline" | "qr-code-outline" | "refresh-outline" | "remove" | "repeat-outline" | "search-outline" | "shield-checkmark" | "shield-checkmark-outline" | "swap-horizontal-outline" | "swap-vertical-outline" | "time-outline" | "trash-outline" | "videocam", "OxyServicesIonicons">;
3
3
  export default Ionicons;
4
4
  //# sourceMappingURL=Ionicons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ionicons.d.ts","sourceRoot":"","sources":["../../../../../src/ui/icons/Ionicons.ts"],"names":[],"mappings":"AAKA,yFAAyF;AACzF,QAAA,MAAM,QAAQ,spEAGb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Ionicons.d.ts","sourceRoot":"","sources":["../../../../../src/ui/icons/Ionicons.ts"],"names":[],"mappings":"AAKA,yFAAyF;AACzF,QAAA,MAAM,QAAQ,qqEAGb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -9,6 +9,7 @@ export declare const ioniconsGlyphMap: {
9
9
  readonly "arrow-back": 61735;
10
10
  readonly "arrow-down": 61741;
11
11
  readonly "arrow-forward": 61747;
12
+ readonly "arrow-undo": 61759;
12
13
  readonly "arrow-up": 61765;
13
14
  readonly at: 61771;
14
15
  readonly "briefcase-outline": 61874;
@@ -1 +1 @@
1
- {"version":3,"file":"subsetGlyphMaps.d.ts","sourceRoot":"","sources":["../../../../../src/ui/icons/subsetGlyphMaps.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2InB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMjC,CAAC"}
1
+ {"version":3,"file":"subsetGlyphMaps.d.ts","sourceRoot":"","sources":["../../../../../src/ui/icons/subsetGlyphMaps.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4InB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type ComponentType } from 'react';
2
2
  import type { BaseScreenProps } from '../types/navigation';
3
- export type RouteName = 'Supervision' | 'ManageAccount' | 'AccountVerification' | 'PaymentGateway' | 'Profile' | 'LanguageSelector' | 'PrivacySettings' | 'SearchSettings' | 'FileManagement' | 'HelpSupport' | 'LegalDocuments' | 'AppInfo' | 'WelcomeNewUser' | 'UserLinks' | 'HistoryView' | 'EditProfile' | 'EditProfileField' | 'LearnMoreUsernames' | 'TrustCenter' | 'TrustLeaderboard' | 'TrustRewards' | 'TrustRules' | 'AboutTrust' | 'TrustFAQ' | 'FollowersList' | 'FollowingList' | 'CreateAccount' | 'AccountMembers' | 'AccountSettings' | 'ChangeAvatar' | 'AvatarCrop' | 'Notifications' | 'ConnectedApps' | 'Domains' | 'Preferences' | 'DeleteAccount' | 'LinkCommons' | 'SignInPassword' | 'SignInAuthenticator' | 'AccountDialog';
3
+ export type RouteName = 'Supervision' | 'ManageAccount' | 'AccountVerification' | 'PaymentGateway' | 'Profile' | 'LanguageSelector' | 'PrivacySettings' | 'SearchSettings' | 'FileManagement' | 'FileTrash' | 'HelpSupport' | 'LegalDocuments' | 'AppInfo' | 'WelcomeNewUser' | 'UserLinks' | 'HistoryView' | 'EditProfile' | 'EditProfileField' | 'LearnMoreUsernames' | 'TrustCenter' | 'TrustLeaderboard' | 'TrustRewards' | 'TrustRules' | 'AboutTrust' | 'TrustFAQ' | 'FollowersList' | 'FollowingList' | 'CreateAccount' | 'AccountMembers' | 'AccountSettings' | 'ChangeAvatar' | 'AvatarCrop' | 'Notifications' | 'ConnectedApps' | 'Domains' | 'Preferences' | 'DeleteAccount' | 'LinkCommons' | 'SignInPassword' | 'SignInAuthenticator' | 'AccountDialog';
4
4
  /**
5
5
  * Resolve the component for a route.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,eAAe,GACf,SAAS,GACT,aAAa,GACb,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,CAAC;AA+EpB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,KACnB,aAAa,CAAC,eAAe,CAAC,GAAG,SAC2B,CAAC;AAIhE,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAAS,IAAI,SAE7D,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,eAAe,GACf,qBAAqB,GACrB,gBAAgB,GAChB,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,SAAS,GACT,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,eAAe,GACf,SAAS,GACT,aAAa,GACb,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,CAAC;AAgFpB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,KACnB,aAAa,CAAC,eAAe,CAAC,GAAG,SAC2B,CAAC;AAIhE,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,SAAS,IAAI,SAE7D,CAAC"}
@@ -39,6 +39,8 @@ export interface SurfaceRegistry {
39
39
  * keep their callback behaviour and this result goes unread.
40
40
  */
41
41
  FileManagement: SurfaceRoute<Record<string, unknown>, FileMetadata>;
42
+ /** The person's trash (ADR 0043 D5), opened from the file manager. */
43
+ FileTrash: SurfaceRoute;
42
44
  HelpSupport: SurfaceRoute;
43
45
  LegalDocuments: SurfaceRoute;
44
46
  AppInfo: SurfaceRoute;
@@ -1 +1 @@
1
- {"version":3,"file":"surfaceRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"surfaceRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/ui/navigation/surfaceRegistry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAyDzE,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAigD7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"FileManagementScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileManagementScreen.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AA+DzE,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAwlD7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type React from 'react';
2
+ import type { BaseScreenProps } from '../types/navigation';
3
+ /**
4
+ * The person's Trash (ADR 0043 D5): the files they moved to trash, most
5
+ * recently trashed first. Each can be restored — served again, back in the
6
+ * library — or deleted permanently, after a confirmation (and a second one when
7
+ * an app still uses it). An account's trash never expires, so nothing here
8
+ * disappears on its own; it still counts toward the account's storage.
9
+ */
10
+ declare const FileTrashScreen: React.FC<BaseScreenProps & {
11
+ userId?: string;
12
+ }>;
13
+ export default FileTrashScreen;
14
+ //# sourceMappingURL=FileTrashScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTrashScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/FileTrashScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAa3D;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoMpE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * What the file manager does when the person removes, restores or deletes a
3
+ * file (ADR 0043 D5). Pure of React and of the UI: every call takes the asset
4
+ * API and the confirmation it may need, so the decisions are testable on their
5
+ * own and the screens only render.
6
+ *
7
+ * - "Delete" in the library MOVES TO TRASH: the file stops being served, is
8
+ * kept, and can be restored from Trash. A `blocked` file (taken down after a
9
+ * content claim, D10) cannot be trashed — it is already served to nobody —
10
+ * so removing it is the permanent delete, which is its owner's to make.
11
+ * - Permanent deletion happens only from Trash (or for a blocked file). The
12
+ * API refuses to delete a file an application still uses (409, with the
13
+ * number of uses); the person is told and decides, and only then is the
14
+ * delete forced.
15
+ */
16
+ import type { FileMetadata } from '@oxy.so/core';
17
+ /** The part of `oxyServices.assets` these actions use. */
18
+ export interface TrashAssetsApi {
19
+ trash(fileId: string): Promise<unknown>;
20
+ restore(fileId: string): Promise<unknown>;
21
+ delete(fileId: string, options?: {
22
+ force?: boolean;
23
+ }): Promise<unknown>;
24
+ }
25
+ /** What removing a file from the library does to it. */
26
+ export type LibraryRemoval = 'trash' | 'delete';
27
+ /** A `blocked` file is deleted (it cannot go to trash); every other is trashed. */
28
+ export declare function libraryRemovalFor(file: Pick<FileMetadata, 'status'>): LibraryRemoval;
29
+ /** The HTTP status of a failed asset call, when it carries one. */
30
+ export declare function errorStatus(error: unknown): number | undefined;
31
+ /**
32
+ * How many uses an application still has of a file the API refused to delete
33
+ * (409, `details.summary.remainingLinks`), or `null` when the refusal is not
34
+ * that one.
35
+ */
36
+ export declare function remainingUses(error: unknown): number | null;
37
+ /** Outcome of {@link deletePermanently}. */
38
+ export type PermanentDeleteOutcome = 'deleted' | 'cancelled' | 'gone';
39
+ /**
40
+ * Delete a file for good. When applications still use it the API refuses;
41
+ * `confirmStillUsed(count)` asks the person, and only a yes forces the delete.
42
+ * A file already gone (404) is `gone` — the caller just refreshes. Any other
43
+ * failure is thrown.
44
+ */
45
+ export declare function deletePermanently(assets: TrashAssetsApi, fileId: string, confirmStillUsed: (uses: number) => Promise<boolean>): Promise<PermanentDeleteOutcome>;
46
+ /** Outcome of {@link restoreFromTrash}. */
47
+ export type RestoreOutcome = 'restored' | 'not_in_trash' | 'gone';
48
+ /**
49
+ * Bring a file back from trash. One that is no longer in trash — restored
50
+ * elsewhere, or blocked after a claim (409 `FILE_NOT_IN_TRASH`) — or no longer
51
+ * exists (404) is reported, not thrown: the trash list is just stale.
52
+ */
53
+ export declare function restoreFromTrash(assets: TrashAssetsApi, fileId: string): Promise<RestoreOutcome>;
54
+ /** Per-file outcome of removing several files from the library. */
55
+ export interface LibraryRemovalResult {
56
+ trashed: string[];
57
+ deleted: string[];
58
+ failed: string[];
59
+ }
60
+ /**
61
+ * Remove several files from the library at once: each goes to trash, except a
62
+ * blocked one, which is deleted (asking about remaining uses as
63
+ * {@link deletePermanently} does). One failure never stops the others.
64
+ */
65
+ export declare function removeFromLibrary(assets: TrashAssetsApi, files: ReadonlyArray<Pick<FileMetadata, 'id' | 'status' | 'filename'>>, confirmStillUsed: (uses: number, filename: string) => Promise<boolean>): Promise<LibraryRemovalResult>;
66
+ //# sourceMappingURL=trashActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trashActions.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/screens/fileManagement/trashActions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzE;AAED,wDAAwD;AACxD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,cAAc,CAEpF;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQ9D;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED,4CAA4C;AAC5C,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAEtE;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAYjC;AAED,2CAA2C;AAC3C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC;AAElE;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAWzB;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,EACtE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACrE,OAAO,CAAC,oBAAoB,CAAC,CAwB/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"assetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/assetStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assetStore.d.ts","sourceRoot":"","sources":["../../../../../src/ui/stores/assetStore.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,10 @@ interface FileViewerProps {
8
8
  onToggleDetails: () => void;
9
9
  onClose: () => void;
10
10
  onDownload: (fileId: string, filename: string) => void;
11
+ /** Removes the file from the library: to trash, or for good if it is blocked. */
11
12
  onDelete: (fileId: string, filename: string) => void;
13
+ /** The remove button's label — "Move to trash", or "Delete" for a blocked file. */
14
+ deleteLabel: string;
12
15
  isOwner: boolean;
13
16
  }
14
17
  export declare const FileViewer: React.FC<FileViewerProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"FileViewer.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/fileManagement/FileViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,UAAU,eAAe;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;CAClB;AA0BD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsWhD,CAAC"}
1
+ {"version":3,"file":"FileViewer.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/fileManagement/FileViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,UAAU,eAAe;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,iFAAiF;IACjF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0BD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuWhD,CAAC"}
@@ -78,6 +78,8 @@ export declare const queryKeys: {
78
78
  readonly files: {
79
79
  readonly all: readonly ["files"];
80
80
  readonly list: (ownerId?: string) => readonly ["files", "list", string];
81
+ /** The owner's trash (ADR 0043 D5) — under `files.all`, so one invalidation covers both. */
82
+ readonly trash: (ownerId?: string) => readonly ["files", "trash", string];
81
83
  };
82
84
  readonly connectedApps: {
83
85
  readonly all: readonly ["connectedApps"];