@payloadcms/next 3.41.0-internal.c079756 → 3.41.0-internal.c12584b
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/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +49 -44
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.d.ts.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +49 -9
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.d.ts.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +32 -26
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +8 -7
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +4 -4
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/metadata.js +1 -1
- package/dist/views/Root/metadata.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/elements/Nav/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;CAC/B,CAwEA,CAAA"}
|
|
@@ -10,7 +10,7 @@ import { formatAdminURL } from 'payload/shared';
|
|
|
10
10
|
import React, { Fragment } from 'react';
|
|
11
11
|
const baseClass = 'nav';
|
|
12
12
|
export const DefaultNavClient = t0 => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(21);
|
|
14
14
|
const {
|
|
15
15
|
groups,
|
|
16
16
|
navPreferences
|
|
@@ -21,7 +21,7 @@ export const DefaultNavClient = t0 => {
|
|
|
21
21
|
} = useConfig();
|
|
22
22
|
const {
|
|
23
23
|
admin: t2,
|
|
24
|
-
|
|
24
|
+
folders,
|
|
25
25
|
routes: t3
|
|
26
26
|
} = t1;
|
|
27
27
|
const {
|
|
@@ -33,41 +33,53 @@ export const DefaultNavClient = t0 => {
|
|
|
33
33
|
const {
|
|
34
34
|
admin: adminRoute
|
|
35
35
|
} = t3;
|
|
36
|
-
let t5;
|
|
37
|
-
if ($[0] !== collections) {
|
|
38
|
-
t5 = () => collections.reduce(_temp, []);
|
|
39
|
-
$[0] = collections;
|
|
40
|
-
$[1] = t5;
|
|
41
|
-
} else {
|
|
42
|
-
t5 = $[1];
|
|
43
|
-
}
|
|
44
|
-
const [folderCollectionSlugs] = React.useState(t5);
|
|
45
36
|
const {
|
|
46
37
|
i18n
|
|
47
38
|
} = useTranslation();
|
|
39
|
+
let t5;
|
|
48
40
|
let t6;
|
|
49
|
-
|
|
41
|
+
let t7;
|
|
42
|
+
if ($[0] !== adminRoute || $[1] !== folders || $[2] !== foldersRoute || $[3] !== pathname) {
|
|
50
43
|
const folderURL = formatAdminURL({
|
|
51
44
|
adminRoute,
|
|
52
45
|
path: foldersRoute
|
|
53
46
|
});
|
|
54
47
|
const viewingRootFolderView = pathname.startsWith(folderURL);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
t6 = _jsxs;
|
|
49
|
+
t7 = Fragment;
|
|
50
|
+
t5 = folders && folders.browseByFolder && _jsx(BrowseByFolderButton, {
|
|
51
|
+
active: viewingRootFolderView
|
|
52
|
+
});
|
|
53
|
+
$[0] = adminRoute;
|
|
54
|
+
$[1] = folders;
|
|
55
|
+
$[2] = foldersRoute;
|
|
56
|
+
$[3] = pathname;
|
|
57
|
+
$[4] = t5;
|
|
58
|
+
$[5] = t6;
|
|
59
|
+
$[6] = t7;
|
|
60
|
+
} else {
|
|
61
|
+
t5 = $[4];
|
|
62
|
+
t6 = $[5];
|
|
63
|
+
t7 = $[6];
|
|
64
|
+
}
|
|
65
|
+
let t8;
|
|
66
|
+
if ($[7] !== adminRoute || $[8] !== groups || $[9] !== i18n || $[10] !== navPreferences?.groups || $[11] !== pathname || $[12] !== t5 || $[13] !== t6 || $[14] !== t7) {
|
|
67
|
+
let t9;
|
|
68
|
+
if ($[16] !== adminRoute || $[17] !== i18n || $[18] !== navPreferences?.groups || $[19] !== pathname) {
|
|
69
|
+
t9 = (t10, key) => {
|
|
58
70
|
const {
|
|
59
71
|
entities,
|
|
60
72
|
label
|
|
61
|
-
} =
|
|
73
|
+
} = t10;
|
|
62
74
|
return _jsx(NavGroup, {
|
|
63
75
|
isOpen: navPreferences?.groups?.[label]?.open,
|
|
64
76
|
label,
|
|
65
|
-
children: entities.map((
|
|
77
|
+
children: entities.map((t11, i) => {
|
|
66
78
|
const {
|
|
67
79
|
slug,
|
|
68
80
|
type,
|
|
69
81
|
label: label_0
|
|
70
|
-
} =
|
|
82
|
+
} = t11;
|
|
71
83
|
let href;
|
|
72
84
|
let id;
|
|
73
85
|
if (type === EntityType.collection) {
|
|
@@ -110,36 +122,29 @@ export const DefaultNavClient = t0 => {
|
|
|
110
122
|
})
|
|
111
123
|
}, key);
|
|
112
124
|
};
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
125
|
+
$[16] = adminRoute;
|
|
126
|
+
$[17] = i18n;
|
|
127
|
+
$[18] = navPreferences?.groups;
|
|
128
|
+
$[19] = pathname;
|
|
129
|
+
$[20] = t9;
|
|
118
130
|
} else {
|
|
119
|
-
|
|
131
|
+
t9 = $[20];
|
|
120
132
|
}
|
|
121
|
-
|
|
122
|
-
children: [
|
|
123
|
-
active: viewingRootFolderView
|
|
124
|
-
}), groups.map(t7)]
|
|
133
|
+
t8 = t6(t7, {
|
|
134
|
+
children: [t5, groups.map(t9)]
|
|
125
135
|
});
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
136
|
+
$[7] = adminRoute;
|
|
137
|
+
$[8] = groups;
|
|
138
|
+
$[9] = i18n;
|
|
139
|
+
$[10] = navPreferences?.groups;
|
|
140
|
+
$[11] = pathname;
|
|
141
|
+
$[12] = t5;
|
|
142
|
+
$[13] = t6;
|
|
143
|
+
$[14] = t7;
|
|
144
|
+
$[15] = t8;
|
|
134
145
|
} else {
|
|
135
|
-
|
|
146
|
+
t8 = $[15];
|
|
136
147
|
}
|
|
137
|
-
return
|
|
148
|
+
return t8;
|
|
138
149
|
};
|
|
139
|
-
function _temp(acc, collection) {
|
|
140
|
-
if (collection.folders) {
|
|
141
|
-
acc.push(collection.slug);
|
|
142
|
-
}
|
|
143
|
-
return acc;
|
|
144
|
-
}
|
|
145
150
|
//# sourceMappingURL=index.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["c","_c","getTranslation","BrowseByFolderButton","Link","NavGroup","useConfig","useTranslation","EntityType","usePathname","formatAdminURL","React","Fragment","baseClass","DefaultNavClient","t0","$","groups","navPreferences","pathname","config","t1","admin","t2","
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["c","_c","getTranslation","BrowseByFolderButton","Link","NavGroup","useConfig","useTranslation","EntityType","usePathname","formatAdminURL","React","Fragment","baseClass","DefaultNavClient","t0","$","groups","navPreferences","pathname","config","t1","admin","t2","folders","routes","t3","t4","browseByFolder","foldersRoute","adminRoute","i18n","t5","t6","t7","folderURL","path","viewingRootFolderView","startsWith","_jsxs","_jsx","active","t9","t10","key","entities","label","isOpen","open","children","map","t11","i","slug","type","label_0","href","id","collection","global","isActive","undefined","includes","length","Label","_Fragment","className","prefetch","t8"],"sources":["../../../src/elements/Nav/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { NavPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { BrowseByFolderButton, Link, NavGroup, useConfig, useTranslation } from '@payloadcms/ui'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { usePathname } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nconst baseClass = 'nav'\n\nexport const DefaultNavClient: React.FC<{\n groups: ReturnType<typeof groupNavItems>\n navPreferences: NavPreferences\n}> = ({ groups, navPreferences }) => {\n const pathname = usePathname()\n\n const {\n config: {\n admin: {\n routes: { browseByFolder: foldersRoute },\n },\n folders,\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n\n const folderURL = formatAdminURL({\n adminRoute,\n path: foldersRoute,\n })\n\n const viewingRootFolderView = pathname.startsWith(folderURL)\n\n return (\n <Fragment>\n {folders && folders.browseByFolder && <BrowseByFolderButton active={viewingRootFolderView} />}\n {groups.map(({ entities, label }, key) => {\n return (\n <NavGroup isOpen={navPreferences?.groups?.[label]?.open} key={key} label={label}>\n {entities.map(({ slug, type, label }, i) => {\n let href: string\n let id: string\n\n if (type === EntityType.collection) {\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n id = `nav-${slug}`\n }\n\n if (type === EntityType.global) {\n href = formatAdminURL({ adminRoute, path: `/globals/${slug}` })\n id = `nav-global-${slug}`\n }\n\n const isActive =\n pathname.startsWith(href) && ['/', undefined].includes(pathname[href.length])\n\n const Label = (\n <>\n {isActive && <div className={`${baseClass}__link-indicator`} />}\n <span className={`${baseClass}__link-label`}>{getTranslation(label, i18n)}</span>\n </>\n )\n\n // If the URL matches the link exactly\n if (pathname === href) {\n return (\n <div className={`${baseClass}__link`} id={id} key={i}>\n {Label}\n </div>\n )\n }\n\n return (\n <Link className={`${baseClass}__link`} href={href} id={id} key={i} prefetch={false}>\n {Label}\n </Link>\n )\n })}\n </NavGroup>\n )\n })}\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,
|
|
1
|
+
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB,eAAO,MAAM,uBAAuB,SAC5B,mBAAmB,KACxB,OAAO,CAAC,+BAA+B,CAiLzC,CAAA"}
|
|
@@ -4,14 +4,15 @@ import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerCompo
|
|
|
4
4
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
5
5
|
import { redirect } from 'next/navigation.js';
|
|
6
6
|
import { getFolderData } from 'payload';
|
|
7
|
+
import { buildFolderWhereConstraints } from 'payload/shared';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { getPreferences } from '../../utilities/getPreferences.js';
|
|
9
10
|
export const buildBrowseByFolderView = async args => {
|
|
10
11
|
const {
|
|
12
|
+
browseByFolderSlugs: browseByFolderSlugsFromArgs = [],
|
|
11
13
|
disableBulkDelete,
|
|
12
14
|
disableBulkEdit,
|
|
13
15
|
enableRowSelections,
|
|
14
|
-
folderCollectionSlugs,
|
|
15
16
|
folderID,
|
|
16
17
|
initPageResult,
|
|
17
18
|
isInDrawer,
|
|
@@ -33,25 +34,64 @@ export const buildBrowseByFolderView = async args => {
|
|
|
33
34
|
},
|
|
34
35
|
visibleEntities
|
|
35
36
|
} = initPageResult;
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
37
|
+
const browseByFolderSlugs = browseByFolderSlugsFromArgs.filter(collectionSlug => permissions?.collections?.[collectionSlug]?.read && visibleEntities.collections.includes(collectionSlug));
|
|
38
|
+
if (config.folders === false || config.folders.browseByFolder === false) {
|
|
38
39
|
throw new Error('not-found');
|
|
39
40
|
}
|
|
40
41
|
const query = queryFromArgs || queryFromReq;
|
|
41
|
-
const selectedCollectionSlugs = Array.isArray(query?.relationTo) && query.relationTo.length ? query.relationTo : [...
|
|
42
|
+
const selectedCollectionSlugs = Array.isArray(query?.relationTo) && query.relationTo.length ? query.relationTo.filter(slug => browseByFolderSlugs.includes(slug) || config.folders && slug === config.folders.slug) : [...browseByFolderSlugs, config.folders.slug];
|
|
42
43
|
const {
|
|
43
44
|
routes: {
|
|
44
45
|
admin: adminRoute
|
|
45
46
|
}
|
|
46
47
|
} = config;
|
|
48
|
+
const folderCollectionConfig = payload.collections[config.folders.slug].config;
|
|
49
|
+
const browseByFolderPreferences = await getPreferences('browse-by-folder', payload, user.id, user.collection);
|
|
50
|
+
let documentWhere = undefined;
|
|
51
|
+
let folderWhere = undefined;
|
|
52
|
+
// if folderID, dont make a documentWhere since it only queries root folders
|
|
53
|
+
for (const collectionSlug of selectedCollectionSlugs) {
|
|
54
|
+
if (collectionSlug === config.folders.slug) {
|
|
55
|
+
const folderCollectionConstraints = await buildFolderWhereConstraints({
|
|
56
|
+
collectionConfig: folderCollectionConfig,
|
|
57
|
+
folderID,
|
|
58
|
+
localeCode: fullLocale?.code,
|
|
59
|
+
req: initPageResult.req,
|
|
60
|
+
search: typeof query?.search === 'string' ? query.search : undefined
|
|
61
|
+
});
|
|
62
|
+
if (folderCollectionConstraints) {
|
|
63
|
+
folderWhere = folderCollectionConstraints;
|
|
64
|
+
}
|
|
65
|
+
} else if (folderID) {
|
|
66
|
+
if (!documentWhere) {
|
|
67
|
+
documentWhere = {
|
|
68
|
+
or: []
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const collectionConfig = payload.collections[collectionSlug].config;
|
|
72
|
+
if (collectionConfig.folders && collectionConfig.folders.browseByFolder === true) {
|
|
73
|
+
const collectionConstraints = await buildFolderWhereConstraints({
|
|
74
|
+
collectionConfig,
|
|
75
|
+
folderID,
|
|
76
|
+
localeCode: fullLocale?.code,
|
|
77
|
+
req: initPageResult.req,
|
|
78
|
+
search: typeof query?.search === 'string' ? query.search : undefined
|
|
79
|
+
});
|
|
80
|
+
if (collectionConstraints) {
|
|
81
|
+
documentWhere.or.push(collectionConstraints);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
47
86
|
const {
|
|
48
87
|
breadcrumbs,
|
|
49
88
|
documents,
|
|
50
89
|
subfolders
|
|
51
90
|
} = await getFolderData({
|
|
91
|
+
documentWhere,
|
|
52
92
|
folderID,
|
|
53
|
-
|
|
54
|
-
|
|
93
|
+
folderWhere,
|
|
94
|
+
req: initPageResult.req
|
|
55
95
|
});
|
|
56
96
|
const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
|
|
57
97
|
if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
|
|
@@ -61,7 +101,6 @@ export const buildBrowseByFolderView = async args => {
|
|
|
61
101
|
serverURL: config.serverURL
|
|
62
102
|
}));
|
|
63
103
|
}
|
|
64
|
-
const browseByFolderPreferences = await getPreferences('browse-by-folder', payload, user.id, user.collection);
|
|
65
104
|
const serverProps = {
|
|
66
105
|
documents,
|
|
67
106
|
i18n,
|
|
@@ -81,13 +120,14 @@ export const buildBrowseByFolderView = async args => {
|
|
|
81
120
|
// serverProps,
|
|
82
121
|
// })
|
|
83
122
|
// documents cannot be created without a parent folder in this view
|
|
84
|
-
const hasCreatePermissionCollectionSlugs = folderID ? [config.folders.slug, ...
|
|
123
|
+
const hasCreatePermissionCollectionSlugs = folderID ? [config.folders.slug, ...browseByFolderSlugs] : [config.folders.slug];
|
|
85
124
|
return {
|
|
86
125
|
View: /*#__PURE__*/_jsxs(FolderProvider, {
|
|
87
126
|
breadcrumbs: breadcrumbs,
|
|
88
127
|
documents: documents,
|
|
89
128
|
filteredCollectionSlugs: selectedCollectionSlugs,
|
|
90
|
-
folderCollectionSlugs:
|
|
129
|
+
folderCollectionSlugs: browseByFolderSlugs,
|
|
130
|
+
folderFieldName: config.folders.fieldName,
|
|
91
131
|
folderID: folderID,
|
|
92
132
|
subfolders: subfolders,
|
|
93
133
|
children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","React","getPreferences","buildBrowseByFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderCollectionSlugs","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","filter","collectionSlug","read","includes","length","Error","selectedCollectionSlugs","Array","isArray","relationTo","folders","slug","routes","admin","adminRoute","breadcrumbs","documents","subfolders","search","resolvedFolderID","id","path","browseByFolder","serverURL","browseByFolderPreferences","collection","serverProps","hasCreatePermissionCollectionSlugs","View","_jsxs","filteredCollectionSlugs","_jsx","clientProps","viewPreference","value","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderCollectionSlugs,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collections = folderCollectionSlugs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n if (!collections.length) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n const selectedCollectionSlugs: string[] =\n Array.isArray(query?.relationTo) && query.relationTo.length\n ? query.relationTo\n : [...folderCollectionSlugs, config.folders.slug]\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n folderID,\n req: initPageResult.req,\n search: query?.search as string,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const browseByFolderPreferences = await getPreferences<{ viewPreference: string }>(\n 'browse-by-folder',\n payload,\n user.id,\n user.collection,\n )\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // documents cannot be created without a parent folder in this view\n const hasCreatePermissionCollectionSlugs = folderID\n ? [config.folders.slug, ...folderCollectionSlugs]\n : [config.folders.slug]\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n documents={documents}\n filteredCollectionSlugs={selectedCollectionSlugs}\n folderCollectionSlugs={folderCollectionSlugs}\n folderID={folderID}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermissionCollectionSlugs,\n selectedCollectionSlugs,\n viewPreference: browseByFolderPreferences?.value?.viewPreference,\n },\n // Component:config.folders?.components?.views?.list?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildView.js","names":["DefaultBrowseByFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","buildFolderWhereConstraints","React","getPreferences","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","filter","collectionSlug","collections","read","includes","folders","browseByFolder","Error","selectedCollectionSlugs","Array","isArray","relationTo","length","slug","routes","admin","adminRoute","folderCollectionConfig","browseByFolderPreferences","id","collection","documentWhere","undefined","folderWhere","folderCollectionConstraints","collectionConfig","localeCode","code","search","or","collectionConstraints","push","breadcrumbs","documents","subfolders","resolvedFolderID","path","serverURL","serverProps","hasCreatePermissionCollectionSlugs","View","_jsxs","filteredCollectionSlugs","folderCollectionSlugs","folderFieldName","fieldName","_jsx","clientProps","viewPreference","value","Fallback","importMap"],"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\nexport type BuildFolderViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\nexport const buildBrowseByFolderView = async (\n args: BuildFolderViewArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n browseByFolderSlugs: browseByFolderSlugsFromArgs = [],\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const browseByFolderSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n const selectedCollectionSlugs: string[] =\n Array.isArray(query?.relationTo) && query.relationTo.length\n ? query.relationTo.filter(\n (slug) =>\n browseByFolderSlugs.includes(slug) || (config.folders && slug === config.folders.slug),\n )\n : [...browseByFolderSlugs, config.folders.slug]\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const folderCollectionConfig = payload.collections[config.folders.slug].config\n\n const browseByFolderPreferences = await getPreferences<{ viewPreference: string }>(\n 'browse-by-folder',\n payload,\n user.id,\n user.collection,\n )\n\n let documentWhere: undefined | Where = undefined\n let folderWhere: undefined | Where = undefined\n // if folderID, dont make a documentWhere since it only queries root folders\n for (const collectionSlug of selectedCollectionSlugs) {\n if (collectionSlug === config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: folderCollectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n } else if (folderID) {\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConfig = payload.collections[collectionSlug].config\n if (collectionConfig.folders && collectionConfig.folders.browseByFolder === true) {\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n documentWhere,\n folderID,\n folderWhere,\n req: initPageResult.req,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: config.admin.routes.browseByFolder,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const serverProps: Omit<FolderListViewServerPropsOnly, 'collectionConfig' | 'listPreferences'> = {\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // },\n // description: staticDescription,\n // payload,\n // serverProps,\n // })\n\n // documents cannot be created without a parent folder in this view\n const hasCreatePermissionCollectionSlugs = folderID\n ? [config.folders.slug, ...browseByFolderSlugs]\n : [config.folders.slug]\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n documents={documents}\n filteredCollectionSlugs={selectedCollectionSlugs}\n folderCollectionSlugs={browseByFolderSlugs}\n folderFieldName={config.folders.fieldName}\n folderID={folderID}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermissionCollectionSlugs,\n selectedCollectionSlugs,\n viewPreference: browseByFolderPreferences?.value?.viewPreference,\n },\n // Component:config.folders?.components?.views?.list?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"buildView.d.ts","sourceRoot":"","sources":["../../../src/views/CollectionFolders/buildView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,+BAA+B,EAE/B,SAAS,EAEV,MAAM,SAAS,CAAA;AAchB,MAAM,MAAM,kCAAkC,GAAG;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;CACjB,GAAG,oBAAoB,CAAA;AAExB;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAC9B,kCAAkC,KACvC,OAAO,CAAC,+BAA+B,CAkLzC,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui';
|
|
3
3
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
|
-
import { formatAdminURL
|
|
4
|
+
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
5
5
|
import { redirect } from 'next/navigation.js';
|
|
6
|
-
import { getFolderData
|
|
6
|
+
import { getFolderData } from 'payload';
|
|
7
|
+
import { buildFolderWhereConstraints } from 'payload/shared';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { getPreferences } from '../../utilities/getPreferences.js';
|
|
9
10
|
/**
|
|
@@ -14,7 +15,6 @@ export const buildCollectionFolderView = async args => {
|
|
|
14
15
|
disableBulkDelete,
|
|
15
16
|
disableBulkEdit,
|
|
16
17
|
enableRowSelections,
|
|
17
|
-
folderCollectionSlugs,
|
|
18
18
|
folderID,
|
|
19
19
|
initPageResult,
|
|
20
20
|
isInDrawer,
|
|
@@ -47,35 +47,39 @@ export const buildCollectionFolderView = async args => {
|
|
|
47
47
|
if (collectionConfig) {
|
|
48
48
|
const query = queryFromArgs || queryFromReq;
|
|
49
49
|
const collectionFolderPreferences = await getPreferences(`${collectionSlug}-collection-folder`, payload, user.id, user.collection);
|
|
50
|
+
const sortPreference = collectionFolderPreferences?.value.sort;
|
|
50
51
|
const {
|
|
51
52
|
routes: {
|
|
52
53
|
admin: adminRoute
|
|
53
54
|
}
|
|
54
55
|
} = config;
|
|
55
|
-
if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility || !
|
|
56
|
+
if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility || !config.folders) {
|
|
56
57
|
throw new Error('not-found');
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
let folderWhere;
|
|
60
|
+
const folderCollectionConfig = payload.collections[config.folders.slug].config;
|
|
61
|
+
const folderCollectionConstraints = await buildFolderWhereConstraints({
|
|
62
|
+
collectionConfig: folderCollectionConfig,
|
|
63
|
+
folderID,
|
|
64
|
+
localeCode: fullLocale?.code,
|
|
65
|
+
req: initPageResult.req,
|
|
66
|
+
search: typeof query?.search === 'string' ? query.search : undefined,
|
|
67
|
+
sort: sortPreference
|
|
68
|
+
});
|
|
69
|
+
if (folderCollectionConstraints) {
|
|
70
|
+
folderWhere = folderCollectionConstraints;
|
|
71
|
+
}
|
|
72
|
+
let documentWhere;
|
|
73
|
+
const collectionConstraints = await buildFolderWhereConstraints({
|
|
59
74
|
collectionConfig,
|
|
75
|
+
folderID,
|
|
76
|
+
localeCode: fullLocale?.code,
|
|
77
|
+
req: initPageResult.req,
|
|
60
78
|
search: typeof query?.search === 'string' ? query.search : undefined,
|
|
61
|
-
|
|
62
|
-
})
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
[config.folders.fieldName]: {
|
|
66
|
-
equals: parseDocumentID({
|
|
67
|
-
id: folderID,
|
|
68
|
-
collectionSlug,
|
|
69
|
-
payload
|
|
70
|
-
})
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
} else {
|
|
74
|
-
whereConstraints.push({
|
|
75
|
-
[config.folders.fieldName]: {
|
|
76
|
-
exists: false
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
+
sort: sortPreference
|
|
80
|
+
});
|
|
81
|
+
if (collectionConstraints) {
|
|
82
|
+
documentWhere = collectionConstraints;
|
|
79
83
|
}
|
|
80
84
|
const {
|
|
81
85
|
breadcrumbs,
|
|
@@ -83,9 +87,10 @@ export const buildCollectionFolderView = async args => {
|
|
|
83
87
|
subfolders
|
|
84
88
|
} = await getFolderData({
|
|
85
89
|
collectionSlug,
|
|
90
|
+
documentWhere,
|
|
86
91
|
folderID,
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
folderWhere,
|
|
93
|
+
req: initPageResult.req
|
|
89
94
|
});
|
|
90
95
|
const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id;
|
|
91
96
|
if (!isInDrawer && (resolvedFolderID && folderID && folderID !== resolvedFolderID || folderID && !resolvedFolderID)) {
|
|
@@ -132,7 +137,8 @@ export const buildCollectionFolderView = async args => {
|
|
|
132
137
|
breadcrumbs: breadcrumbs,
|
|
133
138
|
collectionSlug: collectionSlug,
|
|
134
139
|
documents: documents,
|
|
135
|
-
folderCollectionSlugs:
|
|
140
|
+
folderCollectionSlugs: [collectionSlug],
|
|
141
|
+
folderFieldName: config.folders.fieldName,
|
|
136
142
|
folderID: folderID,
|
|
137
143
|
search: search,
|
|
138
144
|
subfolders: subfolders,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","mergeListSearchAndWhere","redirect","getFolderData","parseDocumentID","React","getPreferences","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderCollectionSlugs","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","collectionFolderPreferences","id","collection","routes","admin","adminRoute","includes","whereConstraints","search","undefined","where","push","folders","fieldName","equals","exists","breadcrumbs","documents","subfolders","resolvedFolderID","length","path","serverURL","newDocumentURL","hasCreatePermission","create","serverProps","View","_jsxs","_jsx","clientProps","viewPreference","value","Component","components","views","list","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData, parseDocumentID } from 'payload'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderCollectionSlugs,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const query = queryFromArgs || queryFromReq\n\n const collectionFolderPreferences = await getPreferences<{ viewPreference: string }>(\n `${collectionSlug}-collection-folder`,\n payload,\n user.id,\n user.collection,\n )\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !folderCollectionSlugs.includes(collectionSlug)\n ) {\n throw new Error('not-found')\n }\n\n const whereConstraints = [\n mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n }),\n ]\n\n if (folderID) {\n whereConstraints.push({\n [config.folders.fieldName]: {\n equals: parseDocumentID({ id: folderID, collectionSlug, payload }),\n },\n })\n } else {\n whereConstraints.push({\n [config.folders.fieldName]: {\n exists: false,\n },\n })\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n collectionSlug,\n folderID,\n req: initPageResult.req,\n search: query?.search as string,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n collectionSlug={collectionSlug}\n documents={documents}\n folderCollectionSlugs={folderCollectionSlugs}\n folderID={folderID}\n search={search}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n newDocumentURL,\n viewPreference: collectionFolderPreferences?.value?.viewPreference,\n },\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildView.js","names":["DefaultCollectionFolderView","FolderProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","redirect","getFolderData","buildFolderWhereConstraints","React","getPreferences","buildCollectionFolderView","args","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","collectionFolderPreferences","id","collection","sortPreference","value","sort","routes","admin","adminRoute","includes","folders","folderWhere","folderCollectionConfig","folderCollectionConstraints","localeCode","code","search","undefined","documentWhere","collectionConstraints","breadcrumbs","documents","subfolders","resolvedFolderID","length","path","serverURL","newDocumentURL","hasCreatePermission","create","serverProps","View","_jsxs","folderCollectionSlugs","folderFieldName","fieldName","_jsx","clientProps","viewPreference","Component","components","views","list","Fallback","importMap"],"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewServerPropsOnly,\n ListQuery,\n Where,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, FolderProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport { getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\nimport React from 'react'\n\nimport { getPreferences } from '../../utilities/getPreferences.js'\n\n// import { renderFolderViewSlots } from './renderFolderViewSlots.js'\n\nexport type BuildCollectionFolderViewStateArgs = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n folderID?: number | string\n isInDrawer?: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\n\n/**\n * Builds the entire view for collection-folder views on the server\n */\nexport const buildCollectionFolderView = async (\n args: BuildCollectionFolderViewStateArgs,\n): Promise<BuildCollectionFolderViewResult> => {\n const {\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n folderID,\n initPageResult,\n isInDrawer,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n const query = queryFromArgs || queryFromReq\n\n const collectionFolderPreferences = await getPreferences<{\n sort?: string\n viewPreference: string\n }>(`${collectionSlug}-collection-folder`, payload, user.id, user.collection)\n\n const sortPreference = collectionFolderPreferences?.value.sort\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n let folderWhere: undefined | Where\n const folderCollectionConfig = payload.collections[config.folders.slug].config\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: folderCollectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n sort: sortPreference,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n let documentWhere: undefined | Where\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig,\n folderID,\n localeCode: fullLocale?.code,\n req: initPageResult.req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n sort: sortPreference,\n })\n if (collectionConstraints) {\n documentWhere = collectionConstraints\n }\n\n const { breadcrumbs, documents, subfolders } = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req: initPageResult.req,\n })\n\n const resolvedFolderID = breadcrumbs[breadcrumbs.length - 1]?.id\n\n if (\n !isInDrawer &&\n ((resolvedFolderID && folderID && folderID !== resolvedFolderID) ||\n (folderID && !resolvedFolderID))\n ) {\n redirect(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${config.folders.slug}`,\n serverURL: config.serverURL,\n }),\n )\n }\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const serverProps: FolderListViewServerPropsOnly = {\n collectionConfig,\n documents,\n i18n,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n subfolders,\n user,\n }\n\n // We could support slots in the folder view in the future\n // const folderViewSlots = renderFolderViewSlots({\n // clientProps: {\n // collectionSlug,\n // hasCreatePermission,\n // newDocumentURL,\n // },\n // collectionConfig,\n // description: typeof collectionConfig.admin.description === 'function'\n // ? collectionConfig.admin.description({ t: i18n.t })\n // : collectionConfig.admin.description,\n // payload,\n // serverProps,\n // })\n\n const search = query?.search as string\n\n return {\n View: (\n <FolderProvider\n breadcrumbs={breadcrumbs}\n collectionSlug={collectionSlug}\n documents={documents}\n folderCollectionSlugs={[collectionSlug]}\n folderFieldName={config.folders.fieldName}\n folderID={folderID}\n search={search}\n subfolders={subfolders}\n >\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n newDocumentURL,\n viewPreference: collectionFolderPreferences?.value?.viewPreference,\n },\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </FolderProvider>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,9 +16,9 @@ type GetRouteDataArgs = {
|
|
|
16
16
|
segments: string[];
|
|
17
17
|
};
|
|
18
18
|
type GetRouteDataResult = {
|
|
19
|
+
browseByFolderSlugs: CollectionSlug[];
|
|
19
20
|
DefaultView: ViewFromConfig;
|
|
20
21
|
documentSubViewType?: DocumentSubViewTypes;
|
|
21
|
-
folderCollectionSlugs: CollectionSlug[];
|
|
22
22
|
folderID?: string;
|
|
23
23
|
initPageOptions: Parameters<typeof initPage>[0];
|
|
24
24
|
serverProps: ServerPropsFromView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAiCjE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IAC1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CAC1D,CAAA;AAaD,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,
|
|
1
|
+
{"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAiCjE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IAC1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;CAC1D,CAAA;AAaD,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,KAAK,kBAAkB,GAAG;IACxB,mBAAmB,EAAE,cAAc,EAAE,CAAA;IACrC,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,YAAY,6EAOtB,gBAAgB,KAAG,kBA6PrB,CAAA"}
|
|
@@ -59,15 +59,16 @@ export const getRouteData = ({
|
|
|
59
59
|
const isCollection = segmentOne === 'collections';
|
|
60
60
|
let matchedCollection = undefined;
|
|
61
61
|
let matchedGlobal = undefined;
|
|
62
|
-
const
|
|
62
|
+
const isBrowseByFolderEnabled = config.folders && config.folders.browseByFolder;
|
|
63
|
+
const browseByFolderSlugs = isBrowseByFolderEnabled && config.collections.reduce((acc, {
|
|
63
64
|
slug,
|
|
64
65
|
folders
|
|
65
66
|
}) => {
|
|
66
|
-
if (folders) {
|
|
67
|
+
if (folders && folders.browseByFolder) {
|
|
67
68
|
return [...acc, slug];
|
|
68
69
|
}
|
|
69
70
|
return acc;
|
|
70
|
-
}, []);
|
|
71
|
+
}, []) || [];
|
|
71
72
|
const serverProps = {
|
|
72
73
|
viewActions: config?.admin?.components?.actions || []
|
|
73
74
|
};
|
|
@@ -134,7 +135,7 @@ export const getRouteData = ({
|
|
|
134
135
|
templateType = 'default';
|
|
135
136
|
viewType = 'account';
|
|
136
137
|
}
|
|
137
|
-
if (
|
|
138
|
+
if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {
|
|
138
139
|
templateType = 'default';
|
|
139
140
|
viewType = 'folders';
|
|
140
141
|
}
|
|
@@ -151,7 +152,7 @@ export const getRouteData = ({
|
|
|
151
152
|
templateClassName = baseClasses[segmentTwo];
|
|
152
153
|
templateType = 'minimal';
|
|
153
154
|
viewType = 'reset';
|
|
154
|
-
} else if (
|
|
155
|
+
} else if (isBrowseByFolderEnabled && `/${segmentOne}` === config.admin.routes.browseByFolder) {
|
|
155
156
|
// --> /browse-by-folder/:folderID
|
|
156
157
|
ViewToRender = {
|
|
157
158
|
Component: oneSegmentViews.browseByFolder
|
|
@@ -195,7 +196,7 @@ export const getRouteData = ({
|
|
|
195
196
|
templateType = 'minimal';
|
|
196
197
|
viewType = 'verify';
|
|
197
198
|
} else if (isCollection && matchedCollection) {
|
|
198
|
-
if (segmentThree === config.folders.slug &&
|
|
199
|
+
if (config.folders && segmentThree === config.folders.slug && matchedCollection.folders) {
|
|
199
200
|
// Collection Folder Views
|
|
200
201
|
// --> /collections/:collectionSlug/:folderCollectionSlug
|
|
201
202
|
// --> /collections/:collectionSlug/:folderCollectionSlug/:folderID
|
|
@@ -257,9 +258,9 @@ export const getRouteData = ({
|
|
|
257
258
|
}
|
|
258
259
|
serverProps.viewActions.reverse();
|
|
259
260
|
return {
|
|
261
|
+
browseByFolderSlugs,
|
|
260
262
|
DefaultView: ViewToRender,
|
|
261
263
|
documentSubViewType,
|
|
262
|
-
folderCollectionSlugs,
|
|
263
264
|
folderID,
|
|
264
265
|
initPageOptions,
|
|
265
266
|
serverProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRouteData.js","names":["formatAdminURL","Account","BrowseByFolder","CollectionFolderView","CreateFirstUserView","Dashboard","Document","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","attachViewActions","getViewActions","getCustomViewByRoute","getDocumentViewInfo","isPathMatchingRoute","baseClasses","account","folders","forgot","login","reset","verify","oneSegmentViews","browseByFolder","createFirstUser","inactivity","logout","unauthorized","getRouteData","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","documentSubViewType","viewType","folderID","initPageOptions","route","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","isGlobal","isCollection","matchedCollection","undefined","matchedGlobal","folderCollectionSlugs","collections","reduce","acc","slug","serverProps","viewActions","admin","components","actions","find","collectionConfig","globals","globalConfig","length","Component","viewKey","routes","matchedRoute","Object","entries","exact","path","concat","views","list","editConfig","edit","includes","viewInfo","collectionOrGlobal","viewKeyArg","view","reverse","DefaultView"],"sources":["../../../src/views/Root/getRouteData.ts"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionSlug,\n DocumentSubViewTypes,\n ImportMap,\n PayloadComponent,\n SanitizedConfig,\n ServerPropsFromView,\n ViewTypes,\n} from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from 'payload/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { BrowseByFolder } from '../BrowseByFolder/index.js'\nimport { CollectionFolderView } from '../CollectionFolders/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { attachViewActions, getViewActions } from './attachViewActions.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { getDocumentViewInfo } from './getDocumentViewInfo.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n folders: 'folders',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewServerProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewServerProps>\n payloadComponent?: PayloadComponent<AdminViewServerProps>\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n browseByFolder: BrowseByFolder,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\ntype GetRouteDataArgs = {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}\n\ntype GetRouteDataResult = {\n DefaultView: ViewFromConfig\n documentSubViewType?: DocumentSubViewTypes\n folderCollectionSlugs: CollectionSlug[]\n folderID?: string\n initPageOptions: Parameters<typeof initPage>[0]\n serverProps: ServerPropsFromView\n templateClassName: string\n templateType: 'default' | 'minimal'\n viewType?: ViewTypes\n}\n\nexport const getRouteData = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: GetRouteDataArgs): GetRouteDataResult => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n let documentSubViewType: DocumentSubViewTypes\n let viewType: ViewTypes\n let folderID: string\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo, segmentThree, segmentFour, segmentFive] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n let matchedCollection: SanitizedConfig['collections'][number] = undefined\n let matchedGlobal: SanitizedConfig['globals'][number] = undefined\n\n const folderCollectionSlugs = config.collections.reduce((acc, { slug, folders }) => {\n if (folders) {\n return [...acc, slug]\n }\n return acc\n }, [])\n\n const serverProps: ServerPropsFromView = {\n viewActions: config?.admin?.components?.actions || [],\n }\n\n if (isCollection) {\n matchedCollection = config.collections.find(({ slug }) => slug === segmentTwo)\n serverProps.collectionConfig = matchedCollection\n }\n\n if (isGlobal) {\n matchedGlobal = config.globals.find(({ slug }) => slug === segmentTwo)\n serverProps.globalConfig = matchedGlobal\n }\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n viewType = 'dashboard'\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /browse-by-folder\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n viewType = 'account'\n }\n\n if (folderCollectionSlugs.length && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n viewType = 'reset'\n } else if (\n folderCollectionSlugs.length &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n ViewToRender = {\n Component: oneSegmentViews.browseByFolder,\n }\n templateClassName = baseClasses.folders\n templateType = 'default'\n viewType = 'folders'\n folderID = segmentTwo\n } else if (isCollection && matchedCollection) {\n // --> /collections/:collectionSlug\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n viewType = 'list'\n serverProps.viewActions = serverProps.viewActions.concat(\n matchedCollection.admin.components?.views?.list?.actions,\n )\n } else if (isGlobal && matchedGlobal) {\n // --> /globals/:globalSlug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n viewType = 'document'\n\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n viewType = 'verify'\n } else if (isCollection && matchedCollection) {\n if (\n segmentThree === config.folders.slug &&\n folderCollectionSlugs.includes(matchedCollection.slug)\n ) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:folderID\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n folderID = segmentFour\n } else {\n // Collection Edit Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFour, segmentFive])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n attachViewActions({\n collectionOrGlobal: matchedCollection,\n serverProps,\n viewKeyArg: documentSubViewType,\n })\n }\n } else if (isGlobal && matchedGlobal) {\n // Global Edit Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentThree, segmentFour])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n attachViewActions({\n collectionOrGlobal: matchedGlobal,\n serverProps,\n viewKeyArg: documentSubViewType,\n })\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n serverProps.viewActions.reverse()\n\n return {\n DefaultView: ViewToRender,\n documentSubViewType,\n folderCollectionSlugs,\n folderID,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getRouteData.js","names":["formatAdminURL","Account","BrowseByFolder","CollectionFolderView","CreateFirstUserView","Dashboard","Document","DocumentView","forgotPasswordBaseClass","ForgotPasswordView","ListView","loginBaseClass","LoginView","LogoutInactivity","LogoutView","ResetPassword","resetPasswordBaseClass","UnauthorizedView","Verify","verifyBaseClass","attachViewActions","getViewActions","getCustomViewByRoute","getDocumentViewInfo","isPathMatchingRoute","baseClasses","account","folders","forgot","login","reset","verify","oneSegmentViews","browseByFolder","createFirstUser","inactivity","logout","unauthorized","getRouteData","adminRoute","config","currentRoute","importMap","searchParams","segments","ViewToRender","templateClassName","templateType","documentSubViewType","viewType","folderID","initPageOptions","route","segmentOne","segmentTwo","segmentThree","segmentFour","segmentFive","isGlobal","isCollection","matchedCollection","undefined","matchedGlobal","isBrowseByFolderEnabled","browseByFolderSlugs","collections","reduce","acc","slug","serverProps","viewActions","admin","components","actions","find","collectionConfig","globals","globalConfig","length","Component","viewKey","routes","matchedRoute","Object","entries","exact","path","concat","views","list","editConfig","edit","viewInfo","collectionOrGlobal","viewKeyArg","view","reverse","DefaultView"],"sources":["../../../src/views/Root/getRouteData.ts"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionSlug,\n DocumentSubViewTypes,\n ImportMap,\n PayloadComponent,\n SanitizedConfig,\n ServerPropsFromView,\n ViewTypes,\n} from 'payload'\nimport type React from 'react'\n\nimport { formatAdminURL } from 'payload/shared'\n\nimport type { initPage } from '../../utilities/initPage/index.js'\n\nimport { Account } from '../Account/index.js'\nimport { BrowseByFolder } from '../BrowseByFolder/index.js'\nimport { CollectionFolderView } from '../CollectionFolders/index.js'\nimport { CreateFirstUserView } from '../CreateFirstUser/index.js'\nimport { Dashboard } from '../Dashboard/index.js'\nimport { Document as DocumentView } from '../Document/index.js'\nimport { forgotPasswordBaseClass, ForgotPasswordView } from '../ForgotPassword/index.js'\nimport { ListView } from '../List/index.js'\nimport { loginBaseClass, LoginView } from '../Login/index.js'\nimport { LogoutInactivity, LogoutView } from '../Logout/index.js'\nimport { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { Verify, verifyBaseClass } from '../Verify/index.js'\nimport { attachViewActions, getViewActions } from './attachViewActions.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\nimport { getDocumentViewInfo } from './getDocumentViewInfo.js'\nimport { isPathMatchingRoute } from './isPathMatchingRoute.js'\n\nconst baseClasses = {\n account: 'account',\n folders: 'folders',\n forgot: forgotPasswordBaseClass,\n login: loginBaseClass,\n reset: resetPasswordBaseClass,\n verify: verifyBaseClass,\n}\n\ntype OneSegmentViews = {\n [K in Exclude<keyof SanitizedConfig['admin']['routes'], 'reset'>]: React.FC<AdminViewServerProps>\n}\n\nexport type ViewFromConfig = {\n Component?: React.FC<AdminViewServerProps>\n payloadComponent?: PayloadComponent<AdminViewServerProps>\n}\n\nconst oneSegmentViews: OneSegmentViews = {\n account: Account,\n browseByFolder: BrowseByFolder,\n createFirstUser: CreateFirstUserView,\n forgot: ForgotPasswordView,\n inactivity: LogoutInactivity,\n login: LoginView,\n logout: LogoutView,\n unauthorized: UnauthorizedView,\n}\n\ntype GetRouteDataArgs = {\n adminRoute: string\n config: SanitizedConfig\n currentRoute: string\n importMap: ImportMap\n searchParams: {\n [key: string]: string | string[]\n }\n segments: string[]\n}\n\ntype GetRouteDataResult = {\n browseByFolderSlugs: CollectionSlug[]\n DefaultView: ViewFromConfig\n documentSubViewType?: DocumentSubViewTypes\n folderID?: string\n initPageOptions: Parameters<typeof initPage>[0]\n serverProps: ServerPropsFromView\n templateClassName: string\n templateType: 'default' | 'minimal'\n viewType?: ViewTypes\n}\n\nexport const getRouteData = ({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n}: GetRouteDataArgs): GetRouteDataResult => {\n let ViewToRender: ViewFromConfig = null\n let templateClassName: string\n let templateType: 'default' | 'minimal' | undefined\n let documentSubViewType: DocumentSubViewTypes\n let viewType: ViewTypes\n let folderID: string\n\n const initPageOptions: Parameters<typeof initPage>[0] = {\n config,\n importMap,\n route: currentRoute,\n searchParams,\n }\n\n const [segmentOne, segmentTwo, segmentThree, segmentFour, segmentFive] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n let matchedCollection: SanitizedConfig['collections'][number] = undefined\n let matchedGlobal: SanitizedConfig['globals'][number] = undefined\n\n const isBrowseByFolderEnabled = config.folders && config.folders.browseByFolder\n const browseByFolderSlugs =\n (isBrowseByFolderEnabled &&\n config.collections.reduce((acc, { slug, folders }) => {\n if (folders && folders.browseByFolder) {\n return [...acc, slug]\n }\n return acc\n }, [])) ||\n []\n\n const serverProps: ServerPropsFromView = {\n viewActions: config?.admin?.components?.actions || [],\n }\n\n if (isCollection) {\n matchedCollection = config.collections.find(({ slug }) => slug === segmentTwo)\n serverProps.collectionConfig = matchedCollection\n }\n\n if (isGlobal) {\n matchedGlobal = config.globals.find(({ slug }) => slug === segmentTwo)\n serverProps.globalConfig = matchedGlobal\n }\n\n switch (segments.length) {\n case 0: {\n if (currentRoute === adminRoute) {\n ViewToRender = {\n Component: Dashboard,\n }\n templateClassName = 'dashboard'\n templateType = 'default'\n viewType = 'dashboard'\n }\n break\n }\n case 1: {\n // users can override the default routes via `admin.routes` config\n // i.e.{ admin: { routes: { logout: '/sign-out', inactivity: '/idle' }}}\n let viewKey: keyof typeof oneSegmentViews\n\n if (config.admin.routes) {\n const matchedRoute = Object.entries(config.admin.routes).find(([, route]) => {\n return isPathMatchingRoute({\n currentRoute,\n exact: true,\n path: formatAdminURL({ adminRoute, path: route }),\n })\n })\n\n if (matchedRoute) {\n viewKey = matchedRoute[0] as keyof typeof oneSegmentViews\n }\n }\n\n if (oneSegmentViews[viewKey]) {\n // --> /account\n // --> /create-first-user\n // --> /browse-by-folder\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n\n ViewToRender = {\n Component: oneSegmentViews[viewKey],\n }\n\n templateClassName = baseClasses[viewKey]\n templateType = 'minimal'\n\n if (viewKey === 'account') {\n templateType = 'default'\n viewType = 'account'\n }\n\n if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {\n templateType = 'default'\n viewType = 'folders'\n }\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n ViewToRender = {\n Component: ResetPassword,\n }\n templateClassName = baseClasses[segmentTwo]\n templateType = 'minimal'\n viewType = 'reset'\n } else if (\n isBrowseByFolderEnabled &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n ViewToRender = {\n Component: oneSegmentViews.browseByFolder,\n }\n templateClassName = baseClasses.folders\n templateType = 'default'\n viewType = 'folders'\n folderID = segmentTwo\n } else if (isCollection && matchedCollection) {\n // --> /collections/:collectionSlug\n\n ViewToRender = {\n Component: ListView,\n }\n\n templateClassName = `${segmentTwo}-list`\n templateType = 'default'\n viewType = 'list'\n serverProps.viewActions = serverProps.viewActions.concat(\n matchedCollection.admin.components?.views?.list?.actions,\n )\n } else if (isGlobal && matchedGlobal) {\n // --> /globals/:globalSlug\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = 'global-edit'\n templateType = 'default'\n viewType = 'document'\n\n // add default view actions\n serverProps.viewActions = serverProps.viewActions.concat(\n getViewActions({\n editConfig: matchedGlobal.admin?.components?.views?.edit,\n viewKey: 'default',\n }),\n )\n }\n break\n }\n default:\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n ViewToRender = {\n Component: Verify,\n }\n\n templateClassName = 'verify'\n templateType = 'minimal'\n viewType = 'verify'\n } else if (isCollection && matchedCollection) {\n if (config.folders && segmentThree === config.folders.slug && matchedCollection.folders) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:folderID\n ViewToRender = {\n Component: CollectionFolderView,\n }\n\n templateClassName = `collection-folders`\n templateType = 'default'\n viewType = 'collection-folders'\n folderID = segmentFour\n } else {\n // Collection Edit Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/api\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:versionID\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `collection-default-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentFour, segmentFive])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n attachViewActions({\n collectionOrGlobal: matchedCollection,\n serverProps,\n viewKeyArg: documentSubViewType,\n })\n }\n } else if (isGlobal && matchedGlobal) {\n // Global Edit Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/versions/:versionID\n // --> /globals/:globalSlug/api\n\n ViewToRender = {\n Component: DocumentView,\n }\n\n templateClassName = `global-edit`\n templateType = 'default'\n\n const viewInfo = getDocumentViewInfo([segmentThree, segmentFour])\n viewType = viewInfo.viewType\n documentSubViewType = viewInfo.documentSubViewType\n\n attachViewActions({\n collectionOrGlobal: matchedGlobal,\n serverProps,\n viewKeyArg: documentSubViewType,\n })\n }\n break\n }\n\n if (!ViewToRender) {\n ViewToRender = getCustomViewByRoute({ config, currentRoute })?.view\n }\n\n serverProps.viewActions.reverse()\n\n return {\n browseByFolderSlugs,\n DefaultView: ViewToRender,\n documentSubViewType,\n folderID,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAKpC,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,eAAe,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAKpC,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,eAAe,EACrB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,QAAQ,oGAKlB;IACD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAC,CAAA;CACH,+BAsKA,CAAA"}
|
package/dist/views/Root/index.js
CHANGED
|
@@ -35,9 +35,9 @@ export const RootPage = async ({
|
|
|
35
35
|
const segments = Array.isArray(params.segments) ? params.segments : [];
|
|
36
36
|
const searchParams = await searchParamsPromise;
|
|
37
37
|
const {
|
|
38
|
+
browseByFolderSlugs,
|
|
38
39
|
DefaultView,
|
|
39
40
|
documentSubViewType,
|
|
40
|
-
folderCollectionSlugs,
|
|
41
41
|
folderID: folderIDParam,
|
|
42
42
|
initPageOptions,
|
|
43
43
|
serverProps,
|
|
@@ -100,16 +100,16 @@ export const RootPage = async ({
|
|
|
100
100
|
importMap
|
|
101
101
|
});
|
|
102
102
|
const payload = initPageResult?.req.payload;
|
|
103
|
-
const folderID = parseDocumentID({
|
|
103
|
+
const folderID = payload.config.folders ? parseDocumentID({
|
|
104
104
|
id: folderIDParam,
|
|
105
105
|
collectionSlug: payload.config.folders.slug,
|
|
106
106
|
payload
|
|
107
|
-
});
|
|
107
|
+
}) : undefined;
|
|
108
108
|
const RenderedView = RenderServerComponent({
|
|
109
109
|
clientProps: {
|
|
110
|
+
browseByFolderSlugs,
|
|
110
111
|
clientConfig,
|
|
111
112
|
documentSubViewType,
|
|
112
|
-
folderCollectionSlugs,
|
|
113
113
|
viewType
|
|
114
114
|
},
|
|
115
115
|
Component: DefaultView.payloadComponent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","parseDocumentID","formatAdminURL","React","DefaultTemplate","MinimalTemplate","initPage","getRouteData","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","DefaultView","documentSubViewType","folderCollectionSlugs","folderID","folderIDParam","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","id","collectionSlug","folders","RenderedView","clientProps","Fallback","docID","_jsxs","Fragment","_jsx","className","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport {\n type AdminViewClientProps,\n type AdminViewServerPropsOnly,\n type ImportMap,\n parseDocumentID,\n type SanitizedConfig,\n} from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getRouteData } from './getRouteData.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n DefaultView,\n documentSubViewType,\n folderCollectionSlugs,\n folderID: folderIDParam,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getRouteData({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n /**\n * This function is responsible for handling the case where the view is not found.\n * The current route did not match any default views or custom route views.\n */\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const payload = initPageResult?.req.payload\n const folderID = parseDocumentID({\n id: folderIDParam,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n\n const RenderedView = RenderServerComponent({\n clientProps: {\n clientConfig,\n documentSubViewType,\n folderCollectionSlugs,\n viewType,\n } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n folderID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <React.Fragment>\n {!templateType && <React.Fragment>{RenderedView}</React.Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["RenderServerComponent","getClientConfig","notFound","redirect","parseDocumentID","formatAdminURL","React","DefaultTemplate","MinimalTemplate","initPage","getRouteData","RootPage","config","configPromise","importMap","params","paramsPromise","searchParams","searchParamsPromise","admin","routes","createFirstUser","_createFirstUserRoute","user","userSlug","adminRoute","currentRoute","path","Array","isArray","segments","join","browseByFolderSlugs","DefaultView","documentSubViewType","folderID","folderIDParam","initPageOptions","serverProps","templateClassName","templateType","viewType","initPageResult","dbHasUser","req","payload","db","findOne","collection","then","doc","Component","payloadComponent","redirectTo","createFirstUserRoute","collectionConfig","collections","find","slug","disableLocalStrategy","auth","clientConfig","i18n","folders","id","collectionSlug","undefined","RenderedView","clientProps","Fallback","docID","_jsxs","Fragment","_jsx","className","globalSlug","globalConfig","locale","permissions","viewActions","visibleEntities","globals"],"sources":["../../../src/views/Root/index.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { notFound, redirect } from 'next/navigation.js'\nimport {\n type AdminViewClientProps,\n type AdminViewServerPropsOnly,\n type ImportMap,\n parseDocumentID,\n type SanitizedConfig,\n} from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { getRouteData } from './getRouteData.js'\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n isEditing?: boolean\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const RootPage = async ({\n config: configPromise,\n importMap,\n params: paramsPromise,\n searchParams: searchParamsPromise,\n}: {\n readonly config: Promise<SanitizedConfig>\n readonly importMap: ImportMap\n readonly params: Promise<{\n segments: string[]\n }>\n readonly searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}) => {\n const config = await configPromise\n\n const {\n admin: {\n routes: { createFirstUser: _createFirstUserRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute },\n } = config\n\n const params = await paramsPromise\n\n const currentRoute = formatAdminURL({\n adminRoute,\n path: Array.isArray(params.segments) ? `/${params.segments.join('/')}` : null,\n })\n\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const searchParams = await searchParamsPromise\n\n const {\n browseByFolderSlugs,\n DefaultView,\n documentSubViewType,\n folderID: folderIDParam,\n initPageOptions,\n serverProps,\n templateClassName,\n templateType,\n viewType,\n } = getRouteData({\n adminRoute,\n config,\n currentRoute,\n importMap,\n searchParams,\n segments,\n })\n\n const initPageResult = await initPage(initPageOptions)\n\n const dbHasUser =\n initPageResult.req.user ||\n (await initPageResult?.req.payload.db\n .findOne({\n collection: userSlug,\n req: initPageResult?.req,\n })\n ?.then((doc) => !!doc))\n\n /**\n * This function is responsible for handling the case where the view is not found.\n * The current route did not match any default views or custom route views.\n */\n if (!DefaultView?.Component && !DefaultView?.payloadComponent) {\n if (initPageResult?.req?.user) {\n notFound()\n }\n\n if (dbHasUser) {\n redirect(adminRoute)\n }\n }\n\n if (typeof initPageResult?.redirectTo === 'string') {\n redirect(initPageResult.redirectTo)\n }\n\n if (initPageResult) {\n const createFirstUserRoute = formatAdminURL({ adminRoute, path: _createFirstUserRoute })\n\n const collectionConfig = config.collections.find(({ slug }) => slug === userSlug)\n const disableLocalStrategy = collectionConfig?.auth?.disableLocalStrategy\n\n if (disableLocalStrategy && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n\n if (!dbHasUser && currentRoute !== createFirstUserRoute && !disableLocalStrategy) {\n redirect(createFirstUserRoute)\n }\n\n if (dbHasUser && currentRoute === createFirstUserRoute) {\n redirect(adminRoute)\n }\n }\n\n if (!DefaultView?.Component && !DefaultView?.payloadComponent && !dbHasUser) {\n redirect(adminRoute)\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n: initPageResult?.req.i18n,\n importMap,\n })\n\n const payload = initPageResult?.req.payload\n const folderID = payload.config.folders\n ? parseDocumentID({\n id: folderIDParam,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n : undefined\n\n const RenderedView = RenderServerComponent({\n clientProps: {\n browseByFolderSlugs,\n clientConfig,\n documentSubViewType,\n viewType,\n } satisfies AdminViewClientProps,\n Component: DefaultView.payloadComponent,\n Fallback: DefaultView.Component,\n importMap,\n serverProps: {\n ...serverProps,\n clientConfig,\n docID: initPageResult?.docID,\n folderID,\n i18n: initPageResult?.req.i18n,\n importMap,\n initPageResult,\n params,\n payload: initPageResult?.req.payload,\n searchParams,\n } satisfies AdminViewServerPropsOnly,\n })\n\n return (\n <React.Fragment>\n {!templateType && <React.Fragment>{RenderedView}</React.Fragment>}\n {templateType === 'minimal' && (\n <MinimalTemplate className={templateClassName}>{RenderedView}</MinimalTemplate>\n )}\n {templateType === 'default' && (\n <DefaultTemplate\n collectionSlug={initPageResult?.collectionConfig?.slug}\n docID={initPageResult?.docID}\n documentSubViewType={documentSubViewType}\n globalSlug={initPageResult?.globalConfig?.slug}\n i18n={initPageResult?.req.i18n}\n locale={initPageResult?.locale}\n params={params}\n payload={initPageResult?.req.payload}\n permissions={initPageResult?.permissions}\n req={initPageResult?.req}\n searchParams={searchParams}\n user={initPageResult?.req.user}\n viewActions={serverProps.viewActions}\n viewType={viewType}\n visibleEntities={{\n // The reason we are not passing in initPageResult.visibleEntities directly is due to a \"Cannot assign to read only property of object '#<Object>\" error introduced in React 19\n // which this caused as soon as initPageResult.visibleEntities is passed in\n collections: initPageResult?.visibleEntities?.collections,\n globals: initPageResult?.visibleEntities?.globals,\n }}\n >\n {RenderedView}\n </DefaultTemplate>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -130,7 +130,7 @@ export const generatePageMetadata = async ({
|
|
|
130
130
|
i18n
|
|
131
131
|
});
|
|
132
132
|
} else if (isCollection) {
|
|
133
|
-
if (segmentThree === config.folders.slug) {
|
|
133
|
+
if (config.folders && segmentThree === config.folders.slug) {
|
|
134
134
|
if (folderCollectionSlugs.includes(collectionConfig.slug)) {
|
|
135
135
|
// Collection Folder Views
|
|
136
136
|
// --> /collections/:collectionSlug/:folderCollectionSlug
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateBrowseByFolderMetadata","generateCollectionFolderMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","folders","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","folderCollectionSlugs","collections","reduce","acc","slug","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","segmentThree","isGlobal","isCollection","i18n","meta","collectionConfig","length","find","collection","globalConfig","globals","global","admin","routes","browseByFolder","reset","includes","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js'\nimport { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n folders: generateBrowseByFolderMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n const params = await paramsPromise\n\n const folderCollectionSlugs = config.collections.reduce((acc, { slug, folders }) => {\n if (folders) {\n return [...acc, slug]\n }\n return acc\n }, [])\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo, segmentThree] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {\n // --> /:folderCollectionSlug\n meta = await oneSegmentMeta.folders({ config, i18n })\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n } else if (oneSegmentMeta[segmentOne]) {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n } else if (\n folderCollectionSlugs.length &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n meta = await generateBrowseByFolderMetadata({ config, i18n })\n } else if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n if (segmentThree === config.folders.slug) {\n if (folderCollectionSlugs.includes(collectionConfig.slug)) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:id\n meta = await generateCollectionFolderMetadata({\n collectionConfig,\n config,\n i18n,\n params,\n })\n }\n } else {\n // Collection Document Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n }\n } else if (isGlobal) {\n // Global Document Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"metadata.js","names":["getNextRequestI18n","generateAccountViewMetadata","generateBrowseByFolderMetadata","generateCollectionFolderMetadata","generateCreateFirstUserViewMetadata","generateDashboardViewMetadata","generateDocumentViewMetadata","generateForgotPasswordViewMetadata","generateListViewMetadata","generateLoginViewMetadata","generateNotFoundViewMetadata","generateResetPasswordViewMetadata","generateUnauthorizedViewMetadata","generateVerifyViewMetadata","generateCustomViewMetadata","getCustomViewByRoute","oneSegmentMeta","folders","forgot","login","logout","unauthorized","generatePageMetadata","config","configPromise","params","paramsPromise","folderCollectionSlugs","collections","reduce","acc","slug","segments","Array","isArray","currentRoute","join","segmentOne","segmentTwo","segmentThree","isGlobal","isCollection","i18n","meta","collectionConfig","length","find","collection","globalConfig","globals","global","admin","routes","browseByFolder","reset","includes","viewConfig","viewKey"],"sources":["../../../src/views/Root/metadata.ts"],"sourcesContent":["import type { Metadata } from 'next'\nimport type { SanitizedConfig } from 'payload'\n\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { generateAccountViewMetadata } from '../Account/metadata.js'\nimport { generateBrowseByFolderMetadata } from '../BrowseByFolder/metadata.js'\nimport { generateCollectionFolderMetadata } from '../CollectionFolders/metadata.js'\nimport { generateCreateFirstUserViewMetadata } from '../CreateFirstUser/metadata.js'\nimport { generateDashboardViewMetadata } from '../Dashboard/metadata.js'\nimport { generateDocumentViewMetadata } from '../Document/metadata.js'\nimport { generateForgotPasswordViewMetadata } from '../ForgotPassword/metadata.js'\nimport { generateListViewMetadata } from '../List/metadata.js'\nimport { generateLoginViewMetadata } from '../Login/metadata.js'\nimport { generateNotFoundViewMetadata } from '../NotFound/metadata.js'\nimport { generateResetPasswordViewMetadata } from '../ResetPassword/metadata.js'\nimport { generateUnauthorizedViewMetadata } from '../Unauthorized/metadata.js'\nimport { generateVerifyViewMetadata } from '../Verify/metadata.js'\nimport { generateCustomViewMetadata } from './generateCustomViewMetadata.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nconst oneSegmentMeta = {\n 'create-first-user': generateCreateFirstUserViewMetadata,\n folders: generateBrowseByFolderMetadata,\n forgot: generateForgotPasswordViewMetadata,\n login: generateLoginViewMetadata,\n logout: generateUnauthorizedViewMetadata,\n 'logout-inactivity': generateUnauthorizedViewMetadata,\n unauthorized: generateUnauthorizedViewMetadata,\n}\n\ntype Args = {\n config: Promise<SanitizedConfig>\n params: Promise<{\n [key: string]: string | string[]\n }>\n searchParams: Promise<{\n [key: string]: string | string[]\n }>\n}\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n params: paramsPromise,\n}: Args) => {\n const config = await configPromise\n const params = await paramsPromise\n\n const folderCollectionSlugs = config.collections.reduce((acc, { slug, folders }) => {\n if (folders) {\n return [...acc, slug]\n }\n return acc\n }, [])\n const segments = Array.isArray(params.segments) ? params.segments : []\n\n const currentRoute = `/${segments.join('/')}`\n const [segmentOne, segmentTwo, segmentThree] = segments\n\n const isGlobal = segmentOne === 'globals'\n const isCollection = segmentOne === 'collections'\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n let meta: Metadata\n\n // TODO: handle custom routes\n\n const collectionConfig =\n isCollection &&\n segments.length > 1 &&\n config?.collections?.find((collection) => collection.slug === segmentTwo)\n\n const globalConfig =\n isGlobal && segments.length > 1 && config?.globals?.find((global) => global.slug === segmentTwo)\n\n switch (segments.length) {\n case 0: {\n meta = await generateDashboardViewMetadata({ config, i18n })\n break\n }\n case 1: {\n if (folderCollectionSlugs.length && `/${segmentOne}` === config.admin.routes.browseByFolder) {\n // --> /:folderCollectionSlug\n meta = await oneSegmentMeta.folders({ config, i18n })\n } else if (segmentOne === 'account') {\n // --> /account\n meta = await generateAccountViewMetadata({ config, i18n })\n break\n } else if (oneSegmentMeta[segmentOne]) {\n // --> /create-first-user\n // --> /forgot\n // --> /login\n // --> /logout\n // --> /logout-inactivity\n // --> /unauthorized\n meta = await oneSegmentMeta[segmentOne]({ config, i18n })\n break\n }\n break\n }\n case 2: {\n if (`/${segmentOne}` === config.admin.routes.reset) {\n // --> /reset/:token\n meta = await generateResetPasswordViewMetadata({ config, i18n })\n } else if (\n folderCollectionSlugs.length &&\n `/${segmentOne}` === config.admin.routes.browseByFolder\n ) {\n // --> /browse-by-folder/:folderID\n meta = await generateBrowseByFolderMetadata({ config, i18n })\n } else if (isCollection) {\n // --> /collections/:collectionSlug\n meta = await generateListViewMetadata({ collectionConfig, config, i18n })\n } else if (isGlobal) {\n // --> /globals/:globalSlug\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n default: {\n if (segmentTwo === 'verify') {\n // --> /:collectionSlug/verify/:token\n meta = await generateVerifyViewMetadata({ config, i18n })\n } else if (isCollection) {\n if (config.folders && segmentThree === config.folders.slug) {\n if (folderCollectionSlugs.includes(collectionConfig.slug)) {\n // Collection Folder Views\n // --> /collections/:collectionSlug/:folderCollectionSlug\n // --> /collections/:collectionSlug/:folderCollectionSlug/:id\n meta = await generateCollectionFolderMetadata({\n collectionConfig,\n config,\n i18n,\n params,\n })\n }\n } else {\n // Collection Document Views\n // --> /collections/:collectionSlug/:id\n // --> /collections/:collectionSlug/:id/preview\n // --> /collections/:collectionSlug/:id/versions\n // --> /collections/:collectionSlug/:id/versions/:version\n // --> /collections/:collectionSlug/:id/api\n meta = await generateDocumentViewMetadata({ collectionConfig, config, i18n, params })\n }\n } else if (isGlobal) {\n // Global Document Views\n // --> /globals/:globalSlug/versions\n // --> /globals/:globalSlug/versions/:version\n // --> /globals/:globalSlug/preview\n // --> /globals/:globalSlug/api\n meta = await generateDocumentViewMetadata({\n config,\n globalConfig,\n i18n,\n params,\n })\n }\n break\n }\n }\n\n if (!meta) {\n const { viewConfig, viewKey } = getCustomViewByRoute({\n config,\n currentRoute,\n })\n\n if (viewKey) {\n // Custom Views\n // --> /:path\n meta = await generateCustomViewMetadata({\n config,\n i18n,\n viewConfig,\n })\n } else {\n meta = await generateNotFoundViewMetadata({ config, i18n })\n }\n }\n\n return meta\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.41.0-internal.
|
|
3
|
+
"version": "3.41.0-internal.c12584b",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -88,9 +88,9 @@
|
|
|
88
88
|
"react-diff-viewer-continued": "4.0.5",
|
|
89
89
|
"sass": "1.77.4",
|
|
90
90
|
"uuid": "10.0.0",
|
|
91
|
-
"@payloadcms/graphql": "3.41.0-internal.
|
|
92
|
-
"@payloadcms/
|
|
93
|
-
"@payloadcms/
|
|
91
|
+
"@payloadcms/graphql": "3.41.0-internal.c12584b",
|
|
92
|
+
"@payloadcms/ui": "3.41.0-internal.c12584b",
|
|
93
|
+
"@payloadcms/translations": "3.41.0-internal.c12584b"
|
|
94
94
|
},
|
|
95
95
|
"devDependencies": {
|
|
96
96
|
"@babel/cli": "7.27.2",
|
|
@@ -107,13 +107,13 @@
|
|
|
107
107
|
"esbuild": "0.25.5",
|
|
108
108
|
"esbuild-sass-plugin": "3.3.1",
|
|
109
109
|
"swc-plugin-transform-remove-imports": "4.0.4",
|
|
110
|
-
"
|
|
111
|
-
"
|
|
110
|
+
"payload": "3.41.0-internal.c12584b",
|
|
111
|
+
"@payloadcms/eslint-config": "3.28.0"
|
|
112
112
|
},
|
|
113
113
|
"peerDependencies": {
|
|
114
114
|
"graphql": "^16.8.1",
|
|
115
115
|
"next": "^15.2.3",
|
|
116
|
-
"payload": "3.41.0-internal.
|
|
116
|
+
"payload": "3.41.0-internal.c12584b"
|
|
117
117
|
},
|
|
118
118
|
"engines": {
|
|
119
119
|
"node": "^18.20.2 || >=20.9.0"
|