@orthacms/media-admin 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/components/MediaPagination/index.d.ts.map +1 -1
- package/dist/lib/components/MediaPagination/index.js +4 -1
- package/dist/lib/hooks/useMediaLibrary/index.d.ts.map +1 -1
- package/dist/lib/hooks/useMediaLibrary/index.js +10 -2
- package/dist/lib/infrastructure/mediaMapper/index.d.ts +7 -0
- package/dist/lib/infrastructure/mediaMapper/index.d.ts.map +1 -1
- package/dist/lib/infrastructure/mediaMapper/index.js +11 -1
- package/dist/lib/pages/MediaLibraryPage/index.d.ts.map +1 -1
- package/dist/lib/pages/MediaLibraryPage/index.js +28 -19
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MediaPagination/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/MediaPagination/index.tsx"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,gBAAgB,EACnB,EAAE;IACC,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,+BAsFA"}
|
|
@@ -5,6 +5,9 @@ import { Button, Pagination, PaginationContent, PaginationItem, Select, SelectCo
|
|
|
5
5
|
import { ASSETS_PAGE_SIZE_OPTIONS } from '../../constants';
|
|
6
6
|
/** Intl descriptors for {@link MediaPagination}, co-located here. */
|
|
7
7
|
const messages = defineMessages({
|
|
8
|
+
// Names the `<nav>` landmark. The design system's own default is an
|
|
9
|
+
// untranslated, lower-case "pagination".
|
|
10
|
+
nav: { id: 'media.pagination.nav', defaultMessage: 'Pagination' },
|
|
8
11
|
perPage: {
|
|
9
12
|
id: 'media.pagination.perPage',
|
|
10
13
|
defaultMessage: 'Assets per page'
|
|
@@ -45,7 +48,7 @@ export function MediaPagination({ page, pageCount, pageSize, total, onPageChange
|
|
|
45
48
|
const perPageLabel = intl.formatMessage(messages.perPage);
|
|
46
49
|
const from = total === 0 ? 0 : (page - 1) * pageSize + 1;
|
|
47
50
|
const to = Math.min(page * pageSize, total);
|
|
48
|
-
return (_jsxs("div", { className: "mt-4 flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: perPageLabel }), _jsxs(Select, { value: String(pageSize), onValueChange: (value) => onPageSizeChange(Number(value)), children: [_jsx(SelectTrigger, { className: "h-8 w-[72px] rounded-lg shadow-none", "aria-label": perPageLabel, children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { className: "rounded-lg shadow-none", children: _jsx(SelectGroup, { children: ASSETS_PAGE_SIZE_OPTIONS.map((size) => (_jsx(SelectItem, { value: String(size), children: size }, size))) }) })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: intl.formatMessage(messages.range, { from, to, total }) }), pageCount > 1 ? (_jsx(Pagination, { className: "mx-0 w-auto", children: _jsxs(PaginationContent, { className: "gap-3", children: [_jsx(PaginationItem, { children: _jsx(Button, { variant: "outline", size: "icon", className: "size-8 shadow-none", disabled: page <= 1, onClick: () => onPageChange(page - 1), "aria-label": intl.formatMessage(messages.previous), children: _jsx(ChevronLeft, {}) }) }), _jsx(PaginationItem, { children: _jsx("span", { className: "text-sm text-muted-foreground", children: intl.formatMessage(messages.page, {
|
|
51
|
+
return (_jsxs("div", { className: "mt-4 flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: perPageLabel }), _jsxs(Select, { value: String(pageSize), onValueChange: (value) => onPageSizeChange(Number(value)), children: [_jsx(SelectTrigger, { className: "h-8 w-[72px] rounded-lg shadow-none", "aria-label": perPageLabel, children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { className: "rounded-lg shadow-none", children: _jsx(SelectGroup, { children: ASSETS_PAGE_SIZE_OPTIONS.map((size) => (_jsx(SelectItem, { value: String(size), children: size }, size))) }) })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: intl.formatMessage(messages.range, { from, to, total }) }), pageCount > 1 ? (_jsx(Pagination, { className: "mx-0 w-auto", "aria-label": intl.formatMessage(messages.nav), children: _jsxs(PaginationContent, { className: "gap-3", children: [_jsx(PaginationItem, { children: _jsx(Button, { variant: "outline", size: "icon", className: "size-8 shadow-none", disabled: page <= 1, onClick: () => onPageChange(page - 1), "aria-label": intl.formatMessage(messages.previous), children: _jsx(ChevronLeft, {}) }) }), _jsx(PaginationItem, { children: _jsx("span", { className: "text-sm text-muted-foreground", children: intl.formatMessage(messages.page, {
|
|
49
52
|
page,
|
|
50
53
|
pageCount
|
|
51
54
|
}) }) }), _jsx(PaginationItem, { children: _jsx(Button, { variant: "outline", size: "icon", className: "size-8 shadow-none", disabled: page >= pageCount, onClick: () => onPageChange(page + 1), "aria-label": intl.formatMessage(messages.next), children: _jsx(ChevronRight, {}) }) })] }) })) : null] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useMediaLibrary/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAEH,eAAe,EAIf,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,eAAe,CAAC;AAE5D,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA0BF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,OAAO,UAAO,EACd,EACI,QAAQ,EAAE,eAA0C,EACvD,GAAE,mBAAwB;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/useMediaLibrary/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAEH,eAAe,EAIf,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM3D,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,eAAe,CAAC;AAE5D,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA0BF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,OAAO,UAAO,EACd,EACI,QAAQ,EAAE,eAA0C,EACvD,GAAE,mBAAwB;;;;;;;;;;;;;oBA0KhB,MAAM;wBASN,MAAM;;IA6Lb;;;;;;;;;OASG;;;;;;uBAvI+B,MAAM;;;qBASR,MAAM;;;sBA1D/B,MAAM;;oBAiBN,SAAS;;0BATT,UAAU;2BAmBN,MAAM;yBAiFV,MAAM,aAAY,MAAM;uBAK1B,MAAM,QAAQ,MAAM;sBASpB,MAAM,QAAQ,MAAM;sBAKpB,MAAM,OAAO,MAAM;wBAclB,MAAM,EAAE;uBAvBT,MAAM;2BAmBL,MAAM,EAAE;sBALR,MAAM,EAAE,YAAY,MAAM;;;;;;;EA4FvC;AAED,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -89,6 +89,14 @@ export function useMediaLibrary(enabled = true, { pageSize: initialPageSize = DE
|
|
|
89
89
|
const invalidate = useCallback(() => {
|
|
90
90
|
queryClient.invalidateQueries({ queryKey: mediaKeys.all(workspaceId) });
|
|
91
91
|
}, [queryClient, workspaceId]);
|
|
92
|
+
/**
|
|
93
|
+
* {@link invalidate}, but the mutation waits for the refetch. A delete's
|
|
94
|
+
* confirmation stays busy until then, so it closes onto a grid the deleted
|
|
95
|
+
* rows are already gone from instead of one still showing them.
|
|
96
|
+
*/
|
|
97
|
+
const invalidateAndWait = useCallback(() => queryClient.invalidateQueries({
|
|
98
|
+
queryKey: mediaKeys.all(workspaceId)
|
|
99
|
+
}), [queryClient, workspaceId]);
|
|
92
100
|
/**
|
|
93
101
|
* Surfaces a mutation failure and resyncs from the server. The API's own
|
|
94
102
|
* sentence wins over our generic copy — `apiMessage` reads it off the
|
|
@@ -221,7 +229,7 @@ export function useMediaLibrary(enabled = true, { pageSize: initialPageSize = DE
|
|
|
221
229
|
});
|
|
222
230
|
const deleteFolderM = useMutation({
|
|
223
231
|
mutationFn: httpMediaGateway.deleteFolder,
|
|
224
|
-
onSuccess:
|
|
232
|
+
onSuccess: invalidateAndWait,
|
|
225
233
|
onError
|
|
226
234
|
});
|
|
227
235
|
const renameAssetM = useMutation({
|
|
@@ -241,7 +249,7 @@ export function useMediaLibrary(enabled = true, { pageSize: initialPageSize = DE
|
|
|
241
249
|
});
|
|
242
250
|
const deleteAssetsM = useMutation({
|
|
243
251
|
mutationFn: httpMediaGateway.deleteAssets,
|
|
244
|
-
onSuccess:
|
|
252
|
+
onSuccess: invalidateAndWait,
|
|
245
253
|
onError
|
|
246
254
|
});
|
|
247
255
|
const updateAssetM = useMutation({
|
|
@@ -13,6 +13,13 @@ export type AssetResponse = {
|
|
|
13
13
|
mimeType: string;
|
|
14
14
|
size: number;
|
|
15
15
|
url: string;
|
|
16
|
+
/**
|
|
17
|
+
* Where the `thumb` / `preview` derivatives are fetched. Explicit because
|
|
18
|
+
* `url` may be a CDN URL (ADR-0021), where `?variant=` means nothing.
|
|
19
|
+
* Optional only for a server older than the field.
|
|
20
|
+
*/
|
|
21
|
+
thumbUrl?: string;
|
|
22
|
+
previewUrl?: string;
|
|
16
23
|
variants: string[];
|
|
17
24
|
width: number | null;
|
|
18
25
|
height: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/infrastructure/mediaMapper/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAO9D;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/infrastructure/mediaMapper/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAO9D;AAqBD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,CAsB3D"}
|
|
@@ -8,8 +8,18 @@ export function toMediaFolder(dto) {
|
|
|
8
8
|
createdAt: dto.createdAt
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Where a derivative is fetched: the server's explicit URL, else — for a server
|
|
13
|
+
* that predates the field, and so can only ever report its own `/raw` route as
|
|
14
|
+
* `url` — that route's `?variant=` form when the derivative exists.
|
|
15
|
+
*
|
|
16
|
+
* The server's field wins because `url` may be a CDN URL, which ignores the
|
|
17
|
+
* query string and would quietly load the full original into every tile.
|
|
18
|
+
*/
|
|
12
19
|
function variantUrl(dto, name) {
|
|
20
|
+
const explicit = name === 'thumb' ? dto.thumbUrl : dto.previewUrl;
|
|
21
|
+
if (explicit)
|
|
22
|
+
return explicit;
|
|
13
23
|
return dto.variants.includes(name)
|
|
14
24
|
? `${dto.url}?variant=${name}`
|
|
15
25
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/MediaLibraryPage/index.tsx"],"names":[],"mappings":"AA2KA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/pages/MediaLibraryPage/index.tsx"],"names":[],"mappings":"AA2KA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,gCAqkB/B"}
|
|
@@ -175,6 +175,8 @@ export function MediaLibraryPage() {
|
|
|
175
175
|
const [renameTarget, setRenameTarget] = useState(null);
|
|
176
176
|
const [moveIds, setMoveIds] = useState(null);
|
|
177
177
|
const [deleteTarget, setDeleteTarget] = useState(null);
|
|
178
|
+
/** A confirmed delete is in flight — the dialog shows a spinner meanwhile. */
|
|
179
|
+
const [deleting, setDeleting] = useState(false);
|
|
178
180
|
/**
|
|
179
181
|
* Puts focus on the grid and **keeps** it there for a few frames.
|
|
180
182
|
*
|
|
@@ -295,31 +297,38 @@ export function MediaLibraryPage() {
|
|
|
295
297
|
});
|
|
296
298
|
store.clearSelection();
|
|
297
299
|
};
|
|
298
|
-
|
|
299
|
-
|
|
300
|
+
/**
|
|
301
|
+
* Runs the confirmed delete with the dialog held open and `busy` — a
|
|
302
|
+
* spinner on Delete, no dismissal, no second request — and closes it only
|
|
303
|
+
* once the server has answered. Closing at dispatch left the tile on screen
|
|
304
|
+
* with nothing saying a request was running.
|
|
305
|
+
*/
|
|
306
|
+
const confirmDelete = async () => {
|
|
307
|
+
if (!deleteTarget || deleting)
|
|
300
308
|
return;
|
|
309
|
+
setDeleting(true);
|
|
310
|
+
let ok;
|
|
301
311
|
if (deleteTarget.kind === 'assets') {
|
|
302
312
|
const count = deleteTarget.ids.length;
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
});
|
|
313
|
+
ok = await store.deleteAssets(deleteTarget.ids);
|
|
314
|
+
if (ok) {
|
|
315
|
+
toast.success(intl.formatMessage(messages.tDeletedAssets, { count }));
|
|
316
|
+
}
|
|
308
317
|
}
|
|
309
318
|
else {
|
|
310
319
|
const name = deleteTarget.folder.name;
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
});
|
|
320
|
+
ok = await store.deleteFolder(deleteTarget.folder.id);
|
|
321
|
+
if (ok) {
|
|
322
|
+
toast.success(intl.formatMessage(messages.tDeletedFolder, { name }));
|
|
323
|
+
}
|
|
316
324
|
}
|
|
317
|
-
|
|
325
|
+
setDeleting(false);
|
|
318
326
|
// The dialog restores focus to whatever opened it — a tile's ⋯ trigger
|
|
319
|
-
// the delete
|
|
320
|
-
// Claim the close so it lands on the grid instead. Cancelling
|
|
321
|
-
//
|
|
322
|
-
focusGridOnCloseRef.current =
|
|
327
|
+
// the delete has just removed from the DOM, leaving focus on `<body>`.
|
|
328
|
+
// Claim the close so it lands on the grid instead. Cancelling, or a
|
|
329
|
+
// failed delete, leaves the flag false: the trigger still exists.
|
|
330
|
+
focusGridOnCloseRef.current = ok;
|
|
331
|
+
setDeleteTarget(null);
|
|
323
332
|
};
|
|
324
333
|
// What the pending folder delete would take with it, so the confirmation
|
|
325
334
|
// can say so — a folder delete cascades now, and an unqualified "Delete?"
|
|
@@ -415,11 +424,11 @@ export function MediaLibraryPage() {
|
|
|
415
424
|
assets: doomed?.assets ?? 0,
|
|
416
425
|
folders: doomed?.folders ?? 0
|
|
417
426
|
})
|
|
418
|
-
: intl.formatMessage(messages.deleteAssetsBody), confirmLabel: intl.formatMessage(messages.confirmDelete), confirmVariant: "destructive", onCloseAutoFocus: (event) => {
|
|
427
|
+
: intl.formatMessage(messages.deleteAssetsBody), confirmLabel: intl.formatMessage(messages.confirmDelete), confirmVariant: "destructive", busy: deleting, onCloseAutoFocus: (event) => {
|
|
419
428
|
if (!focusGridOnCloseRef.current)
|
|
420
429
|
return;
|
|
421
430
|
focusGridOnCloseRef.current = false;
|
|
422
431
|
event.preventDefault();
|
|
423
432
|
focusGrid();
|
|
424
|
-
}, onConfirm: confirmDelete })] }));
|
|
433
|
+
}, onConfirm: () => void confirmDelete() })] }));
|
|
425
434
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orthacms/media-admin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "@orthacms/media-admin — part of Ortha CMS.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://orthacms.com",
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
"dist"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@orthacms/bootstrap-admin": "^0.
|
|
29
|
-
"@orthacms/content-admin": "^0.
|
|
30
|
-
"@orthacms/content-domain": "^0.
|
|
31
|
-
"@orthacms/design-system": "^0.
|
|
32
|
-
"@orthacms/identity-admin": "^0.
|
|
33
|
-
"@orthacms/insights-admin": "^0.
|
|
34
|
-
"@orthacms/utils-admin": "^0.
|
|
35
|
-
"@orthacms/workspaces-admin": "^0.
|
|
36
|
-
"@orthacms/wysiwyg-admin": "^0.
|
|
28
|
+
"@orthacms/bootstrap-admin": "^0.10.0",
|
|
29
|
+
"@orthacms/content-admin": "^0.10.0",
|
|
30
|
+
"@orthacms/content-domain": "^0.10.0",
|
|
31
|
+
"@orthacms/design-system": "^0.10.0",
|
|
32
|
+
"@orthacms/identity-admin": "^0.10.0",
|
|
33
|
+
"@orthacms/insights-admin": "^0.10.0",
|
|
34
|
+
"@orthacms/utils-admin": "^0.10.0",
|
|
35
|
+
"@orthacms/workspaces-admin": "^0.10.0",
|
|
36
|
+
"@orthacms/wysiwyg-admin": "^0.10.0",
|
|
37
37
|
"@tanstack/react-query": "^5.0.0",
|
|
38
38
|
"lucide-react": "^1.17.0",
|
|
39
39
|
"react-intl": "^7.0.0",
|