@mano8/astro-media-m8 1.1.1 → 2.1.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/README.md +57 -11
- package/dist/src/integration.d.ts.map +1 -1
- package/dist/src/integration.js +1 -0
- package/dist/src/integration.js.map +1 -1
- package/dist/src/runtime/api/categories.d.ts +14 -8
- package/dist/src/runtime/api/categories.d.ts.map +1 -1
- package/dist/src/runtime/api/categories.js +21 -8
- package/dist/src/runtime/api/categories.js.map +1 -1
- package/dist/src/runtime/api/index.d.ts +8 -0
- package/dist/src/runtime/api/index.d.ts.map +1 -1
- package/dist/src/runtime/api/index.js +8 -0
- package/dist/src/runtime/api/index.js.map +1 -1
- package/dist/src/runtime/api/transfer.d.ts +19 -0
- package/dist/src/runtime/api/transfer.d.ts.map +1 -0
- package/dist/src/runtime/api/transfer.js +48 -0
- package/dist/src/runtime/api/transfer.js.map +1 -0
- package/dist/src/runtime/client.d.ts.map +1 -1
- package/dist/src/runtime/client.js +7 -1
- package/dist/src/runtime/client.js.map +1 -1
- package/dist/src/runtime/compatibility.d.ts +6 -6
- package/dist/src/runtime/compatibility.d.ts.map +1 -1
- package/dist/src/runtime/compatibility.js +58 -7
- package/dist/src/runtime/compatibility.js.map +1 -1
- package/dist/src/runtime/errors.d.ts +20 -2
- package/dist/src/runtime/errors.d.ts.map +1 -1
- package/dist/src/runtime/errors.js +53 -2
- package/dist/src/runtime/errors.js.map +1 -1
- package/dist/src/runtime/hooks/index.d.ts +2 -0
- package/dist/src/runtime/hooks/index.d.ts.map +1 -1
- package/dist/src/runtime/hooks/index.js +2 -0
- package/dist/src/runtime/hooks/index.js.map +1 -1
- package/dist/src/runtime/hooks/useMediaCategories.d.ts +30 -0
- package/dist/src/runtime/hooks/useMediaCategories.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useMediaCategories.js +56 -0
- package/dist/src/runtime/hooks/useMediaCategories.js.map +1 -0
- package/dist/src/runtime/hooks/useMediaObjects.d.ts.map +1 -1
- package/dist/src/runtime/hooks/useMediaObjects.js +14 -2
- package/dist/src/runtime/hooks/useMediaObjects.js.map +1 -1
- package/dist/src/runtime/hooks/useMediaTransfer.d.ts +42 -0
- package/dist/src/runtime/hooks/useMediaTransfer.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useMediaTransfer.js +106 -0
- package/dist/src/runtime/hooks/useMediaTransfer.js.map +1 -0
- package/dist/src/runtime/queryKeys.d.ts +2 -0
- package/dist/src/runtime/queryKeys.d.ts.map +1 -1
- package/dist/src/runtime/queryKeys.js +2 -0
- package/dist/src/runtime/queryKeys.js.map +1 -1
- package/dist/src/runtime/react/CategoryManager.d.ts +10 -0
- package/dist/src/runtime/react/CategoryManager.d.ts.map +1 -0
- package/dist/src/runtime/react/CategoryManager.js +194 -0
- package/dist/src/runtime/react/CategoryManager.js.map +1 -0
- package/dist/src/runtime/react/CategoryMultiSelect.d.ts +73 -0
- package/dist/src/runtime/react/CategoryMultiSelect.d.ts.map +1 -0
- package/dist/src/runtime/react/CategoryMultiSelect.js +179 -0
- package/dist/src/runtime/react/CategoryMultiSelect.js.map +1 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.d.ts +22 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.js +244 -0
- package/dist/src/runtime/react/MediaCategoryTreePane.js.map +1 -0
- package/dist/src/runtime/react/MediaErrorBoundary.d.ts +53 -0
- package/dist/src/runtime/react/MediaErrorBoundary.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaErrorBoundary.js +58 -0
- package/dist/src/runtime/react/MediaErrorBoundary.js.map +1 -0
- package/dist/src/runtime/react/MediaLibrary.d.ts +16 -1
- package/dist/src/runtime/react/MediaLibrary.d.ts.map +1 -1
- package/dist/src/runtime/react/MediaLibrary.js +75 -110
- package/dist/src/runtime/react/MediaLibrary.js.map +1 -1
- package/dist/src/runtime/react/MediaObjectViews.d.ts +47 -0
- package/dist/src/runtime/react/MediaObjectViews.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaObjectViews.js +131 -0
- package/dist/src/runtime/react/MediaObjectViews.js.map +1 -0
- package/dist/src/runtime/react/MediaTransferPanel.d.ts +17 -0
- package/dist/src/runtime/react/MediaTransferPanel.d.ts.map +1 -0
- package/dist/src/runtime/react/MediaTransferPanel.js +93 -0
- package/dist/src/runtime/react/MediaTransferPanel.js.map +1 -0
- package/dist/src/runtime/react/MediaUploadDropzone.d.ts +36 -1
- package/dist/src/runtime/react/MediaUploadDropzone.d.ts.map +1 -1
- package/dist/src/runtime/react/MediaUploadDropzone.js +63 -3
- package/dist/src/runtime/react/MediaUploadDropzone.js.map +1 -1
- package/dist/src/runtime/react/ObjectDetail.d.ts.map +1 -1
- package/dist/src/runtime/react/ObjectDetail.js +51 -1
- package/dist/src/runtime/react/ObjectDetail.js.map +1 -1
- package/dist/src/runtime/react/categoryBranch.d.ts +38 -0
- package/dist/src/runtime/react/categoryBranch.d.ts.map +1 -0
- package/dist/src/runtime/react/categoryBranch.js +37 -0
- package/dist/src/runtime/react/categoryBranch.js.map +1 -0
- package/dist/src/runtime/react/default-ui/index.d.ts +6 -2
- package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -1
- package/dist/src/runtime/react/default-ui/index.js +14 -9
- package/dist/src/runtime/react/default-ui/index.js.map +1 -1
- package/dist/src/runtime/react/index.d.ts +5 -2
- package/dist/src/runtime/react/index.d.ts.map +1 -1
- package/dist/src/runtime/react/index.js +3 -0
- package/dist/src/runtime/react/index.js.map +1 -1
- package/dist/src/runtime/react/mediaLibraryLabels.d.ts +93 -0
- package/dist/src/runtime/react/mediaLibraryLabels.d.ts.map +1 -0
- package/dist/src/runtime/react/mediaLibraryLabels.js +100 -0
- package/dist/src/runtime/react/mediaLibraryLabels.js.map +1 -0
- package/dist/src/runtime/react/mediaLibraryStyles.d.ts +44 -0
- package/dist/src/runtime/react/mediaLibraryStyles.d.ts.map +1 -0
- package/dist/src/runtime/react/mediaLibraryStyles.js +82 -0
- package/dist/src/runtime/react/mediaLibraryStyles.js.map +1 -0
- package/dist/src/runtime/routes.d.ts +2 -0
- package/dist/src/runtime/routes.d.ts.map +1 -1
- package/dist/src/runtime/routes.js +2 -0
- package/dist/src/runtime/routes.js.map +1 -1
- package/dist/src/runtime/schemas.d.ts +265 -0
- package/dist/src/runtime/schemas.d.ts.map +1 -1
- package/dist/src/runtime/schemas.js +173 -6
- package/dist/src/runtime/schemas.js.map +1 -1
- package/dist/src/runtime/upload/uploadController.d.ts +7 -0
- package/dist/src/runtime/upload/uploadController.d.ts.map +1 -1
- package/dist/src/runtime/upload/uploadController.js +10 -5
- package/dist/src/runtime/upload/uploadController.js.map +1 -1
- package/package.json +36 -28
- package/registry/r/media-category-tree.json +21 -0
- package/registry/r/media-dashboard-overview.json +1 -1
- package/registry/r/media-library-tree.json +25 -0
- package/registry/r/media-maintenance-panel.json +3 -2
- package/registry/r/media-transfer-dialog.json +26 -0
- package/registry/r/registry.json +18 -0
- package/registry.json +61 -1
- package/src/routes/categories.astro +12 -0
- package/src/scaffold/styles/media.css +395 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../../src/runtime/compatibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,10 @@ export declare const ApiErrorBody: z.ZodObject<{
|
|
|
4
4
|
}, z.core.$strip>;
|
|
5
5
|
/**
|
|
6
6
|
* Derive a human-readable message from a normalized FastAPI error detail.
|
|
7
|
-
* Strings are surfaced as-is; validation arrays ({ msg }) are joined;
|
|
8
|
-
*
|
|
7
|
+
* Strings are surfaced as-is; validation arrays ({ msg }) are joined; a flat
|
|
8
|
+
* object detail (`{ code, reason, message }`, e.g. `UploadRejectDetail` /
|
|
9
|
+
* `DownloadNotAvailableDetail` from media-service-m8) surfaces its `message`;
|
|
10
|
+
* anything else yields `undefined` so callers fall back to a generic message.
|
|
9
11
|
*/
|
|
10
12
|
export declare function messageFromDetail(detail: unknown): string | undefined;
|
|
11
13
|
export declare class ApiError extends Error {
|
|
@@ -20,4 +22,20 @@ export declare class ForbiddenError extends ApiError {
|
|
|
20
22
|
constructor(message?: string);
|
|
21
23
|
}
|
|
22
24
|
export declare function normalizeFastApiError(payload: unknown): unknown;
|
|
25
|
+
/**
|
|
26
|
+
* Friendly copy for the stable machine tokens media-service-m8 raises on the
|
|
27
|
+
* upload-reject 422 (`UploadRejectDetail.reason`), the download-guard 409
|
|
28
|
+
* (`DownloadNotAvailableDetail.code`), and a per-row import result
|
|
29
|
+
* (`ImportObjectResult.reason`, `U9`/`U10`) — the first five import reasons
|
|
30
|
+
* are `U1`'s own upload-reject tokens, reused verbatim, so both surfaces
|
|
31
|
+
* resolve through this one map. Keyed by whichever of `reason`/`code` the
|
|
32
|
+
* detail carries.
|
|
33
|
+
*/
|
|
34
|
+
export declare const UPLOAD_REJECT_REASON_MESSAGES: ReadonlyMap<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve friendly copy for a normalized FastAPI error `detail`: a known
|
|
37
|
+
* `reason`/`code` token maps to its friendly string; otherwise fall back to
|
|
38
|
+
* `messageFromDetail`, then to the caller-supplied generic `fallback`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function friendlyReasonMessage(detail: unknown, fallback: string): string;
|
|
23
41
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;iBAEvB,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;iBAEvB,CAAC;AAEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAkBrE;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAM9D;AAED,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,OAAO,SAA4B;CAIhD;AAED,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,OAAO,SAAsD;CAI1E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAG/D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAcpE,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa/E"}
|
|
@@ -4,8 +4,10 @@ export const ApiErrorBody = z.object({
|
|
|
4
4
|
});
|
|
5
5
|
/**
|
|
6
6
|
* Derive a human-readable message from a normalized FastAPI error detail.
|
|
7
|
-
* Strings are surfaced as-is; validation arrays ({ msg }) are joined;
|
|
8
|
-
*
|
|
7
|
+
* Strings are surfaced as-is; validation arrays ({ msg }) are joined; a flat
|
|
8
|
+
* object detail (`{ code, reason, message }`, e.g. `UploadRejectDetail` /
|
|
9
|
+
* `DownloadNotAvailableDetail` from media-service-m8) surfaces its `message`;
|
|
10
|
+
* anything else yields `undefined` so callers fall back to a generic message.
|
|
9
11
|
*/
|
|
10
12
|
export function messageFromDetail(detail) {
|
|
11
13
|
if (typeof detail === "string" && detail.trim())
|
|
@@ -18,6 +20,12 @@ export function messageFromDetail(detail) {
|
|
|
18
20
|
.filter((part) => part !== null);
|
|
19
21
|
if (parts.length)
|
|
20
22
|
return parts.join("; ");
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
if (detail && typeof detail === "object" && "message" in detail) {
|
|
26
|
+
const message = detail.message;
|
|
27
|
+
if (typeof message === "string" && message.trim())
|
|
28
|
+
return message;
|
|
21
29
|
}
|
|
22
30
|
return undefined;
|
|
23
31
|
}
|
|
@@ -47,4 +55,47 @@ export function normalizeFastApiError(payload) {
|
|
|
47
55
|
const parsed = ApiErrorBody.safeParse(payload);
|
|
48
56
|
return parsed.success ? parsed.data.detail : payload;
|
|
49
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Friendly copy for the stable machine tokens media-service-m8 raises on the
|
|
60
|
+
* upload-reject 422 (`UploadRejectDetail.reason`), the download-guard 409
|
|
61
|
+
* (`DownloadNotAvailableDetail.code`), and a per-row import result
|
|
62
|
+
* (`ImportObjectResult.reason`, `U9`/`U10`) — the first five import reasons
|
|
63
|
+
* are `U1`'s own upload-reject tokens, reused verbatim, so both surfaces
|
|
64
|
+
* resolve through this one map. Keyed by whichever of `reason`/`code` the
|
|
65
|
+
* detail carries.
|
|
66
|
+
*/
|
|
67
|
+
export const UPLOAD_REJECT_REASON_MESSAGES = new Map([
|
|
68
|
+
["size_exceeded", "This file is larger than the allowed size limit."],
|
|
69
|
+
["mime_mismatch", "This file type is not allowed for the selected category."],
|
|
70
|
+
["sha256_mismatch", "The uploaded file did not match its expected checksum."],
|
|
71
|
+
["quota_bytes_exceeded", "You have reached your storage quota."],
|
|
72
|
+
["quota_objects_exceeded", "You have reached the maximum number of files allowed."],
|
|
73
|
+
["scan_not_clean", "This file was rejected because it failed the virus scan."],
|
|
74
|
+
// Import-only outcomes (`ImportRowReason`).
|
|
75
|
+
["missing_bytes", "This item has no bytes to import (manifest-only, no local copy)."],
|
|
76
|
+
["already_exists", "This item already exists in your library."],
|
|
77
|
+
["id_conflict", "This item conflicts with an existing record you do not own."],
|
|
78
|
+
["unsupported_mime", "This file type is not supported for import."],
|
|
79
|
+
["invalid_metadata", "This item's metadata could not be read."],
|
|
80
|
+
["storage_error", "A storage error prevented this file from being imported."]
|
|
81
|
+
]);
|
|
82
|
+
/**
|
|
83
|
+
* Resolve friendly copy for a normalized FastAPI error `detail`: a known
|
|
84
|
+
* `reason`/`code` token maps to its friendly string; otherwise fall back to
|
|
85
|
+
* `messageFromDetail`, then to the caller-supplied generic `fallback`.
|
|
86
|
+
*/
|
|
87
|
+
export function friendlyReasonMessage(detail, fallback) {
|
|
88
|
+
if (detail && typeof detail === "object" && !Array.isArray(detail)) {
|
|
89
|
+
const record = detail;
|
|
90
|
+
const key = typeof record.reason === "string"
|
|
91
|
+
? record.reason
|
|
92
|
+
: typeof record.code === "string"
|
|
93
|
+
? record.code
|
|
94
|
+
: undefined;
|
|
95
|
+
const known = key ? UPLOAD_REJECT_REASON_MESSAGES.get(key) : undefined;
|
|
96
|
+
if (known)
|
|
97
|
+
return known;
|
|
98
|
+
}
|
|
99
|
+
return messageFromDetail(detail) ?? fallback;
|
|
100
|
+
}
|
|
50
101
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/runtime/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export * from "./useMediaObject.js";
|
|
|
3
3
|
export * from "./useMediaUpload.js";
|
|
4
4
|
export * from "./useMediaVariants.js";
|
|
5
5
|
export * from "./useMediaPresets.js";
|
|
6
|
+
export * from "./useMediaCategories.js";
|
|
6
7
|
export * from "./useMediaAdmin.js";
|
|
7
8
|
export * from "./useDownloadUrl.js";
|
|
9
|
+
export * from "./useMediaTransfer.js";
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
@@ -3,6 +3,8 @@ export * from "./useMediaObject.js";
|
|
|
3
3
|
export * from "./useMediaUpload.js";
|
|
4
4
|
export * from "./useMediaVariants.js";
|
|
5
5
|
export * from "./useMediaPresets.js";
|
|
6
|
+
export * from "./useMediaCategories.js";
|
|
6
7
|
export * from "./useMediaAdmin.js";
|
|
7
8
|
export * from "./useDownloadUrl.js";
|
|
9
|
+
export * from "./useMediaTransfer.js";
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type UseMutationResult } from "@tanstack/react-query";
|
|
2
|
+
import type { CategoryCreate, CategoryNode, CategoryPublic, CategoryUpdate } from "../schemas.js";
|
|
3
|
+
type UpdateCategoryVariables = {
|
|
4
|
+
id: number;
|
|
5
|
+
body: CategoryUpdate;
|
|
6
|
+
};
|
|
7
|
+
type CreateCategoryMutation = UseMutationResult<CategoryPublic, unknown, CategoryCreate>;
|
|
8
|
+
type UpdateCategoryMutation = UseMutationResult<CategoryPublic, unknown, UpdateCategoryVariables>;
|
|
9
|
+
type RemoveCategoryMutation = UseMutationResult<void, unknown, number>;
|
|
10
|
+
export type UseCategoryTree = {
|
|
11
|
+
tree: CategoryNode[];
|
|
12
|
+
count: number;
|
|
13
|
+
loading: boolean;
|
|
14
|
+
error: unknown;
|
|
15
|
+
reload: () => Promise<void>;
|
|
16
|
+
create: (body: CategoryCreate) => Promise<CategoryPublic>;
|
|
17
|
+
update: (id: number, body: CategoryUpdate) => Promise<CategoryPublic>;
|
|
18
|
+
remove: (id: number) => Promise<void>;
|
|
19
|
+
createMutation: CreateCategoryMutation;
|
|
20
|
+
updateMutation: UpdateCategoryMutation;
|
|
21
|
+
removeMutation: RemoveCategoryMutation;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* The caller's nested user category tree, plus create/update/delete
|
|
25
|
+
* mutations that invalidate it exactly. This is the data layer the tree view
|
|
26
|
+
* (`U7`) composes; it renders nothing itself.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useCategoryTree(): UseCategoryTree;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=useMediaCategories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaCategories.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaCategories.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElG,KAAK,uBAAuB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AACF,KAAK,sBAAsB,GAAG,iBAAiB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AACzF,KAAK,sBAAsB,GAAG,iBAAiB,CAAC,cAAc,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC;AAClG,KAAK,sBAAsB,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACtE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,eAAe,CA8DjD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { createCategory, deleteCategory, getCategoryTree, updateCategory } from "../api/categories.js";
|
|
4
|
+
import { mediaKeys } from "../queryKeys.js";
|
|
5
|
+
/**
|
|
6
|
+
* The caller's nested user category tree, plus create/update/delete
|
|
7
|
+
* mutations that invalidate it exactly. This is the data layer the tree view
|
|
8
|
+
* (`U7`) composes; it renders nothing itself.
|
|
9
|
+
*/
|
|
10
|
+
export function useCategoryTree() {
|
|
11
|
+
const queryClient = useQueryClient();
|
|
12
|
+
const queryKey = mediaKeys.categoryTree();
|
|
13
|
+
const query = useQuery({
|
|
14
|
+
queryKey,
|
|
15
|
+
queryFn: getCategoryTree
|
|
16
|
+
});
|
|
17
|
+
const invalidate = useCallback(() => queryClient.invalidateQueries({ queryKey, exact: true }), [queryClient, queryKey]);
|
|
18
|
+
const createMutation = useMutation({
|
|
19
|
+
mutationFn: createCategory,
|
|
20
|
+
onSuccess: invalidate
|
|
21
|
+
});
|
|
22
|
+
const updateMutation = useMutation({
|
|
23
|
+
mutationFn: ({ id, body }) => updateCategory(id, body),
|
|
24
|
+
onSuccess: invalidate
|
|
25
|
+
});
|
|
26
|
+
const removeMutation = useMutation({
|
|
27
|
+
mutationFn: async (id) => {
|
|
28
|
+
await deleteCategory(id);
|
|
29
|
+
},
|
|
30
|
+
onSuccess: invalidate
|
|
31
|
+
});
|
|
32
|
+
const { refetch } = query;
|
|
33
|
+
const { mutateAsync: createCategoryAsync } = createMutation;
|
|
34
|
+
const { mutateAsync: updateCategoryAsync } = updateMutation;
|
|
35
|
+
const { mutateAsync: removeCategoryAsync } = removeMutation;
|
|
36
|
+
const reload = useCallback(async () => {
|
|
37
|
+
await refetch();
|
|
38
|
+
}, [refetch]);
|
|
39
|
+
const create = useCallback((body) => createCategoryAsync(body), [createCategoryAsync]);
|
|
40
|
+
const update = useCallback((id, body) => updateCategoryAsync({ id, body }), [updateCategoryAsync]);
|
|
41
|
+
const remove = useCallback((id) => removeCategoryAsync(id), [removeCategoryAsync]);
|
|
42
|
+
return {
|
|
43
|
+
tree: query.data?.data ?? [],
|
|
44
|
+
count: query.data?.count ?? 0,
|
|
45
|
+
loading: query.isFetching,
|
|
46
|
+
error: query.error ?? null,
|
|
47
|
+
reload,
|
|
48
|
+
create,
|
|
49
|
+
update,
|
|
50
|
+
remove,
|
|
51
|
+
createMutation,
|
|
52
|
+
updateMutation,
|
|
53
|
+
removeMutation
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=useMediaCategories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaCategories.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaCategories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAA0B,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAyB5C;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ;QACR,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,WAAW,CAC5B,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9D,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAA0C;QAC1E,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAAmD;QACnF,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC;QACtD,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAAwB;QACxD,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,cAAc,CAAC;IAC5D,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,cAAc,CAAC;IAC5D,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,cAAc,CAAC;IAE5D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,IAAoB,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EACnD,CAAC,mBAAmB,CAAC,CACtB,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,EAAU,EAAE,IAAoB,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EACvE,CAAC,mBAAmB,CAAC,CACtB,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE3F,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;QAC5B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;QAC7B,OAAO,EAAE,KAAK,CAAC,UAAU;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,cAAc;QACd,cAAc;QACd,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaObjects.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaObjects.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAsB,MAAM,eAAe,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAkBF,wBAAgB,eAAe,CAAC,MAAM,GAAE,gBAAqB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"useMediaObjects.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaObjects.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAsB,MAAM,eAAe,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAkBF,wBAAgB,eAAe,CAAC,MAAM,GAAE,gBAAqB,GAAG,eAAe,CAmG9E"}
|
|
@@ -15,7 +15,13 @@ function latestCount(data) {
|
|
|
15
15
|
}
|
|
16
16
|
export function useMediaObjects(params = {}) {
|
|
17
17
|
const queryClient = useQueryClient();
|
|
18
|
-
const { category, visibility, status, mime_prefix, created_from, created_to, q, sort_by, order, limit, owner_user_id, include_deleted
|
|
18
|
+
const { category, visibility, status, mime_prefix, created_from, created_to, q, sort_by, order, limit, owner_user_id, include_deleted,
|
|
19
|
+
// Branch filter over the user category tree. These three are memoized by the
|
|
20
|
+
// same explicit-name discipline as everything above: a param that is not
|
|
21
|
+
// destructured here, copied into `listParams` **and** listed in the
|
|
22
|
+
// dependency array below never changes the query key, so selecting a branch
|
|
23
|
+
// would silently keep serving the previous branch's page.
|
|
24
|
+
category_id, include_descendants, uncategorized } = params;
|
|
19
25
|
const listParams = useMemo(() => listParamsWithoutCursor({
|
|
20
26
|
category,
|
|
21
27
|
visibility,
|
|
@@ -28,12 +34,17 @@ export function useMediaObjects(params = {}) {
|
|
|
28
34
|
order,
|
|
29
35
|
limit,
|
|
30
36
|
owner_user_id,
|
|
31
|
-
include_deleted
|
|
37
|
+
include_deleted,
|
|
38
|
+
category_id,
|
|
39
|
+
include_descendants,
|
|
40
|
+
uncategorized
|
|
32
41
|
}), [
|
|
33
42
|
category,
|
|
43
|
+
category_id,
|
|
34
44
|
created_from,
|
|
35
45
|
created_to,
|
|
36
46
|
include_deleted,
|
|
47
|
+
include_descendants,
|
|
37
48
|
limit,
|
|
38
49
|
mime_prefix,
|
|
39
50
|
order,
|
|
@@ -41,6 +52,7 @@ export function useMediaObjects(params = {}) {
|
|
|
41
52
|
q,
|
|
42
53
|
sort_by,
|
|
43
54
|
status,
|
|
55
|
+
uncategorized,
|
|
44
56
|
visibility
|
|
45
57
|
]);
|
|
46
58
|
const queryKey = useMemo(() => mediaKeys.objects(listParams), [listParams]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMediaObjects.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaObjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,SAAS,uBAAuB,CAAC,MAAwB;IACvD,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,MAAM,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAuE;IAC3F,OAAO,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,IAAuE;IAC1F,OAAO,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA2B,EAAE;IAC3D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,CAAC,EACD,OAAO,EACP,KAAK,EACL,KAAK,EACL,aAAa,EACb,eAAe,
|
|
1
|
+
{"version":3,"file":"useMediaObjects.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaObjects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type UseMutationResult } from "@tanstack/react-query";
|
|
2
|
+
import type { ExportFormat, ExportJobPublic, ExportManifest, ImportFormat, ImportReport, ObjectListParams } from "../schemas.js";
|
|
3
|
+
type StartExportVariables = {
|
|
4
|
+
format: ExportFormat;
|
|
5
|
+
filters?: ObjectListParams;
|
|
6
|
+
};
|
|
7
|
+
type ExportMutation = UseMutationResult<ExportManifest | ExportJobPublic, unknown, StartExportVariables>;
|
|
8
|
+
type StartImportVariables = {
|
|
9
|
+
format: ImportFormat;
|
|
10
|
+
file: File | Blob;
|
|
11
|
+
};
|
|
12
|
+
type ImportMutation = UseMutationResult<ImportReport, unknown, StartImportVariables>;
|
|
13
|
+
export type UseMediaTransfer = {
|
|
14
|
+
/** `null` before an export starts; the manifest, once a `manifest` export resolves. */
|
|
15
|
+
manifest: ExportManifest | null;
|
|
16
|
+
/** The archive job, refreshed by polling while `queued`/`processing`. */
|
|
17
|
+
exportJob: ExportJobPublic | null;
|
|
18
|
+
exportFormat: ExportFormat | null;
|
|
19
|
+
/** True while starting an export, or while an archive job is still active. */
|
|
20
|
+
exportPending: boolean;
|
|
21
|
+
exportError: unknown;
|
|
22
|
+
startExport: (format: ExportFormat, filters?: ObjectListParams) => Promise<void>;
|
|
23
|
+
/** Saves the fetched manifest as a local `.json` file. No-op before one exists. */
|
|
24
|
+
downloadManifest: (filename?: string) => void;
|
|
25
|
+
resetExport: () => void;
|
|
26
|
+
exportMutation: ExportMutation;
|
|
27
|
+
importReport: ImportReport | null;
|
|
28
|
+
importPending: boolean;
|
|
29
|
+
importError: unknown;
|
|
30
|
+
startImport: (format: ImportFormat, file: File | Blob) => Promise<ImportReport>;
|
|
31
|
+
resetImport: () => void;
|
|
32
|
+
importMutation: ImportMutation;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Data layer for the library's Import/Export control (`U10`). `manifest`
|
|
36
|
+
* export resolves inline; `archive` export is polled via `getExportJob`
|
|
37
|
+
* until it leaves `queued`/`processing`. A successful import invalidates the
|
|
38
|
+
* object list and the category tree, since it can create both.
|
|
39
|
+
*/
|
|
40
|
+
export declare function useMediaTransfer(): UseMediaTransfer;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=useMediaTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaTransfer.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaTransfer.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAKvB,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,cAAc,GAAG,eAAe,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAEzG,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAkBrF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uFAAuF;IACvF,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,mFAAmF;IACnF,gBAAgB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAE/B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CA+FnD"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useCallback, useState } from "react";
|
|
2
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { getExportJob, startExport, startImport } from "../api/transfer.js";
|
|
4
|
+
import { mediaKeys } from "../queryKeys.js";
|
|
5
|
+
/** A caller may hold only one in-flight archive export, so this needs no polling. */
|
|
6
|
+
const ACTIVE_EXPORT_STATUSES = new Set(["queued", "processing"]);
|
|
7
|
+
/**
|
|
8
|
+
* Trigger a same-origin download of a JSON document without a server round
|
|
9
|
+
* trip — the manifest was already fetched and parsed, so this hands the
|
|
10
|
+
* browser a `Blob` URL rather than re-requesting the bytes.
|
|
11
|
+
*/
|
|
12
|
+
function downloadJson(document_, filename) {
|
|
13
|
+
if (typeof window === "undefined" || typeof document === "undefined")
|
|
14
|
+
return;
|
|
15
|
+
const blob = new Blob([JSON.stringify(document_, null, 2)], { type: "application/json" });
|
|
16
|
+
const url = URL.createObjectURL(blob);
|
|
17
|
+
const anchor = window.document.createElement("a");
|
|
18
|
+
anchor.href = url;
|
|
19
|
+
anchor.download = filename;
|
|
20
|
+
anchor.click();
|
|
21
|
+
URL.revokeObjectURL(url);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Data layer for the library's Import/Export control (`U10`). `manifest`
|
|
25
|
+
* export resolves inline; `archive` export is polled via `getExportJob`
|
|
26
|
+
* until it leaves `queued`/`processing`. A successful import invalidates the
|
|
27
|
+
* object list and the category tree, since it can create both.
|
|
28
|
+
*/
|
|
29
|
+
export function useMediaTransfer() {
|
|
30
|
+
const queryClient = useQueryClient();
|
|
31
|
+
const [manifest, setManifest] = useState(null);
|
|
32
|
+
const [exportFormat, setExportFormat] = useState(null);
|
|
33
|
+
const [jobId, setJobId] = useState(null);
|
|
34
|
+
const exportMutation = useMutation({
|
|
35
|
+
mutationFn: ({ format, filters }) => format === "archive" ? startExport("archive", filters) : startExport("manifest", filters),
|
|
36
|
+
onSuccess: (result, variables) => {
|
|
37
|
+
setExportFormat(variables.format);
|
|
38
|
+
if (variables.format === "archive") {
|
|
39
|
+
const job = result;
|
|
40
|
+
setManifest(null);
|
|
41
|
+
// Seed the poll query with the 202 response's own job row (`queued`)
|
|
42
|
+
// so `exportJob` reflects it immediately, rather than reading
|
|
43
|
+
// `undefined` until the first poll tick lands.
|
|
44
|
+
queryClient.setQueryData(mediaKeys.exportJob(job.id), job);
|
|
45
|
+
setJobId(job.id);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
setJobId(null);
|
|
49
|
+
setManifest(result);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const jobQueryKey = mediaKeys.exportJob(jobId ?? "");
|
|
54
|
+
const jobQuery = useQuery({
|
|
55
|
+
queryKey: jobQueryKey,
|
|
56
|
+
queryFn: () => getExportJob(jobId),
|
|
57
|
+
enabled: jobId != null,
|
|
58
|
+
refetchInterval: (query) => {
|
|
59
|
+
const currentStatus = query.state.data?.status;
|
|
60
|
+
return currentStatus && ACTIVE_EXPORT_STATUSES.has(currentStatus) ? 2000 : false;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const runStartExport = useCallback(async (format, filters) => {
|
|
64
|
+
await exportMutation.mutateAsync({ format, filters });
|
|
65
|
+
}, [exportMutation]);
|
|
66
|
+
const downloadManifest = useCallback((filename = "media-export-manifest.json") => {
|
|
67
|
+
if (manifest)
|
|
68
|
+
downloadJson(manifest, filename);
|
|
69
|
+
}, [manifest]);
|
|
70
|
+
const resetExport = useCallback(() => {
|
|
71
|
+
setManifest(null);
|
|
72
|
+
setJobId(null);
|
|
73
|
+
setExportFormat(null);
|
|
74
|
+
exportMutation.reset();
|
|
75
|
+
}, [exportMutation]);
|
|
76
|
+
const importMutation = useMutation({
|
|
77
|
+
mutationFn: ({ format, file }) => startImport(format, file),
|
|
78
|
+
onSuccess: () => {
|
|
79
|
+
// An import can create both objects and categories, so both caches
|
|
80
|
+
// that read them need to be dropped rather than surviving stale.
|
|
81
|
+
void queryClient.invalidateQueries({ queryKey: mediaKeys.objectLists() });
|
|
82
|
+
void queryClient.invalidateQueries({ queryKey: mediaKeys.categoryTree(), exact: true });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
const runStartImport = useCallback((format, file) => importMutation.mutateAsync({ format, file }), [importMutation]);
|
|
86
|
+
const resetImport = useCallback(() => importMutation.reset(), [importMutation]);
|
|
87
|
+
const exportJob = exportFormat === "archive" ? jobQuery.data ?? null : null;
|
|
88
|
+
return {
|
|
89
|
+
manifest,
|
|
90
|
+
exportJob,
|
|
91
|
+
exportFormat,
|
|
92
|
+
exportPending: exportMutation.isPending || (exportJob != null && ACTIVE_EXPORT_STATUSES.has(exportJob.status)),
|
|
93
|
+
exportError: exportMutation.error ?? (exportFormat === "archive" ? jobQuery.error : null) ?? null,
|
|
94
|
+
startExport: runStartExport,
|
|
95
|
+
downloadManifest,
|
|
96
|
+
resetExport,
|
|
97
|
+
exportMutation,
|
|
98
|
+
importReport: importMutation.data ?? null,
|
|
99
|
+
importPending: importMutation.isPending,
|
|
100
|
+
importError: importMutation.error ?? null,
|
|
101
|
+
startImport: runStartImport,
|
|
102
|
+
resetImport,
|
|
103
|
+
importMutation
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=useMediaTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaTransfer.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/useMediaTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,9 @@ export declare const mediaKeys: {
|
|
|
8
8
|
object: (objectId: string) => readonly ["media", "object", string];
|
|
9
9
|
variants: (objectId: string) => readonly ["media", "variants", string];
|
|
10
10
|
presets: () => readonly ["media", "presets"];
|
|
11
|
+
categoryTree: () => readonly ["media", "categories", "tree"];
|
|
11
12
|
downloadUrl: (objectId: string) => readonly ["media", "download-url", string];
|
|
13
|
+
exportJob: (jobId: string) => readonly ["media", "export-job", string];
|
|
12
14
|
adminStats: () => readonly ["media", "admin", "stats"];
|
|
13
15
|
adminStaleUploads: <TParams extends QueryKeyParams>(params?: TParams) => readonly ["media", "admin", "stale-uploads", Readonly<Partial<TParams>>];
|
|
14
16
|
adminOrphans: <TParams extends QueryKeyParams>(params?: TParams) => readonly ["media", "admin", "orphans", Readonly<Partial<TParams>>];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,KAAK,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACvE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAazD,eAAO,MAAM,SAAS;;;uBAGF,gBAAgB;uBACf,MAAM;yBACJ,MAAM
|
|
1
|
+
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,KAAK,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AACvE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAazD,eAAO,MAAM,SAAS;;;uBAGF,gBAAgB;uBACf,MAAM;yBACJ,MAAM;;;4BAGH,MAAM;uBACX,MAAM;;wBAEL,OAAO,SAAS,cAAc,WAAW,OAAO;mBAErD,OAAO,SAAS,cAAc,WAAW,OAAO;;CAGhE,CAAC"}
|
|
@@ -14,7 +14,9 @@ export const mediaKeys = {
|
|
|
14
14
|
object: (objectId) => ["media", "object", objectId],
|
|
15
15
|
variants: (objectId) => ["media", "variants", objectId],
|
|
16
16
|
presets: () => ["media", "presets"],
|
|
17
|
+
categoryTree: () => ["media", "categories", "tree"],
|
|
17
18
|
downloadUrl: (objectId) => ["media", "download-url", objectId],
|
|
19
|
+
exportJob: (jobId) => ["media", "export-job", jobId],
|
|
18
20
|
adminStats: () => ["media", "admin", "stats"],
|
|
19
21
|
adminStaleUploads: (params) => ["media", "admin", "stale-uploads", normalizeParams(params)],
|
|
20
22
|
adminOrphans: (params) => ["media", "admin", "orphans", normalizeParams(params)],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryKeys.js","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAoC,CAAC;AAE1E,SAAS,eAAe,CAAiC,MAAgB;IACvE,IAAI,CAAC,MAAM;QAAE,OAAO,YAA0C,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACnC,MAAM,CAAC,CAAC,KAAK,EAAiF,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACxH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAExD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAA0C,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAU;IAChD,OAAO,EAAE,CAAC,SAA2B,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IAClG,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU;IACpE,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;IACxE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAU;IAC5C,WAAW,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAU;IAC/E,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU;IACtD,iBAAiB,EAAE,CAAiC,MAAgB,EAAE,EAAE,CACtE,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IACvE,YAAY,EAAE,CAAiC,MAAgB,EAAE,EAAE,CACjE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IACjE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAU;CACvE,CAAC"}
|
|
1
|
+
{"version":3,"file":"queryKeys.js","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAoC,CAAC;AAE1E,SAAS,eAAe,CAAiC,MAAgB;IACvE,IAAI,CAAC,MAAM;QAAE,OAAO,YAA0C,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACnC,MAAM,CAAC,CAAC,KAAK,EAAiF,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;SACxH,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAExD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAA0C,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAU;IAChD,OAAO,EAAE,CAAC,SAA2B,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IAClG,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAU;IACpE,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;IACxE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAU;IAC5C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAU;IAC5D,WAAW,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAU;IAC/E,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAU;IACrE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU;IACtD,iBAAiB,EAAE,CAAiC,MAAgB,EAAE,EAAE,CACtE,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IACvE,YAAY,EAAE,CAAiC,MAAgB,EAAE,EAAE,CACjE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IACjE,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAU;CACvE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create/rename/reparent/delete over the caller's user category tree
|
|
3
|
+
* (`useCategoryTree`). Reparenting and deleting are plain form actions, not
|
|
4
|
+
* drag-and-drop, per the 2026-08-18 decision — this keeps the manager
|
|
5
|
+
* Sonnet-scale and sidesteps the a11y/touch surface a draggable tree would
|
|
6
|
+
* need. This component owns CRUD only; browsing/filtering the tree is `U7`'s
|
|
7
|
+
* job on `MediaLibrary`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function CategoryManager(): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=CategoryManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryManager.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/CategoryManager.tsx"],"names":[],"mappings":"AAkQA;;;;;;;GAOG;AACH,wBAAgB,eAAe,gCA6C9B"}
|