@maas/payload-plugin-media-cloud 0.0.41 → 0.0.43
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/collectionHooks/afterChange.mjs +1 -25
- package/dist/collectionHooks/afterChange.mjs.map +1 -1
- package/dist/collectionHooks/thumbnail.d.mts +7 -0
- package/dist/collectionHooks/thumbnail.mjs +38 -0
- package/dist/collectionHooks/thumbnail.mjs.map +1 -0
- package/dist/collections/mediaCollection.mjs +10 -4
- package/dist/collections/mediaCollection.mjs.map +1 -1
- package/dist/components/folderFileCard/folderFileCard.mjs +3 -3
- package/dist/components/folderFileCard/folderFileCard.mjs.map +1 -1
- package/dist/components/gridView/gridView.d.mts +1 -1
- package/dist/components/gridView/gridView.mjs +3 -3
- package/dist/components/gridView/gridView.mjs.map +1 -1
- package/dist/utils/defaultOptions.mjs +1 -1
- package/dist/utils/defaultOptions.mjs.map +1 -1
- package/dist/utils/file.d.mts +2 -2
- package/dist/utils/tus.d.mts +3 -3
- package/package.json +1 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MediaCloudErrors } from "../types/errors.mjs";
|
|
2
2
|
import { useErrorHandler } from "../hooks/useErrorHandler.mjs";
|
|
3
|
-
import { buildThumbnailURL } from "../utils/buildThumbnailURL.mjs";
|
|
4
3
|
import { s3Store } from "../plugin.mjs";
|
|
5
4
|
|
|
6
5
|
//#region src/collectionHooks/afterChange.ts
|
|
7
|
-
const afterChangeHook = async ({
|
|
6
|
+
const afterChangeHook = async ({ doc, previousDoc, req }) => {
|
|
8
7
|
const { throwError } = useErrorHandler();
|
|
9
8
|
if (req.context?._mediaCloudPluginInternal) return doc;
|
|
10
9
|
if (doc.path !== previousDoc?.path) {
|
|
@@ -19,29 +18,6 @@ const afterChangeHook = async ({ collection, doc, previousDoc, req }) => {
|
|
|
19
18
|
});
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
|
-
if (!doc.thumbnail || previousDoc?.path !== doc.path) try {
|
|
23
|
-
const thumbnail = buildThumbnailURL({
|
|
24
|
-
storage: doc.storage,
|
|
25
|
-
playbackId: doc.storage === "mux" ? doc.mux.playbackId : void 0,
|
|
26
|
-
s3Key: doc.storage === "s3" ? doc.path ?? doc.filename : void 0,
|
|
27
|
-
s3Store
|
|
28
|
-
});
|
|
29
|
-
req.context = { ...req.context };
|
|
30
|
-
req.context._mediaCloudPluginInternal = true;
|
|
31
|
-
const update = await req.payload.update({
|
|
32
|
-
collection: collection.slug,
|
|
33
|
-
id: doc.id,
|
|
34
|
-
data: { thumbnail },
|
|
35
|
-
req
|
|
36
|
-
});
|
|
37
|
-
delete req.context._mediaCloudPluginInternal;
|
|
38
|
-
return update;
|
|
39
|
-
} catch (error) {
|
|
40
|
-
throwError({
|
|
41
|
-
...MediaCloudErrors.THUMBNAIL_GENERATION_ERROR,
|
|
42
|
-
cause: error
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
21
|
return doc;
|
|
46
22
|
};
|
|
47
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterChange.mjs","names":["afterChangeHook: CollectionAfterChangeHook"],"sources":["../../src/collectionHooks/afterChange.ts"],"sourcesContent":["import { buildThumbnailURL } from '../utils/buildThumbnailURL'\nimport { s3Store } from '../plugin'\nimport { MediaCloudErrors } from '../types/errors'\nimport { useErrorHandler } from '../hooks/useErrorHandler'\n\nimport type { CollectionAfterChangeHook } from 'payload'\n\nexport const afterChangeHook: CollectionAfterChangeHook = async ({\n
|
|
1
|
+
{"version":3,"file":"afterChange.mjs","names":["afterChangeHook: CollectionAfterChangeHook"],"sources":["../../src/collectionHooks/afterChange.ts"],"sourcesContent":["import { buildThumbnailURL } from '../utils/buildThumbnailURL'\nimport { s3Store } from '../plugin'\nimport { MediaCloudErrors } from '../types/errors'\nimport { useErrorHandler } from '../hooks/useErrorHandler'\n\nimport type { CollectionAfterChangeHook } from 'payload'\n\nexport const afterChangeHook: CollectionAfterChangeHook = async ({\n doc,\n previousDoc,\n req,\n}) => {\n const { throwError } = useErrorHandler()\n\n // Skip if this is an internal update to prevent infinite loop\n if (req.context?._mediaCloudPluginInternal) {\n return doc\n }\n\n // Move asset in S3 if path has changed\n if (doc.path !== previousDoc?.path) {\n if (doc.storage === 's3' && s3Store) {\n try {\n const oldKey = previousDoc?.path ?? previousDoc?.filename\n const newKey = doc.path\n\n await s3Store.copy(oldKey, newKey)\n } catch (error) {\n throwError({ ...MediaCloudErrors.S3_MOVE_ERROR, cause: error })\n }\n }\n }\n\n return doc\n}\n"],"mappings":";;;;;AAOA,MAAaA,kBAA6C,OAAO,EAC/D,KACA,aACA,UACI;CACJ,MAAM,EAAE,eAAe,iBAAiB;AAGxC,KAAI,IAAI,SAAS,0BACf,QAAO;AAIT,KAAI,IAAI,SAAS,aAAa,MAC5B;MAAI,IAAI,YAAY,QAAQ,QAC1B,KAAI;GACF,MAAM,SAAS,aAAa,QAAQ,aAAa;GACjD,MAAM,SAAS,IAAI;AAEnB,SAAM,QAAQ,KAAK,QAAQ,OAAO;WAC3B,OAAO;AACd,cAAW;IAAE,GAAG,iBAAiB;IAAe,OAAO;IAAO,CAAC;;;AAKrE,QAAO"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { MediaCloudErrors } from "../types/errors.mjs";
|
|
2
|
+
import { useErrorHandler } from "../hooks/useErrorHandler.mjs";
|
|
3
|
+
import { buildThumbnailURL } from "../utils/buildThumbnailURL.mjs";
|
|
4
|
+
import { s3Store } from "../plugin.mjs";
|
|
5
|
+
|
|
6
|
+
//#region src/collectionHooks/thumbnail.ts
|
|
7
|
+
const thumbnailHook = async ({ collection, doc, previousDoc, req }) => {
|
|
8
|
+
const { throwError } = useErrorHandler();
|
|
9
|
+
if (req.context?._mediaCloudPluginInternal) return doc;
|
|
10
|
+
if (!doc.thumbnail || previousDoc?.path !== doc.path) try {
|
|
11
|
+
const thumbnail = buildThumbnailURL({
|
|
12
|
+
storage: doc.storage,
|
|
13
|
+
playbackId: doc.storage === "mux" ? doc.mux.playbackId : void 0,
|
|
14
|
+
s3Key: doc.storage === "s3" ? doc.path ?? doc.filename : void 0,
|
|
15
|
+
s3Store
|
|
16
|
+
});
|
|
17
|
+
req.context = { ...req.context };
|
|
18
|
+
req.context._mediaCloudPluginInternal = true;
|
|
19
|
+
const update = await req.payload.update({
|
|
20
|
+
collection: collection.slug,
|
|
21
|
+
id: doc.id,
|
|
22
|
+
data: { thumbnail },
|
|
23
|
+
req
|
|
24
|
+
});
|
|
25
|
+
delete req.context._mediaCloudPluginInternal;
|
|
26
|
+
return update;
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throwError({
|
|
29
|
+
...MediaCloudErrors.THUMBNAIL_GENERATION_ERROR,
|
|
30
|
+
cause: error
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return doc;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { thumbnailHook };
|
|
38
|
+
//# sourceMappingURL=thumbnail.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thumbnail.mjs","names":["thumbnailHook: CollectionAfterChangeHook"],"sources":["../../src/collectionHooks/thumbnail.ts"],"sourcesContent":["import { buildThumbnailURL } from '../utils/buildThumbnailURL'\nimport { s3Store } from '../plugin'\nimport { MediaCloudErrors } from '../types/errors'\nimport { useErrorHandler } from '../hooks/useErrorHandler'\n\nimport type { CollectionAfterChangeHook } from 'payload'\n\nexport const thumbnailHook: CollectionAfterChangeHook = async ({\n collection,\n doc,\n previousDoc,\n req,\n}) => {\n const { throwError } = useErrorHandler()\n\n // Skip if this is an internal update to prevent infinite loop\n if (req.context?._mediaCloudPluginInternal) {\n return doc\n }\n\n // Handle thumbnail\n if (!doc.thumbnail || previousDoc?.path !== doc.path) {\n try {\n const thumbnail = buildThumbnailURL({\n storage: doc.storage,\n playbackId: doc.storage === 'mux' ? doc.mux.playbackId : undefined,\n s3Key: doc.storage === 's3' ? (doc.path ?? doc.filename) : undefined,\n s3Store,\n })\n\n req.context = { ...req.context }\n req.context._mediaCloudPluginInternal = true\n\n const update = await req.payload.update({\n collection: collection.slug,\n id: doc.id,\n data: { thumbnail },\n req,\n })\n\n delete req.context._mediaCloudPluginInternal\n\n return update\n } catch (error) {\n throwError({\n ...MediaCloudErrors.THUMBNAIL_GENERATION_ERROR,\n cause: error,\n })\n }\n }\n\n return doc\n}\n"],"mappings":";;;;;;AAOA,MAAaA,gBAA2C,OAAO,EAC7D,YACA,KACA,aACA,UACI;CACJ,MAAM,EAAE,eAAe,iBAAiB;AAGxC,KAAI,IAAI,SAAS,0BACf,QAAO;AAIT,KAAI,CAAC,IAAI,aAAa,aAAa,SAAS,IAAI,KAC9C,KAAI;EACF,MAAM,YAAY,kBAAkB;GAClC,SAAS,IAAI;GACb,YAAY,IAAI,YAAY,QAAQ,IAAI,IAAI,aAAa;GACzD,OAAO,IAAI,YAAY,OAAQ,IAAI,QAAQ,IAAI,WAAY;GAC3D;GACD,CAAC;AAEF,MAAI,UAAU,EAAE,GAAG,IAAI,SAAS;AAChC,MAAI,QAAQ,4BAA4B;EAExC,MAAM,SAAS,MAAM,IAAI,QAAQ,OAAO;GACtC,YAAY,WAAW;GACvB,IAAI,IAAI;GACR,MAAM,EAAE,WAAW;GACnB;GACD,CAAC;AAEF,SAAO,IAAI,QAAQ;AAEnB,SAAO;UACA,OAAO;AACd,aAAW;GACT,GAAG,iBAAiB;GACpB,OAAO;GACR,CAAC;;AAIN,QAAO"}
|
|
@@ -8,6 +8,7 @@ import { storageField } from "../fields/storage.mjs";
|
|
|
8
8
|
import { muxField } from "../fields/mux.mjs";
|
|
9
9
|
import { beforeChangeHook } from "../collectionHooks/beforeChange.mjs";
|
|
10
10
|
import { afterChangeHook } from "../collectionHooks/afterChange.mjs";
|
|
11
|
+
import { thumbnailHook } from "../collectionHooks/thumbnail.mjs";
|
|
11
12
|
|
|
12
13
|
//#region src/collections/mediaCollection.ts
|
|
13
14
|
/**
|
|
@@ -17,6 +18,14 @@ import { afterChangeHook } from "../collectionHooks/afterChange.mjs";
|
|
|
17
18
|
*/
|
|
18
19
|
function getMediaCollection(args) {
|
|
19
20
|
const { baseCollection, view, folders } = args;
|
|
21
|
+
const hooks = {
|
|
22
|
+
beforeChange: [],
|
|
23
|
+
afterChange: [thumbnailHook]
|
|
24
|
+
};
|
|
25
|
+
if (folders) {
|
|
26
|
+
hooks.beforeChange = [beforeChangeHook, ...hooks.beforeChange ?? []];
|
|
27
|
+
hooks.afterChange = [afterChangeHook, ...hooks.afterChange ?? []];
|
|
28
|
+
}
|
|
20
29
|
const config = {
|
|
21
30
|
slug: "media",
|
|
22
31
|
access: {
|
|
@@ -47,10 +56,7 @@ function getMediaCollection(args) {
|
|
|
47
56
|
storageField,
|
|
48
57
|
muxField
|
|
49
58
|
],
|
|
50
|
-
hooks
|
|
51
|
-
beforeChange: [beforeChangeHook],
|
|
52
|
-
afterChange: [afterChangeHook]
|
|
53
|
-
}
|
|
59
|
+
hooks
|
|
54
60
|
};
|
|
55
61
|
if (!baseCollection) return config;
|
|
56
62
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaCollection.mjs","names":["config: CollectionConfig"],"sources":["../../src/collections/mediaCollection.ts"],"sourcesContent":["import { thumbnailField } from '../fields/thumbnail'\nimport { pathField } from '../fields/path'\nimport { filenameField } from '../fields/filename'\nimport { altField } from '../fields/alt'\nimport { widthField } from '../fields/width'\nimport { heightField } from '../fields/height'\nimport { storageField } from '../fields/storage'\nimport { muxField } from '../fields/mux'\n\nimport { beforeChangeHook } from '../collectionHooks/beforeChange'\nimport { afterChangeHook } from '../collectionHooks/afterChange'\n\nimport type { CollectionConfig } from 'payload'\nimport type { Document } from 'payload'\nimport type { MediaCloudPluginOptions } from '../types/index'\n\ninterface GetMediaCollectionArgs {\n view: MediaCloudPluginOptions['view']\n folders: MediaCloudPluginOptions['folders']\n baseCollection?: CollectionConfig\n}\n\n/**\n * Creates a media collection configuration for Payload CMS\n * @param args - Arguments including the S3Store instance\n * @returns A configured Payload collection for media files\n */\nexport function getMediaCollection(\n args: GetMediaCollectionArgs\n): CollectionConfig {\n const { baseCollection, view, folders } = args\n\n // Override list view to use grid view if specified\n const components =\n view === 'grid'\n ? {\n views: {\n list: {\n Component: '@maas/payload-plugin-media-cloud/components#GridView',\n },\n },\n }\n : undefined\n\n const config: CollectionConfig = {\n slug: 'media',\n access: {\n read: () => true,\n delete: () => true,\n },\n admin: {\n components,\n group: 'Media Cloud',\n pagination: {\n defaultLimit: 50,\n },\n },\n upload: {\n crop: false,\n displayPreview: true,\n hideRemoveFile: true,\n adminThumbnail({ doc }: { doc: Document }) {\n return doc.thumbnail ?? null\n },\n },\n fields: [\n thumbnailField,\n pathField,\n altField,\n {\n type: 'row',\n fields: [widthField, heightField],\n },\n storageField,\n muxField,\n ],\n hooks:
|
|
1
|
+
{"version":3,"file":"mediaCollection.mjs","names":["hooks: CollectionConfig['hooks']","config: CollectionConfig"],"sources":["../../src/collections/mediaCollection.ts"],"sourcesContent":["import { thumbnailField } from '../fields/thumbnail'\nimport { pathField } from '../fields/path'\nimport { filenameField } from '../fields/filename'\nimport { altField } from '../fields/alt'\nimport { widthField } from '../fields/width'\nimport { heightField } from '../fields/height'\nimport { storageField } from '../fields/storage'\nimport { muxField } from '../fields/mux'\n\nimport { beforeChangeHook } from '../collectionHooks/beforeChange'\nimport { afterChangeHook } from '../collectionHooks/afterChange'\n\nimport type { CollectionConfig } from 'payload'\nimport type { Document } from 'payload'\nimport type { MediaCloudPluginOptions } from '../types/index'\nimport { before } from 'node:test'\nimport { thumbnailHook } from '../collectionHooks/thumbnail'\n\ninterface GetMediaCollectionArgs {\n view: MediaCloudPluginOptions['view']\n folders: MediaCloudPluginOptions['folders']\n baseCollection?: CollectionConfig\n}\n\n/**\n * Creates a media collection configuration for Payload CMS\n * @param args - Arguments including the S3Store instance\n * @returns A configured Payload collection for media files\n */\nexport function getMediaCollection(\n args: GetMediaCollectionArgs\n): CollectionConfig {\n const { baseCollection, view, folders } = args\n\n const hooks: CollectionConfig['hooks'] = {\n beforeChange: [],\n afterChange: [thumbnailHook],\n }\n\n // Add hooks for folder support if enabled\n if (folders) {\n hooks.beforeChange = [beforeChangeHook, ...(hooks.beforeChange ?? [])]\n hooks.afterChange = [afterChangeHook, ...(hooks.afterChange ?? [])]\n }\n\n // Override list view to use grid view if specified\n const components =\n view === 'grid'\n ? {\n views: {\n list: {\n Component: '@maas/payload-plugin-media-cloud/components#GridView',\n },\n },\n }\n : undefined\n\n const config: CollectionConfig = {\n slug: 'media',\n access: {\n read: () => true,\n delete: () => true,\n },\n admin: {\n components,\n group: 'Media Cloud',\n pagination: {\n defaultLimit: 50,\n },\n },\n upload: {\n crop: false,\n displayPreview: true,\n hideRemoveFile: true,\n adminThumbnail({ doc }: { doc: Document }) {\n return doc.thumbnail ?? null\n },\n },\n fields: [\n thumbnailField,\n pathField,\n altField,\n {\n type: 'row',\n fields: [widthField, heightField],\n },\n storageField,\n muxField,\n ],\n hooks: hooks,\n }\n\n if (!baseCollection) {\n return config\n }\n\n return {\n ...baseCollection,\n slug: baseCollection.slug ?? config.slug,\n admin: {\n ...(config.admin ?? {}),\n ...(baseCollection.admin ?? {}),\n },\n access: {\n ...(config.access ?? {}),\n ...(baseCollection.access ?? {}),\n },\n upload: config.upload,\n fields: [...(baseCollection.fields ?? []), ...config.fields, filenameField],\n hooks: {\n ...baseCollection.hooks,\n beforeChange: [\n ...(baseCollection.hooks?.beforeChange ?? []),\n ...(config.hooks?.beforeChange ?? []),\n ],\n afterChange: [\n ...(baseCollection.hooks?.afterChange ?? []),\n ...(config.hooks?.afterChange ?? []),\n ],\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAgB,mBACd,MACkB;CAClB,MAAM,EAAE,gBAAgB,MAAM,YAAY;CAE1C,MAAMA,QAAmC;EACvC,cAAc,EAAE;EAChB,aAAa,CAAC,cAAc;EAC7B;AAGD,KAAI,SAAS;AACX,QAAM,eAAe,CAAC,kBAAkB,GAAI,MAAM,gBAAgB,EAAE,CAAE;AACtE,QAAM,cAAc,CAAC,iBAAiB,GAAI,MAAM,eAAe,EAAE,CAAE;;CAerE,MAAMC,SAA2B;EAC/B,MAAM;EACN,QAAQ;GACN,YAAY;GACZ,cAAc;GACf;EACD,OAAO;GACL,YAjBF,SAAS,SACL,EACE,OAAO,EACL,MAAM,EACJ,WAAW,wDACZ,EACF,EACF,GACD;GAUF,OAAO;GACP,YAAY,EACV,cAAc,IACf;GACF;EACD,QAAQ;GACN,MAAM;GACN,gBAAgB;GAChB,gBAAgB;GAChB,eAAe,EAAE,OAA0B;AACzC,WAAO,IAAI,aAAa;;GAE3B;EACD,QAAQ;GACN;GACA;GACA;GACA;IACE,MAAM;IACN,QAAQ,CAAC,YAAY,YAAY;IAClC;GACD;GACA;GACD;EACM;EACR;AAED,KAAI,CAAC,eACH,QAAO;AAGT,QAAO;EACL,GAAG;EACH,MAAM,eAAe,QAAQ,OAAO;EACpC,OAAO;GACL,GAAI,OAAO,SAAS,EAAE;GACtB,GAAI,eAAe,SAAS,EAAE;GAC/B;EACD,QAAQ;GACN,GAAI,OAAO,UAAU,EAAE;GACvB,GAAI,eAAe,UAAU,EAAE;GAChC;EACD,QAAQ,OAAO;EACf,QAAQ;GAAC,GAAI,eAAe,UAAU,EAAE;GAAG,GAAG,OAAO;GAAQ;GAAc;EAC3E,OAAO;GACL,GAAG,eAAe;GAClB,cAAc,CACZ,GAAI,eAAe,OAAO,gBAAgB,EAAE,EAC5C,GAAI,OAAO,OAAO,gBAAgB,EAAE,CACrC;GACD,aAAa,CACX,GAAI,eAAe,OAAO,eAAe,EAAE,EAC3C,GAAI,OAAO,OAAO,eAAe,EAAE,CACpC;GACF;EACF"}
|
|
@@ -48,14 +48,14 @@ function ContextFolderFileCard(props) {
|
|
|
48
48
|
$[10] = t2;
|
|
49
49
|
} else t2 = $[10];
|
|
50
50
|
let t3;
|
|
51
|
-
if ($[11] !== className || $[12] !== isFocused || $[13] !== isSelected || $[14] !== item.id || $[15] !== item.itemKey || $[16] !== item.
|
|
51
|
+
if ($[11] !== className || $[12] !== isFocused || $[13] !== isSelected || $[14] !== item.id || $[15] !== item.itemKey || $[16] !== item.thumbnail || $[17] !== item.title || $[18] !== t1 || $[19] !== t2) {
|
|
52
52
|
t3 = /* @__PURE__ */ jsx(FolderFileCard, {
|
|
53
53
|
className,
|
|
54
54
|
id: item.id,
|
|
55
55
|
isFocused,
|
|
56
56
|
isSelected,
|
|
57
57
|
itemKey: item.itemKey,
|
|
58
|
-
previewUrl: item.
|
|
58
|
+
previewUrl: item.thumbnail,
|
|
59
59
|
title: item.title,
|
|
60
60
|
type: "file",
|
|
61
61
|
onClick: t1,
|
|
@@ -66,7 +66,7 @@ function ContextFolderFileCard(props) {
|
|
|
66
66
|
$[13] = isSelected;
|
|
67
67
|
$[14] = item.id;
|
|
68
68
|
$[15] = item.itemKey;
|
|
69
|
-
$[16] = item.
|
|
69
|
+
$[16] = item.thumbnail;
|
|
70
70
|
$[17] = item.title;
|
|
71
71
|
$[18] = t1;
|
|
72
72
|
$[19] = t2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderFileCard.mjs","names":["useMemo","FolderFileCard","useSelection","useGrid","jsx","_jsx","ContextFolderFileCard","props","$","_c","className","index","item","focusedItemIndex","onItemClick","onItemKeyPress","selectedIDs","t0","id","includes","isSelected","isFocused","t1","event","t2","event_0","t3","itemKey","
|
|
1
|
+
{"version":3,"file":"folderFileCard.mjs","names":["useMemo","FolderFileCard","useSelection","useGrid","jsx","_jsx","ContextFolderFileCard","props","$","_c","className","index","item","focusedItemIndex","onItemClick","onItemKeyPress","selectedIDs","t0","id","includes","isSelected","isFocused","t1","event","t2","event_0","t3","itemKey","thumbnail","title","previewUrl","type","onClick","onKeyDown"],"sources":["../../../src/components/folderFileCard/folderFileCard.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { FolderFileCard } from '@payloadcms/ui/elements/FolderView/FolderFileCard'\nimport { useSelection } from '@payloadcms/ui'\nimport { useGrid } from '../gridContext/gridContext'\n\nimport type { MappedDocument } from '../gridView/gridView'\n\ntype ContextCardProps = {\n readonly className?: string\n readonly index: number\n readonly item: MappedDocument\n}\n\nexport function ContextFolderFileCard(props: ContextCardProps) {\n const { className, index, item } = props\n\n const { focusedItemIndex, onItemClick, onItemKeyPress } = useGrid()\n const { selectedIDs } = useSelection()\n\n const isSelected = useMemo(\n () => selectedIDs.includes(item.id),\n [selectedIDs, item.id]\n )\n\n const isFocused = useMemo(\n () => focusedItemIndex === index,\n [focusedItemIndex, index]\n )\n\n return (\n <FolderFileCard\n className={className}\n id={item.id}\n isFocused={isFocused}\n isSelected={isSelected}\n itemKey={item.itemKey}\n previewUrl={item.thumbnail}\n title={item.title}\n type={'file'}\n onClick={(event) => {\n void onItemClick({ event, index, item })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({ event, index, item })\n }}\n />\n )\n}\n"],"mappings":";;;;;;;AAaA,SAAOM,sBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAC,WAAAC,OAAAC,SAAmCL;CAEnC,MAAA,EAAAM,kBAAAC,aAAAC,mBAA0DZ,SAAS;CACnE,MAAA,EAAAa,gBAAwBd,cAAc;CAAA,IAAAe;AAAA,KAAAT,EAAA,OAAAI,KAAAM,MAAAV,EAAA,OAAAQ,aAAA;AAG9BC,OAAAD,YAAWG,SAAUP,KAAIM,GAAI;AAAAV,IAAA,KAAAI,KAAAM;AAAAV,IAAA,KAAAQ;AAAAR,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CADrC,MAAAY,aACQH;CAIR,MAAAI,YACQR,qBAAqBF;CAE5B,IAAAW;AAAA,KAAAd,EAAA,OAAAG,SAAAH,EAAA,OAAAI,QAAAJ,EAAA,OAAAM,aAAA;AAYYQ,QAAAC,UAAA;AACFT,eAAY;IAAAS;IAAAZ;IAAAC;IAAsB,CAAC;;AACzCJ,IAAA,KAAAG;AAAAH,IAAA,KAAAI;AAAAJ,IAAA,KAAAM;AAAAN,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAG,SAAAH,EAAA,OAAAI,QAAAJ,EAAA,OAAAO,gBAAA;AACUS,QAAAC,YAAA;AACJV,kBAAe;IAAAQ,OAAEA;IAAKZ;IAAAC;IAAe,CAAC;;AAC5CJ,IAAA,KAAAG;AAAAH,IAAA,KAAAI;AAAAJ,IAAA,KAAAO;AAAAP,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAkB;AAAA,KAAAlB,EAAA,QAAAE,aAAAF,EAAA,QAAAa,aAAAb,EAAA,QAAAY,cAAAZ,EAAA,QAAAI,KAAAM,MAAAV,EAAA,QAAAI,KAAAe,WAAAnB,EAAA,QAAAI,KAAAgB,aAAApB,EAAA,QAAAI,KAAAiB,SAAArB,EAAA,QAAAc,MAAAd,EAAA,QAAAgB,IAAA;AAdHE,OAAArB,oBAACJ,gBAAc;GACFS;GACPQ,IAAAN,KAAIM;GACGG;GACCD;GACHO,SAAAf,KAAIe;GACDG,YAAAlB,KAAIgB;GACTC,OAAAjB,KAAIiB;GACLE,MAAA;GACGC,SAAAV;GAGEW,WAAAT;GAGZ,CAAC;AAAAhB,IAAA,MAAAE;AAAAF,IAAA,MAAAa;AAAAb,IAAA,MAAAY;AAAAZ,IAAA,MAAAI,KAAAM;AAAAV,IAAA,MAAAI,KAAAe;AAAAnB,IAAA,MAAAI,KAAAgB;AAAApB,IAAA,MAAAI,KAAAiB;AAAArB,IAAA,MAAAc;AAAAd,IAAA,MAAAgB;AAAAhB,IAAA,MAAAkB;OAAAA,MAAAlB,EAAA;AAAA,QAfFkB"}
|
|
@@ -54,7 +54,7 @@ function GridView(props) {
|
|
|
54
54
|
const isBulkUploadEnabled = (Boolean(upload) && collectionConfig.upload?.bulkUpload) ?? true;
|
|
55
55
|
const isTrashEnabled = Boolean(collectionConfig.trash);
|
|
56
56
|
const { onBulkSelect, isInDrawer } = useListDrawerContext();
|
|
57
|
-
const
|
|
57
|
+
const getThumbnail = _temp;
|
|
58
58
|
let t6;
|
|
59
59
|
if ($[7] !== collectionSlug || $[8] !== docs) {
|
|
60
60
|
let t7$1;
|
|
@@ -66,7 +66,7 @@ function GridView(props) {
|
|
|
66
66
|
itemKey: doc_0.id.toString(),
|
|
67
67
|
storage: doc_0.storage,
|
|
68
68
|
title,
|
|
69
|
-
|
|
69
|
+
thumbnail: getThumbnail(doc_0),
|
|
70
70
|
relationTo: collectionSlug
|
|
71
71
|
};
|
|
72
72
|
};
|
|
@@ -369,7 +369,7 @@ function GridView(props) {
|
|
|
369
369
|
return t25;
|
|
370
370
|
}
|
|
371
371
|
function _temp(doc) {
|
|
372
|
-
if (doc?.
|
|
372
|
+
if (doc?.thumbnail) return doc.thumbnail;
|
|
373
373
|
if (doc?.storage === "mux" && doc?.mux?.playbackId) return `https://image.mux.com/${doc.mux.playbackId}/thumbnail.jpg?width=400&height=400&fit_mode=pad`;
|
|
374
374
|
}
|
|
375
375
|
var gridView_default = GridView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridView.mjs","names":["c","_c","React","Fragment","useMemo","useEffect","useRouter","getTranslation","Gutter","useListQuery","useConfig","SelectionProvider","useTranslation","useWindowInfo","useBulkUpload","useModal","useStepNav","ListSelection","ListControls","ListHeader","PageControls","useListDrawerContext","DefaultListViewTabs","formatAdminURL","ItemCardGrid","GridProvider","SelectMany","jsx","_jsx","jsxs","_jsxs","GridView","props","$","collectionSlug","AfterList","AfterListTable","BeforeList","BeforeListTable","Description","newDocumentURL","hasCreatePermission","hasDeletePermission","disableBulkDelete","disableBulkEdit","enableRowSelections","beforeActions","viewType","config","getEntityConfig","routes","t0","admin","adminRoute","router","data","t1","docs","t2","t3","undefined","i18n","setStepNav","openModal","drawerSlug","bulkUploadDrawerSlug","setCollectionSlug","setBulkUploadCollectionSlug","setOnSuccess","breakpoints","t4","s","smallBreak","t5","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isTrashEnabled","trash","onBulkSelect","isInDrawer","getThumbnailURL","_temp","t6","t7","doc_0","title","doc","filename","alt","String","id","itemKey","toString","storage","thumbnailURL","relationTo","map","mappedDocs","refresh","openBulkUpload","t8","plural","baseLabel","label","url","path","trashLabel","t","navItems","t9","t10","totalDocs","t11","t12","t13","t14","filter","t15","t16","Actions","onBulkUploadSuccess","t17","t18","enableColumns","t19","length","singular","className","children","type","onClick","push","t20","AfterPageControls","t21","t22","t23","t24","t25","mux","playbackId"],"sources":["../../../src/components/gridView/gridView.tsx"],"sourcesContent":["'use client'\n\nimport React, { Fragment, useMemo, useEffect } from 'react'\nimport { useRouter } from 'next/navigation'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Gutter,\n useListQuery,\n useConfig,\n SelectionProvider,\n useTranslation,\n useWindowInfo,\n useBulkUpload,\n useModal,\n useStepNav,\n ListSelection,\n ListControls,\n ListHeader,\n PageControls,\n useListDrawerContext,\n} from '@payloadcms/ui'\nimport { DefaultListViewTabs } from '@payloadcms/ui/elements/DefaultListViewTabs'\nimport { formatAdminURL } from 'payload/shared'\nimport { ItemCardGrid } from '../itemCardGrid/itemCardGrid'\nimport { GridProvider } from '../gridContext/gridContext'\nimport { SelectMany } from '../selectMany/selectMany'\n\nimport type { ListViewClientProps } from 'payload'\n\nimport './gridView.css'\n\n// Type for media document with common properties\ninterface MediaDocument {\n id: string | number\n storage: 'mux' | 's3'\n filename?: string\n alt?: string\n mimeType?: string\n url?: string\n thumbnailURL?: string\n mux?: {\n playbackId?: string\n }\n}\n\nexport interface MappedDocument {\n id: string | number\n itemKey: string\n storage: 'mux' | 's3'\n title: string\n thumbnailURL?: string\n relationTo: string\n}\n\nexport function GridView(props: ListViewClientProps): React.JSX.Element {\n const baseClass = 'grid-view'\n\n const {\n collectionSlug,\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n newDocumentURL,\n hasCreatePermission,\n hasDeletePermission,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n beforeActions,\n viewType,\n } = props\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const router = useRouter()\n\n const { data } = useListQuery() ?? {}\n const { docs = [] } = data ?? {}\n\n const { i18n } = useTranslation()\n const { setStepNav } = useStepNav()\n const { openModal } = useModal()\n\n const {\n drawerSlug: bulkUploadDrawerSlug,\n setCollectionSlug: setBulkUploadCollectionSlug,\n setOnSuccess,\n } = useBulkUpload()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled =\n (isUploadCollection && collectionConfig.upload?.bulkUpload) ?? true\n\n const isTrashEnabled = Boolean(collectionConfig.trash)\n\n const { onBulkSelect, isInDrawer } = useListDrawerContext()\n\n const getThumbnailURL = (doc: MediaDocument): string | undefined => {\n if (doc?.thumbnailURL) {\n return doc.thumbnailURL\n }\n\n if (doc?.storage === 'mux' && doc?.mux?.playbackId) {\n return `https://image.mux.com/${doc.mux.playbackId}/thumbnail.jpg?width=400&height=400&fit_mode=pad`\n }\n\n return undefined\n }\n\n const mappedDocs: MappedDocument[] = useMemo(() => {\n return docs.map((doc: MediaDocument) => {\n const title = doc.filename ?? doc.alt ?? String(doc.id)\n return {\n id: doc.id,\n itemKey: doc.id.toString(),\n storage: doc.storage,\n title: title,\n thumbnailURL: getThumbnailURL(doc),\n relationTo: collectionSlug,\n }\n })\n }, [docs, collectionSlug])\n\n const openBulkUpload = React.useCallback(() => {\n setBulkUploadCollectionSlug(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(() => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setBulkUploadCollectionSlug,\n setOnSuccess,\n ])\n\n // Set breadcrumb navigation\n useEffect(() => {\n const baseLabel = {\n label: getTranslation(labels?.plural, i18n),\n url:\n isTrashEnabled && viewType === 'trash'\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n }\n const trashLabel = {\n label: i18n.t('general:trash'),\n }\n const navItems =\n isTrashEnabled && viewType === 'trash'\n ? [baseLabel, trashLabel]\n : [baseLabel]\n setStepNav(navItems)\n }, [\n adminRoute,\n setStepNav,\n labels,\n isTrashEnabled,\n viewType,\n i18n,\n collectionSlug,\n ])\n\n return (\n <SelectionProvider docs={docs} totalDocs={data?.totalDocs ?? 0}>\n <GridProvider allowMultiSelection={enableRowSelections} docs={mappedDocs}>\n <div className={`grid-view grid-view--${collectionSlug}`}>\n <Fragment>\n {BeforeList}\n <Gutter className={`${baseClass}__wrapper collection-list__wrap`}>\n <ListHeader\n Actions={[\n beforeActions,\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={\n collectionConfig.disableBulkEdit ?? disableBulkEdit\n }\n key=\"list-selection\"\n label={getTranslation(labels?.plural, i18n)}\n />\n ),\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType=\"list\"\n />,\n ].filter(Boolean)}\n collectionConfig={collectionConfig}\n Description={Description}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasCreatePermission={hasCreatePermission}\n hasDeletePermission={hasDeletePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled}\n isTrashEnabled={isTrashEnabled}\n newDocumentURL={newDocumentURL}\n onBulkUploadSuccess={() => router.refresh()}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n viewType={viewType}\n />\n <ListControls\n beforeActions={\n isInDrawer && typeof onBulkSelect === 'function'\n ? [\n ...(beforeActions ?? []),\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n enableColumns={false}\n />\n {BeforeListTable}\n {docs.length === 0 ? (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t(\n viewType === 'trash'\n ? 'general:noTrashResults'\n : 'general:noResults',\n {\n label: getTranslation(labels?.plural, i18n),\n }\n )}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <div className={`${baseClass}__no-results__actions`}>\n <button\n type=\"button\"\n onClick={() => router.push(newDocumentURL)}\n className={`${baseClass}__create-link btn btn--icon-style-without-border btn--size-small btn--withoutPopup btn--style-pill btn--withoutPopup`}\n >\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </button>\n </div>\n )}\n </div>\n ) : (\n <ItemCardGrid\n items={mappedDocs}\n adminRoute={adminRoute}\n collectionSlug={collectionSlug}\n />\n )}\n {docs?.length > 0 && (\n <PageControls\n AfterPageControls={\n smallBreak ? (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n label={getTranslation(\n collectionConfig.labels.plural,\n i18n\n )}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {typeof onBulkSelect === 'function'\n ? [\n ...(beforeActions ?? []),\n <SelectMany\n key=\"select-many\"\n onClick={onBulkSelect}\n />,\n ]\n : beforeActions}\n </div>\n </div>\n ) : null\n }\n collectionConfig={collectionConfig}\n />\n )}\n {AfterListTable}\n </Gutter>\n {AfterList}\n </Fragment>\n </div>\n </GridProvider>\n </SelectionProvider>\n )\n}\n\nexport default GridView\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gridView.mjs","names":["c","_c","React","Fragment","useMemo","useEffect","useRouter","getTranslation","Gutter","useListQuery","useConfig","SelectionProvider","useTranslation","useWindowInfo","useBulkUpload","useModal","useStepNav","ListSelection","ListControls","ListHeader","PageControls","useListDrawerContext","DefaultListViewTabs","formatAdminURL","ItemCardGrid","GridProvider","SelectMany","jsx","_jsx","jsxs","_jsxs","GridView","props","$","collectionSlug","AfterList","AfterListTable","BeforeList","BeforeListTable","Description","newDocumentURL","hasCreatePermission","hasDeletePermission","disableBulkDelete","disableBulkEdit","enableRowSelections","beforeActions","viewType","config","getEntityConfig","routes","t0","admin","adminRoute","router","data","t1","docs","t2","t3","undefined","i18n","setStepNav","openModal","drawerSlug","bulkUploadDrawerSlug","setCollectionSlug","setBulkUploadCollectionSlug","setOnSuccess","breakpoints","t4","s","smallBreak","t5","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isTrashEnabled","trash","onBulkSelect","isInDrawer","getThumbnail","_temp","t6","t7","doc_0","title","doc","filename","alt","String","id","itemKey","toString","storage","thumbnail","relationTo","map","mappedDocs","refresh","openBulkUpload","t8","plural","baseLabel","label","url","path","trashLabel","t","navItems","t9","t10","totalDocs","t11","t12","t13","t14","filter","t15","t16","Actions","onBulkUploadSuccess","t17","t18","enableColumns","t19","length","singular","className","children","type","onClick","push","t20","AfterPageControls","t21","t22","t23","t24","t25","mux","playbackId"],"sources":["../../../src/components/gridView/gridView.tsx"],"sourcesContent":["'use client'\n\nimport React, { Fragment, useMemo, useEffect } from 'react'\nimport { useRouter } from 'next/navigation'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Gutter,\n useListQuery,\n useConfig,\n SelectionProvider,\n useTranslation,\n useWindowInfo,\n useBulkUpload,\n useModal,\n useStepNav,\n ListSelection,\n ListControls,\n ListHeader,\n PageControls,\n useListDrawerContext,\n} from '@payloadcms/ui'\nimport { DefaultListViewTabs } from '@payloadcms/ui/elements/DefaultListViewTabs'\nimport { formatAdminURL } from 'payload/shared'\nimport { ItemCardGrid } from '../itemCardGrid/itemCardGrid'\nimport { GridProvider } from '../gridContext/gridContext'\nimport { SelectMany } from '../selectMany/selectMany'\n\nimport type { ListViewClientProps } from 'payload'\n\nimport './gridView.css'\n\n// Type for media document with common properties\ninterface MediaDocument {\n id: string | number\n storage: 'mux' | 's3'\n filename?: string\n alt?: string\n mimeType?: string\n url?: string\n thumbnail?: string\n mux?: {\n playbackId?: string\n }\n}\n\nexport interface MappedDocument {\n id: string | number\n itemKey: string\n storage: 'mux' | 's3'\n title: string\n thumbnail?: string\n relationTo: string\n}\n\nexport function GridView(props: ListViewClientProps): React.JSX.Element {\n const baseClass = 'grid-view'\n\n const {\n collectionSlug,\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n newDocumentURL,\n hasCreatePermission,\n hasDeletePermission,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n beforeActions,\n viewType,\n } = props\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const router = useRouter()\n\n const { data } = useListQuery() ?? {}\n const { docs = [] } = data ?? {}\n\n const { i18n } = useTranslation()\n const { setStepNav } = useStepNav()\n const { openModal } = useModal()\n\n const {\n drawerSlug: bulkUploadDrawerSlug,\n setCollectionSlug: setBulkUploadCollectionSlug,\n setOnSuccess,\n } = useBulkUpload()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled =\n (isUploadCollection && collectionConfig.upload?.bulkUpload) ?? true\n\n const isTrashEnabled = Boolean(collectionConfig.trash)\n\n const { onBulkSelect, isInDrawer } = useListDrawerContext()\n\n const getThumbnail = (doc: MediaDocument): string | undefined => {\n if (doc?.thumbnail) {\n return doc.thumbnail\n }\n\n if (doc?.storage === 'mux' && doc?.mux?.playbackId) {\n return `https://image.mux.com/${doc.mux.playbackId}/thumbnail.jpg?width=400&height=400&fit_mode=pad`\n }\n\n return undefined\n }\n\n const mappedDocs: MappedDocument[] = useMemo(() => {\n return docs.map((doc: MediaDocument) => {\n const title = doc.filename ?? doc.alt ?? String(doc.id)\n return {\n id: doc.id,\n itemKey: doc.id.toString(),\n storage: doc.storage,\n title: title,\n thumbnail: getThumbnail(doc),\n relationTo: collectionSlug,\n }\n })\n }, [docs, collectionSlug])\n\n const openBulkUpload = React.useCallback(() => {\n setBulkUploadCollectionSlug(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(() => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setBulkUploadCollectionSlug,\n setOnSuccess,\n ])\n\n // Set breadcrumb navigation\n useEffect(() => {\n const baseLabel = {\n label: getTranslation(labels?.plural, i18n),\n url:\n isTrashEnabled && viewType === 'trash'\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n }\n const trashLabel = {\n label: i18n.t('general:trash'),\n }\n const navItems =\n isTrashEnabled && viewType === 'trash'\n ? [baseLabel, trashLabel]\n : [baseLabel]\n setStepNav(navItems)\n }, [\n adminRoute,\n setStepNav,\n labels,\n isTrashEnabled,\n viewType,\n i18n,\n collectionSlug,\n ])\n\n return (\n <SelectionProvider docs={docs} totalDocs={data?.totalDocs ?? 0}>\n <GridProvider allowMultiSelection={enableRowSelections} docs={mappedDocs}>\n <div className={`grid-view grid-view--${collectionSlug}`}>\n <Fragment>\n {BeforeList}\n <Gutter className={`${baseClass}__wrapper collection-list__wrap`}>\n <ListHeader\n Actions={[\n beforeActions,\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={\n collectionConfig.disableBulkEdit ?? disableBulkEdit\n }\n key=\"list-selection\"\n label={getTranslation(labels?.plural, i18n)}\n />\n ),\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType=\"list\"\n />,\n ].filter(Boolean)}\n collectionConfig={collectionConfig}\n Description={Description}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hasCreatePermission={hasCreatePermission}\n hasDeletePermission={hasDeletePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled}\n isTrashEnabled={isTrashEnabled}\n newDocumentURL={newDocumentURL}\n onBulkUploadSuccess={() => router.refresh()}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n viewType={viewType}\n />\n <ListControls\n beforeActions={\n isInDrawer && typeof onBulkSelect === 'function'\n ? [\n ...(beforeActions ?? []),\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n enableColumns={false}\n />\n {BeforeListTable}\n {docs.length === 0 ? (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t(\n viewType === 'trash'\n ? 'general:noTrashResults'\n : 'general:noResults',\n {\n label: getTranslation(labels?.plural, i18n),\n }\n )}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <div className={`${baseClass}__no-results__actions`}>\n <button\n type=\"button\"\n onClick={() => router.push(newDocumentURL)}\n className={`${baseClass}__create-link btn btn--icon-style-without-border btn--size-small btn--withoutPopup btn--style-pill btn--withoutPopup`}\n >\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </button>\n </div>\n )}\n </div>\n ) : (\n <ItemCardGrid\n items={mappedDocs}\n adminRoute={adminRoute}\n collectionSlug={collectionSlug}\n />\n )}\n {docs?.length > 0 && (\n <PageControls\n AfterPageControls={\n smallBreak ? (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n label={getTranslation(\n collectionConfig.labels.plural,\n i18n\n )}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {typeof onBulkSelect === 'function'\n ? [\n ...(beforeActions ?? []),\n <SelectMany\n key=\"select-many\"\n onClick={onBulkSelect}\n />,\n ]\n : beforeActions}\n </div>\n </div>\n ) : null\n }\n collectionConfig={collectionConfig}\n />\n )}\n {AfterListTable}\n </Gutter>\n {AfterList}\n </Fragment>\n </div>\n </GridProvider>\n </SelectionProvider>\n )\n}\n\nexport default GridView\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultOptions.mjs","names":["defaultOptions: MediaCloudDefaultPluginOptions"],"sources":["../../src/utils/defaultOptions.ts"],"sourcesContent":["import { MediaCloudDefaultPluginOptions } from '../types'\n\nexport const defaultOptions: MediaCloudDefaultPluginOptions = {\n enabled: true,\n collection: 'media',\n view: 'grid',\n folders:
|
|
1
|
+
{"version":3,"file":"defaultOptions.mjs","names":["defaultOptions: MediaCloudDefaultPluginOptions"],"sources":["../../src/utils/defaultOptions.ts"],"sourcesContent":["import { MediaCloudDefaultPluginOptions } from '../types'\n\nexport const defaultOptions: MediaCloudDefaultPluginOptions = {\n enabled: true,\n collection: 'media',\n view: 'grid',\n folders: false,\n storage: {\n 'video/*': 'mux',\n },\n limits: {\n mimeTypes: ['image/*', 'video/*'],\n fileSize: Infinity,\n concurrency: 10,\n },\n}\n"],"mappings":";AAEA,MAAaA,iBAAiD;CAC5D,SAAS;CACT,YAAY;CACZ,MAAM;CACN,SAAS;CACT,SAAS,EACP,WAAW,OACZ;CACD,QAAQ;EACN,WAAW,CAAC,WAAW,UAAU;EACjC,UAAU;EACV,aAAa;EACd;CACF"}
|
package/dist/utils/file.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MediaCloudPluginOptions, MimeType } from "../types/index.mjs";
|
|
2
2
|
import { S3Store } from "../tus/stores/s3/s3Store.mjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as payload1 from "payload";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/file.d.ts
|
|
6
6
|
|
|
@@ -35,7 +35,7 @@ interface CreateFileEndpointsArgs {
|
|
|
35
35
|
pluginOptions: MediaCloudPluginOptions;
|
|
36
36
|
}
|
|
37
37
|
declare function createFileEndpoints(args: CreateFileEndpointsArgs): {
|
|
38
|
-
handler:
|
|
38
|
+
handler: payload1.PayloadHandler;
|
|
39
39
|
method: "get";
|
|
40
40
|
path: string;
|
|
41
41
|
}[];
|
package/dist/utils/tus.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MediaCloudPluginOptions } from "../types/index.mjs";
|
|
2
2
|
import { S3Store } from "../tus/stores/s3/s3Store.mjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as payload2 from "payload";
|
|
4
4
|
import { PayloadRequest } from "payload";
|
|
5
5
|
import { Server } from "@tus/server";
|
|
6
6
|
|
|
@@ -45,11 +45,11 @@ declare function createTusEndpoints(args: CreateTusEndpointsArgs): ({
|
|
|
45
45
|
method: "delete";
|
|
46
46
|
path: string;
|
|
47
47
|
} | {
|
|
48
|
-
handler:
|
|
48
|
+
handler: payload2.PayloadHandler;
|
|
49
49
|
method: "get";
|
|
50
50
|
path: string;
|
|
51
51
|
} | {
|
|
52
|
-
handler:
|
|
52
|
+
handler: payload2.PayloadHandler;
|
|
53
53
|
method: "post";
|
|
54
54
|
path: string;
|
|
55
55
|
})[];
|