@payloadcms/next 3.68.0-internal-debug.591ab42 → 3.68.0-internal-debug.e9b66ee
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/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.js +7 -45
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/FormHeader/index.js +4 -25
- package/dist/elements/FormHeader/index.js.map +1 -1
- package/dist/elements/Nav/NavHamburger/index.js +5 -21
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +10 -24
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.client.js +43 -91
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.js +48 -100
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/layouts/Root/NestProviders.js +3 -12
- package/dist/layouts/Root/NestProviders.js.map +1 -1
- package/dist/layouts/Root/index.js +19 -84
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +5 -0
- package/dist/routes/rest/og/image.js +61 -97
- package/dist/routes/rest/og/image.js.map +1 -1
- package/dist/routes/rest/og/index.js +1 -15
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/templates/Default/NavHamburger/index.js +1 -10
- package/dist/templates/Default/NavHamburger/index.js.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +9 -16
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.js +38 -106
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.js +3 -18
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +5 -15
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/RenderJSON/index.js +59 -156
- package/dist/views/API/RenderJSON/index.js.map +1 -1
- package/dist/views/API/index.client.js +71 -215
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.js +1 -7
- package/dist/views/API/index.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +8 -35
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js +3 -15
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/Settings/index.js +12 -58
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +19 -30
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.js +25 -83
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +28 -38
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +35 -45
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +20 -75
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.js +5 -36
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.js +94 -169
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.js +24 -43
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.js +14 -76
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/index.js +1 -9
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.js +23 -75
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/index.js +31 -53
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -21
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Login/LoginField/index.js +23 -49
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js +20 -68
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.js +33 -66
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +7 -36
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js +4 -26
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.js +15 -55
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.js +5 -33
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.js +23 -86
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/index.js +12 -52
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.js +15 -50
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.js +10 -47
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
- package/dist/views/Version/Default/index.js +52 -258
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/Restore/index.js +21 -61
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +10 -40
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js +17 -33
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Version/index.js +21 -63
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.js +9 -58
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +2 -9
- package/dist/views/Versions/cells/ID/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +20 -98
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +13 -59
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +10 -9
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
2
1
|
import { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui';
|
|
3
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
3
|
import { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc';
|
|
5
4
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
6
5
|
import { redirect } from 'next/navigation.js';
|
|
7
|
-
import React from 'react';
|
|
8
6
|
export const buildBrowseByFolderView = async (args)=>{
|
|
9
7
|
const { browseByFolderSlugs: browseByFolderSlugsFromArgs = [], disableBulkDelete, disableBulkEdit, enableRowSelections, folderID, initPageResult, isInDrawer, params, query: queryFromArgs, searchParams } = args;
|
|
10
8
|
const { locale: fullLocale, permissions, req: { i18n, payload, payload: { config }, query: queryFromReq, user }, visibleEntities } = initPageResult;
|
|
@@ -109,42 +107,34 @@ export const buildBrowseByFolderView = async (args)=>{
|
|
|
109
107
|
return permissions?.collections?.[collectionSlug]?.create && visibleEntities.collections.includes(collectionSlug);
|
|
110
108
|
});
|
|
111
109
|
return {
|
|
112
|
-
View:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
// Component:config.folders?.components?.views?.BrowseByFolders?.Component,
|
|
142
|
-
Fallback: DefaultBrowseByFolderView,
|
|
143
|
-
importMap: payload.importMap,
|
|
144
|
-
serverProps
|
|
145
|
-
})
|
|
146
|
-
]
|
|
147
|
-
}, void 0, true)
|
|
110
|
+
View: <>
|
|
111
|
+
<HydrateAuthProvider permissions={permissions}/>
|
|
112
|
+
{RenderServerComponent({
|
|
113
|
+
clientProps: {
|
|
114
|
+
// ...folderViewSlots,
|
|
115
|
+
activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,
|
|
116
|
+
allCollectionFolderSlugs: allAvailableCollectionSlugs,
|
|
117
|
+
allowCreateCollectionSlugs,
|
|
118
|
+
baseFolderPath: `/browse-by-folder`,
|
|
119
|
+
breadcrumbs,
|
|
120
|
+
disableBulkDelete,
|
|
121
|
+
disableBulkEdit,
|
|
122
|
+
documents,
|
|
123
|
+
enableRowSelections,
|
|
124
|
+
folderAssignedCollections,
|
|
125
|
+
folderFieldName: config.folders.fieldName,
|
|
126
|
+
folderID: resolvedFolderID || null,
|
|
127
|
+
FolderResultsComponent,
|
|
128
|
+
sort: sortPreference,
|
|
129
|
+
subfolders,
|
|
130
|
+
viewPreference
|
|
131
|
+
},
|
|
132
|
+
// Component:config.folders?.components?.views?.BrowseByFolders?.Component,
|
|
133
|
+
Fallback: DefaultBrowseByFolderView,
|
|
134
|
+
importMap: payload.importMap,
|
|
135
|
+
serverProps
|
|
136
|
+
})}
|
|
137
|
+
</>
|
|
148
138
|
};
|
|
149
139
|
};
|
|
150
140
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\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 if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: 'browse-by-folder',\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/BrowseByFolder/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultBrowseByFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\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 if (config.folders === false || config.folders.browseByFolder === false) {\n throw new Error('not-found')\n }\n\n const foldersSlug = config.folders.slug\n\n /**\n * All visiible folder enabled collection slugs that the user has read permissions for.\n */\n const allowReadCollectionSlugs = browseByFolderSlugsFromArgs.filter(\n (collectionSlug) =>\n permissions?.collections?.[collectionSlug]?.read &&\n visibleEntities.collections.includes(collectionSlug),\n )\n\n const query =\n queryFromArgs ||\n ((queryFromReq\n ? {\n ...queryFromReq,\n relationTo:\n typeof queryFromReq?.relationTo === 'string'\n ? JSON.parse(queryFromReq.relationTo)\n : undefined,\n }\n : {}) as ListQuery)\n\n /**\n * If a folderID is provided and the relationTo query param exists,\n * we filter the collection slugs to only those that are allowed to be read.\n *\n * If no folderID is provided, only folders should be active and displayed (the root view).\n */\n let collectionsToDisplay: string[] = []\n if (folderID && Array.isArray(query?.relationTo)) {\n collectionsToDisplay = query.relationTo.filter(\n (slug) => allowReadCollectionSlugs.includes(slug) || slug === foldersSlug,\n )\n } else if (folderID) {\n collectionsToDisplay = [...allowReadCollectionSlugs, foldersSlug]\n } else {\n collectionsToDisplay = [foldersSlug]\n }\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const browseByFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: 'browse-by-folder',\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = browseByFolderPreferences?.sort || 'name'\n const viewPreference = browseByFolderPreferences?.viewPreference || 'grid'\n\n const { breadcrumbs, documents, folderAssignedCollections, FolderResultsComponent, subfolders } =\n await getFolderResultsComponentAndData({\n browseByFolder: true,\n collectionsToDisplay,\n displayAs: viewPreference,\n folderAssignedCollections: collectionsToDisplay.filter((slug) => slug !== foldersSlug) || [],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 // Filter down allCollectionFolderSlugs by the ones the current folder is assingned to\n const allAvailableCollectionSlugs =\n folderID && Array.isArray(folderAssignedCollections) && folderAssignedCollections.length\n ? allowReadCollectionSlugs.filter((slug) => folderAssignedCollections.includes(slug))\n : allowReadCollectionSlugs\n\n // Filter down activeCollectionFolderSlugs by the ones the current folder is assingned to\n const availableActiveCollectionFolderSlugs = collectionsToDisplay.filter((slug) => {\n if (slug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.read\n } else {\n return !folderAssignedCollections || folderAssignedCollections.includes(slug)\n }\n })\n\n // Documents cannot be created without a parent folder in this view\n const allowCreateCollectionSlugs = (\n resolvedFolderID ? [foldersSlug, ...allAvailableCollectionSlugs] : [foldersSlug]\n ).filter((collectionSlug) => {\n if (collectionSlug === foldersSlug) {\n return permissions?.collections?.[foldersSlug]?.create\n }\n return (\n permissions?.collections?.[collectionSlug]?.create &&\n visibleEntities.collections.includes(collectionSlug)\n )\n })\n\n return {\n View: (\n <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n activeCollectionFolderSlugs: availableActiveCollectionFolderSlugs,\n allCollectionFolderSlugs: allAvailableCollectionSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath: `/browse-by-folder`,\n breadcrumbs,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component:config.folders?.components?.views?.BrowseByFolders?.Component,\n Fallback: DefaultBrowseByFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n}\n"],"names":["DefaultBrowseByFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","buildBrowseByFolderView","args","browseByFolderSlugs","browseByFolderSlugsFromArgs","disableBulkDelete","disableBulkEdit","enableRowSelections","folderID","initPageResult","isInDrawer","params","query","queryFromArgs","searchParams","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","folders","browseByFolder","Error","foldersSlug","slug","allowReadCollectionSlugs","filter","collectionSlug","collections","read","includes","relationTo","JSON","parse","undefined","collectionsToDisplay","Array","isArray","routes","admin","adminRoute","browseByFolderPreferences","key","value","sort","sortPreference","viewPreference","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","allAvailableCollectionSlugs","availableActiveCollectionFolderSlugs","allowCreateCollectionSlugs","create","View","clientProps","activeCollectionFolderSlugs","allCollectionFolderSlugs","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
|
|
2
1
|
import { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui';
|
|
3
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
3
|
import { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc';
|
|
5
4
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
6
5
|
import { redirect } from 'next/navigation.js';
|
|
7
|
-
import React from 'react';
|
|
8
6
|
// import { renderFolderViewSlots } from './renderFolderViewSlots.js'
|
|
9
7
|
/**
|
|
10
8
|
* Builds the entire view for collection-folder views on the server
|
|
@@ -86,49 +84,41 @@ import React from 'react';
|
|
|
86
84
|
// })
|
|
87
85
|
const search = query?.search;
|
|
88
86
|
return {
|
|
89
|
-
View:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
},
|
|
125
|
-
// Component: collectionConfig?.admin?.components?.views?.Folders?.Component,
|
|
126
|
-
Fallback: DefaultCollectionFolderView,
|
|
127
|
-
importMap: payload.importMap,
|
|
128
|
-
serverProps
|
|
129
|
-
})
|
|
130
|
-
]
|
|
131
|
-
}, void 0, true)
|
|
87
|
+
View: <>
|
|
88
|
+
<HydrateAuthProvider permissions={permissions}/>
|
|
89
|
+
{RenderServerComponent({
|
|
90
|
+
clientProps: {
|
|
91
|
+
// ...folderViewSlots,
|
|
92
|
+
allCollectionFolderSlugs: [
|
|
93
|
+
config.folders.slug,
|
|
94
|
+
collectionSlug
|
|
95
|
+
],
|
|
96
|
+
allowCreateCollectionSlugs: [
|
|
97
|
+
permissions?.collections?.[config.folders.slug]?.create ? config.folders.slug : null,
|
|
98
|
+
resolvedFolderID && permissions?.collections?.[collectionSlug]?.create ? collectionSlug : null
|
|
99
|
+
].filter(Boolean),
|
|
100
|
+
baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,
|
|
101
|
+
breadcrumbs,
|
|
102
|
+
collectionSlug,
|
|
103
|
+
disableBulkDelete,
|
|
104
|
+
disableBulkEdit,
|
|
105
|
+
documents,
|
|
106
|
+
enableRowSelections,
|
|
107
|
+
folderAssignedCollections,
|
|
108
|
+
folderFieldName: config.folders.fieldName,
|
|
109
|
+
folderID: resolvedFolderID || null,
|
|
110
|
+
FolderResultsComponent,
|
|
111
|
+
search,
|
|
112
|
+
sort: sortPreference,
|
|
113
|
+
subfolders,
|
|
114
|
+
viewPreference
|
|
115
|
+
},
|
|
116
|
+
// Component: collectionConfig?.admin?.components?.views?.Folders?.Component,
|
|
117
|
+
Fallback: DefaultCollectionFolderView,
|
|
118
|
+
importMap: payload.importMap,
|
|
119
|
+
serverProps
|
|
120
|
+
})}
|
|
121
|
+
</>
|
|
132
122
|
};
|
|
133
123
|
}
|
|
134
124
|
throw new Error('not-found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\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 (!config.folders) {\n throw new Error('not-found')\n }\n\n if (\n !permissions?.collections?.[collectionSlug]?.read ||\n !permissions?.collections?.[config.folders.slug].read\n ) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const collectionFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: `${collectionSlug}-collection-folder`,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = collectionFolderPreferences?.sort || 'name'\n const viewPreference = collectionFolderPreferences?.viewPreference || 'grid'\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const {\n breadcrumbs,\n documents,\n folderAssignedCollections,\n FolderResultsComponent,\n subfolders,\n } = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [config.folders.slug, collectionSlug],\n displayAs: viewPreference,\n folderAssignedCollections: [collectionSlug],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 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 <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n allCollectionFolderSlugs: [config.folders.slug, collectionSlug],\n allowCreateCollectionSlugs: [\n permissions?.collections?.[config.folders.slug]?.create\n ? config.folders.slug\n : null,\n resolvedFolderID && permissions?.collections?.[collectionSlug]?.create\n ? collectionSlug\n : null,\n ].filter(Boolean),\n baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,\n breadcrumbs,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n search,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"names":["DefaultCollectionFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","React","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","folders","Error","collections","read","includes","collectionFolderPreferences","key","value","sort","sortPreference","viewPreference","routes","admin","adminRoute","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","browseByFolder","collectionsToDisplay","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","search","View","clientProps","allCollectionFolderSlugs","allowCreateCollectionSlugs","create","filter","Boolean","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/CollectionFolders/buildView.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n BuildCollectionFolderViewResult,\n FolderListViewClientProps,\n FolderListViewServerPropsOnly,\n FolderSortKeys,\n ListQuery,\n} from 'payload'\n\nimport { DefaultCollectionFolderView, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getFolderResultsComponentAndData, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport React from 'react'\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 (!config.folders) {\n throw new Error('not-found')\n }\n\n if (\n !permissions?.collections?.[collectionSlug]?.read ||\n !permissions?.collections?.[config.folders.slug].read\n ) {\n throw new Error('not-found')\n }\n\n if (collectionConfig) {\n if (\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) ||\n !config.folders\n ) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n /**\n * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.\n * This will ensure that prefs are only updated when explicitly set by the user\n * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie\n */\n const collectionFolderPreferences = await upsertPreferences<{\n sort?: FolderSortKeys\n viewPreference?: 'grid' | 'list'\n }>({\n key: `${collectionSlug}-collection-folder`,\n req: initPageResult.req,\n value: {\n sort: query?.sort as FolderSortKeys,\n },\n })\n\n const sortPreference: FolderSortKeys = collectionFolderPreferences?.sort || 'name'\n const viewPreference = collectionFolderPreferences?.viewPreference || 'grid'\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const {\n breadcrumbs,\n documents,\n folderAssignedCollections,\n FolderResultsComponent,\n subfolders,\n } = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [config.folders.slug, collectionSlug],\n displayAs: viewPreference,\n folderAssignedCollections: [collectionSlug],\n folderID,\n req: initPageResult.req,\n sort: sortPreference,\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 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 <>\n <HydrateAuthProvider permissions={permissions} />\n {RenderServerComponent({\n clientProps: {\n // ...folderViewSlots,\n allCollectionFolderSlugs: [config.folders.slug, collectionSlug],\n allowCreateCollectionSlugs: [\n permissions?.collections?.[config.folders.slug]?.create\n ? config.folders.slug\n : null,\n resolvedFolderID && permissions?.collections?.[collectionSlug]?.create\n ? collectionSlug\n : null,\n ].filter(Boolean),\n baseFolderPath: `/collections/${collectionSlug}/${config.folders.slug}`,\n breadcrumbs,\n collectionSlug,\n disableBulkDelete,\n disableBulkEdit,\n documents,\n enableRowSelections,\n folderAssignedCollections,\n folderFieldName: config.folders.fieldName,\n folderID: resolvedFolderID || null,\n FolderResultsComponent,\n search,\n sort: sortPreference,\n subfolders,\n viewPreference,\n } satisfies FolderListViewClientProps,\n // Component: collectionConfig?.admin?.components?.views?.Folders?.Component,\n Fallback: DefaultCollectionFolderView,\n importMap: payload.importMap,\n serverProps,\n })}\n </>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n"],"names":["DefaultCollectionFolderView","HydrateAuthProvider","RenderServerComponent","getFolderResultsComponentAndData","upsertPreferences","formatAdminURL","redirect","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","folders","Error","collections","read","includes","collectionFolderPreferences","key","value","sort","sortPreference","viewPreference","routes","admin","adminRoute","breadcrumbs","documents","folderAssignedCollections","FolderResultsComponent","subfolders","browseByFolder","collectionsToDisplay","displayAs","resolvedFolderID","length","id","path","serverURL","serverProps","search","View","clientProps","allCollectionFolderSlugs","allowCreateCollectionSlugs","create","filter","Boolean","baseFolderPath","folderFieldName","fieldName","Fallback","importMap"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
2
|
import { ConfirmPasswordField, EmailAndUsernameFields, Form, FormSubmit, PasswordField, RenderFields, useAuth, useConfig, useServerFunctions, useTranslation } from '@payloadcms/ui';
|
|
4
3
|
import { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared';
|
|
5
4
|
import React, { useEffect } from 'react';
|
|
@@ -43,80 +42,26 @@ export const CreateFirstUserClient = ({ docPermissions, docPreferences, initialS
|
|
|
43
42
|
abortAndIgnore(abortOnChange);
|
|
44
43
|
};
|
|
45
44
|
}, []);
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
...initialState,
|
|
50
|
-
'confirm-password'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
loginWithUsername: loginWithUsername,
|
|
67
|
-
operation: "create",
|
|
68
|
-
readOnly: false,
|
|
69
|
-
t: t
|
|
70
|
-
}, void 0, false, {
|
|
71
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
72
|
-
lineNumber: 102,
|
|
73
|
-
columnNumber: 7
|
|
74
|
-
}, this),
|
|
75
|
-
/*#__PURE__*/ _jsxDEV(PasswordField, {
|
|
76
|
-
autoComplete: "off",
|
|
77
|
-
field: {
|
|
78
|
-
name: 'password',
|
|
79
|
-
label: t('authentication:newPassword'),
|
|
80
|
-
required: true
|
|
81
|
-
},
|
|
82
|
-
path: "password"
|
|
83
|
-
}, void 0, false, {
|
|
84
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
85
|
-
lineNumber: 109,
|
|
86
|
-
columnNumber: 7
|
|
87
|
-
}, this),
|
|
88
|
-
/*#__PURE__*/ _jsxDEV(ConfirmPasswordField, {}, void 0, false, {
|
|
89
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
90
|
-
lineNumber: 118,
|
|
91
|
-
columnNumber: 7
|
|
92
|
-
}, this),
|
|
93
|
-
/*#__PURE__*/ _jsxDEV(RenderFields, {
|
|
94
|
-
fields: collectionConfig.fields,
|
|
95
|
-
forceRender: true,
|
|
96
|
-
parentIndexPath: "",
|
|
97
|
-
parentPath: "",
|
|
98
|
-
parentSchemaPath: userSlug,
|
|
99
|
-
permissions: true,
|
|
100
|
-
readOnly: false
|
|
101
|
-
}, void 0, false, {
|
|
102
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
103
|
-
lineNumber: 119,
|
|
104
|
-
columnNumber: 7
|
|
105
|
-
}, this),
|
|
106
|
-
/*#__PURE__*/ _jsxDEV(FormSubmit, {
|
|
107
|
-
size: "large",
|
|
108
|
-
children: t('general:create')
|
|
109
|
-
}, void 0, false, {
|
|
110
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
111
|
-
lineNumber: 128,
|
|
112
|
-
columnNumber: 7
|
|
113
|
-
}, this)
|
|
114
|
-
]
|
|
115
|
-
}, void 0, true, {
|
|
116
|
-
fileName: "src/views/CreateFirstUser/index.client.tsx",
|
|
117
|
-
lineNumber: 86,
|
|
118
|
-
columnNumber: 5
|
|
119
|
-
}, this);
|
|
45
|
+
return <Form action={`${serverURL}${apiRoute}/${userSlug}/first-register`} initialState={{
|
|
46
|
+
...initialState,
|
|
47
|
+
'confirm-password': {
|
|
48
|
+
...initialState['confirm-password'],
|
|
49
|
+
valid: initialState['confirm-password']['valid'] || false,
|
|
50
|
+
value: initialState['confirm-password']['value'] || ''
|
|
51
|
+
}
|
|
52
|
+
}} method="POST" onChange={[
|
|
53
|
+
onChange
|
|
54
|
+
]} onSuccess={handleFirstRegister} redirect={admin} validationOperation="create">
|
|
55
|
+
<EmailAndUsernameFields className="emailAndUsername" loginWithUsername={loginWithUsername} operation="create" readOnly={false} t={t}/>
|
|
56
|
+
<PasswordField autoComplete="off" field={{
|
|
57
|
+
name: 'password',
|
|
58
|
+
label: t('authentication:newPassword'),
|
|
59
|
+
required: true
|
|
60
|
+
}} path="password"/>
|
|
61
|
+
<ConfirmPasswordField/>
|
|
62
|
+
<RenderFields fields={collectionConfig.fields} forceRender parentIndexPath="" parentPath="" parentSchemaPath={userSlug} permissions={true} readOnly={false}/>
|
|
63
|
+
<FormSubmit size="large">{t('general:create')}</FormSubmit>
|
|
64
|
+
</Form>;
|
|
120
65
|
};
|
|
121
66
|
|
|
122
67
|
//# sourceMappingURL=index.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={{\n ...initialState,\n 'confirm-password': {\n ...initialState['confirm-password'],\n valid: initialState['confirm-password']['valid'] || false,\n value: initialState['confirm-password']['value'] || '',\n },\n }}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","abortOnChangeRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","submitted","controller","response","operation","schemaPath","signal","skipValidation","current","state","handleFirstRegister","data","abortOnChange","action","valid","value","method","onSuccess","redirect","validationOperation","className","readOnly","autoComplete","field","name","label","required","path","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/views/CreateFirstUser/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps, UserWithToken } from '@payloadcms/ui'\nimport type {\n DocumentPreferences,\n FormState,\n LoginWithUsernameOptions,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport {\n ConfirmPasswordField,\n EmailAndUsernameFields,\n Form,\n FormSubmit,\n PasswordField,\n RenderFields,\n useAuth,\n useConfig,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport { abortAndIgnore, handleAbortRef } from '@payloadcms/ui/shared'\nimport React, { useEffect } from 'react'\n\nexport const CreateFirstUserClient: React.FC<{\n docPermissions: SanitizedDocumentPermissions\n docPreferences: DocumentPreferences\n initialState: FormState\n loginWithUsername?: false | LoginWithUsernameOptions\n userSlug: string\n}> = ({ docPermissions, docPreferences, initialState, loginWithUsername, userSlug }) => {\n const {\n config: {\n routes: { admin, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { t } = useTranslation()\n const { setUser } = useAuth()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: userSlug })\n\n const onChange: FormProps['onChange'][0] = React.useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const response = await getFormState({\n collectionSlug: userSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath: userSlug,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n if (response && response.state) {\n return response.state\n }\n },\n [userSlug, getFormState, docPermissions, docPreferences],\n )\n\n const handleFirstRegister = (data: UserWithToken) => {\n setUser(data)\n }\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/first-register`}\n initialState={{\n ...initialState,\n 'confirm-password': {\n ...initialState['confirm-password'],\n valid: initialState['confirm-password']['valid'] || false,\n value: initialState['confirm-password']['value'] || '',\n },\n }}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={handleFirstRegister}\n redirect={admin}\n validationOperation=\"create\"\n >\n <EmailAndUsernameFields\n className=\"emailAndUsername\"\n loginWithUsername={loginWithUsername}\n operation=\"create\"\n readOnly={false}\n t={t}\n />\n <PasswordField\n autoComplete=\"off\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n path=\"password\"\n />\n <ConfirmPasswordField />\n <RenderFields\n fields={collectionConfig.fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={userSlug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit size=\"large\">{t('general:create')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["ConfirmPasswordField","EmailAndUsernameFields","Form","FormSubmit","PasswordField","RenderFields","useAuth","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","React","useEffect","CreateFirstUserClient","docPermissions","docPreferences","initialState","loginWithUsername","userSlug","config","routes","admin","api","apiRoute","serverURL","getEntityConfig","getFormState","t","setUser","abortOnChangeRef","useRef","collectionConfig","collectionSlug","onChange","useCallback","formState","prevFormState","submitted","controller","response","operation","schemaPath","signal","skipValidation","current","state","handleFirstRegister","data","abortOnChange","action","valid","value","method","onSuccess","redirect","validationOperation","className","readOnly","autoComplete","field","name","label","required","path","fields","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","size"],"mappings":"AAAA;AASA,SACEA,oBAAoB,EACpBC,sBAAsB,EACtBC,IAAI,EACJC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,OAAO,EACPC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,QACT,iBAAgB;AACvB,SAASC,cAAc,EAAEC,cAAc,QAAQ,wBAAuB;AACtE,OAAOC,SAASC,SAAS,QAAQ,QAAO;AAExC,OAAO,MAAMC,wBAMR,CAAC,EAAEC,cAAc,EAAEC,cAAc,EAAEC,YAAY,EAAEC,iBAAiB,EAAEC,QAAQ,EAAE;IACjF,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,KAAK,EAAEC,KAAKC,QAAQ,EAAE,EAChCC,SAAS,EACV,EACDC,eAAe,EAChB,GAAGnB;IAEJ,MAAM,EAAEoB,YAAY,EAAE,GAAGnB;IAEzB,MAAM,EAAEoB,CAAC,EAAE,GAAGnB;IACd,MAAM,EAAEoB,OAAO,EAAE,GAAGvB;IAEpB,MAAMwB,mBAAmBlB,MAAMmB,MAAM,CAAkB;IAEvD,MAAMC,mBAAmBN,gBAAgB;QAAEO,gBAAgBd;IAAS;IAEpE,MAAMe,WAAqCtB,MAAMuB,WAAW,CAC1D,OAAO,EAAEC,WAAWC,aAAa,EAAEC,SAAS,EAAE;QAC5C,MAAMC,aAAa5B,eAAemB;QAElC,MAAMU,WAAW,MAAMb,aAAa;YAClCM,gBAAgBd;YAChBJ;YACAC;YACAoB,WAAWC;YACXI,WAAW;YACXC,YAAYvB;YACZwB,QAAQJ,WAAWI,MAAM;YACzBC,gBAAgB,CAACN;QACnB;QAEAR,iBAAiBe,OAAO,GAAG;QAE3B,IAAIL,YAAYA,SAASM,KAAK,EAAE;YAC9B,OAAON,SAASM,KAAK;QACvB;IACF,GACA;QAAC3B;QAAUQ;QAAcZ;QAAgBC;KAAe;IAG1D,MAAM+B,sBAAsB,CAACC;QAC3BnB,QAAQmB;IACV;IAEAnC,UAAU;QACR,MAAMoC,gBAAgBnB,iBAAiBe,OAAO;QAE9C,OAAO;YACLnC,eAAeuC;QACjB;IACF,GAAG,EAAE;IAEL,QACG/C,KACCgD,QAAQ,GAAGzB,YAAYD,SAAS,CAAC,EAAEL,SAAS,eAAe,CAAC,EAC5DF,cAAc;QACZ,GAAGA,YAAY;QACf,oBAAoB;YAClB,GAAGA,YAAY,CAAC,mBAAmB;YACnCkC,OAAOlC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,IAAI;YACpDmC,OAAOnC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,IAAI;QACtD;IACF,GACAoC,OAAO,OACPnB,UAAU;QAACA;KAAS,EACpBoB,WAAWP,qBACXQ,UAAUjC,OACVkC,oBAAoB,SACrB;MACC,CAACvD,uBACCwD,UAAU,mBACVvC,mBAAmBA,mBACnBuB,UAAU,SACViB,UAAU,OACV9B,GAAGA,IACH;MACF,CAACxB,cACCuD,aAAa,MACbC,OAAO;QACLC,MAAM;QACNC,OAAOlC,EAAE;QACTmC,UAAU;IACZ,GACAC,KAAK,YACL;MACF,CAAChE,sBAAuB;MACxB,CAACK,aACC4D,QAAQjC,iBAAiBiC,MAAM,EAC/BC,YACAC,gBAAgB,GAChBC,WAAW,GACXC,kBAAkBlD,UAClBmD,aAAa,MACbZ,UAAU,QACV;MACF,CAACvD,WAAWoE,KAAK,SAAS3C,EAAE,oBAAoBzB,WAAW;IAC7D,EAAED;AAEN,EAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
1
|
import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
|
|
3
|
-
import React from 'react';
|
|
4
2
|
import { getDocPreferences } from '../Document/getDocPreferences.js';
|
|
5
3
|
import { getDocumentData } from '../Document/getDocumentData.js';
|
|
6
4
|
import { CreateFirstUserClient } from './index.client.js';
|
|
@@ -55,40 +53,11 @@ export async function CreateFirstUserView({ initPageResult }) {
|
|
|
55
53
|
skipClientConfigAuth: true,
|
|
56
54
|
skipValidation: true
|
|
57
55
|
});
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}, void 0, false, {
|
|
64
|
-
fileName: "src/views/CreateFirstUser/index.tsx",
|
|
65
|
-
lineNumber: 82,
|
|
66
|
-
columnNumber: 7
|
|
67
|
-
}, this),
|
|
68
|
-
/*#__PURE__*/ _jsxDEV("p", {
|
|
69
|
-
children: req.t('authentication:beginCreateFirstUser')
|
|
70
|
-
}, void 0, false, {
|
|
71
|
-
fileName: "src/views/CreateFirstUser/index.tsx",
|
|
72
|
-
lineNumber: 83,
|
|
73
|
-
columnNumber: 7
|
|
74
|
-
}, this),
|
|
75
|
-
/*#__PURE__*/ _jsxDEV(CreateFirstUserClient, {
|
|
76
|
-
docPermissions: docPermissionsForForm,
|
|
77
|
-
docPreferences: docPreferences,
|
|
78
|
-
initialState: formState,
|
|
79
|
-
loginWithUsername: loginWithUsername,
|
|
80
|
-
userSlug: userSlug
|
|
81
|
-
}, void 0, false, {
|
|
82
|
-
fileName: "src/views/CreateFirstUser/index.tsx",
|
|
83
|
-
lineNumber: 84,
|
|
84
|
-
columnNumber: 7
|
|
85
|
-
}, this)
|
|
86
|
-
]
|
|
87
|
-
}, void 0, true, {
|
|
88
|
-
fileName: "src/views/CreateFirstUser/index.tsx",
|
|
89
|
-
lineNumber: 81,
|
|
90
|
-
columnNumber: 5
|
|
91
|
-
}, this);
|
|
56
|
+
return <div className="create-first-user">
|
|
57
|
+
<h1>{req.t('general:welcome')}</h1>
|
|
58
|
+
<p>{req.t('authentication:beginCreateFirstUser')}</p>
|
|
59
|
+
<CreateFirstUserClient docPermissions={docPermissionsForForm} docPreferences={docPreferences} initialState={formState} loginWithUsername={loginWithUsername} userSlug={userSlug}/>
|
|
60
|
+
</div>;
|
|
92
61
|
}
|
|
93
62
|
|
|
94
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n SanitizedDocumentPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport React from 'react'\n\nimport { getDocPreferences } from '../Document/getDocPreferences.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { CreateFirstUserClient } from './index.client.js'\nimport './index.scss'\n\nexport async function CreateFirstUserView({ initPageResult }: AdminViewServerProps) {\n const {\n locale,\n req,\n req: {\n payload: {\n collections,\n config: {\n admin: { user: userSlug },\n },\n },\n },\n } = initPageResult\n\n const collectionConfig = collections?.[userSlug]?.config\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n\n // Fetch the data required for the view\n const data = await getDocumentData({\n collectionSlug: collectionConfig.slug,\n locale,\n payload: req.payload,\n req,\n user: req.user,\n })\n\n // Get document preferences\n const docPreferences = await getDocPreferences({\n collectionSlug: collectionConfig.slug,\n payload: req.payload,\n user: req.user,\n })\n\n const baseFields: SanitizedFieldsPermissions = Object.fromEntries(\n collectionConfig.fields\n .filter((f): f is { name: string } & typeof f => 'name' in f && typeof f.name === 'string')\n .map((f) => [f.name, { create: true, read: true, update: true }]),\n )\n\n // In create-first-user we should always allow all fields\n const docPermissionsForForm: SanitizedDocumentPermissions = {\n create: true,\n delete: true,\n fields: baseFields,\n read: true,\n readVersions: true,\n update: true,\n }\n\n // Build initial form state from data\n const { state: formState } = await buildFormState({\n collectionSlug: collectionConfig.slug,\n data,\n docPermissions: docPermissionsForForm,\n docPreferences,\n locale: locale?.code,\n operation: 'create',\n renderAllFields: true,\n req,\n schemaPath: collectionConfig.slug,\n skipClientConfigAuth: true,\n skipValidation: true,\n })\n\n return (\n <div className=\"create-first-user\">\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <CreateFirstUserClient\n docPermissions={docPermissionsForForm}\n docPreferences={docPreferences}\n initialState={formState}\n loginWithUsername={loginWithUsername}\n userSlug={userSlug}\n />\n </div>\n )\n}\n"],"names":["buildFormState","
|
|
1
|
+
{"version":3,"sources":["../../../src/views/CreateFirstUser/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n SanitizedDocumentPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport React from 'react'\n\nimport { getDocPreferences } from '../Document/getDocPreferences.js'\nimport { getDocumentData } from '../Document/getDocumentData.js'\nimport { CreateFirstUserClient } from './index.client.js'\nimport './index.scss'\n\nexport async function CreateFirstUserView({ initPageResult }: AdminViewServerProps) {\n const {\n locale,\n req,\n req: {\n payload: {\n collections,\n config: {\n admin: { user: userSlug },\n },\n },\n },\n } = initPageResult\n\n const collectionConfig = collections?.[userSlug]?.config\n const { auth: authOptions } = collectionConfig\n const loginWithUsername = authOptions.loginWithUsername\n\n // Fetch the data required for the view\n const data = await getDocumentData({\n collectionSlug: collectionConfig.slug,\n locale,\n payload: req.payload,\n req,\n user: req.user,\n })\n\n // Get document preferences\n const docPreferences = await getDocPreferences({\n collectionSlug: collectionConfig.slug,\n payload: req.payload,\n user: req.user,\n })\n\n const baseFields: SanitizedFieldsPermissions = Object.fromEntries(\n collectionConfig.fields\n .filter((f): f is { name: string } & typeof f => 'name' in f && typeof f.name === 'string')\n .map((f) => [f.name, { create: true, read: true, update: true }]),\n )\n\n // In create-first-user we should always allow all fields\n const docPermissionsForForm: SanitizedDocumentPermissions = {\n create: true,\n delete: true,\n fields: baseFields,\n read: true,\n readVersions: true,\n update: true,\n }\n\n // Build initial form state from data\n const { state: formState } = await buildFormState({\n collectionSlug: collectionConfig.slug,\n data,\n docPermissions: docPermissionsForForm,\n docPreferences,\n locale: locale?.code,\n operation: 'create',\n renderAllFields: true,\n req,\n schemaPath: collectionConfig.slug,\n skipClientConfigAuth: true,\n skipValidation: true,\n })\n\n return (\n <div className=\"create-first-user\">\n <h1>{req.t('general:welcome')}</h1>\n <p>{req.t('authentication:beginCreateFirstUser')}</p>\n <CreateFirstUserClient\n docPermissions={docPermissionsForForm}\n docPreferences={docPreferences}\n initialState={formState}\n loginWithUsername={loginWithUsername}\n userSlug={userSlug}\n />\n </div>\n )\n}\n"],"names":["buildFormState","getDocPreferences","getDocumentData","CreateFirstUserClient","CreateFirstUserView","initPageResult","locale","req","payload","collections","config","admin","user","userSlug","collectionConfig","auth","authOptions","loginWithUsername","data","collectionSlug","slug","docPreferences","baseFields","Object","fromEntries","fields","filter","f","name","map","create","read","update","docPermissionsForForm","delete","readVersions","state","formState","docPermissions","code","operation","renderAllFields","schemaPath","skipClientConfigAuth","skipValidation","div","className","h1","t","p","initialState"],"mappings":"AAMA,SAASA,cAAc,QAAQ,0CAAyC;AAGxE,SAASC,iBAAiB,QAAQ,mCAAkC;AACpE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,qBAAqB,QAAQ,oBAAmB;AACzD,OAAO,eAAc;AAErB,OAAO,eAAeC,oBAAoB,EAAEC,cAAc,EAAwB;IAChF,MAAM,EACJC,MAAM,EACNC,GAAG,EACHA,KAAK,EACHC,SAAS,EACPC,WAAW,EACXC,QAAQ,EACNC,OAAO,EAAEC,MAAMC,QAAQ,EAAE,EAC1B,EACF,EACF,EACF,GAAGR;IAEJ,MAAMS,mBAAmBL,aAAa,CAACI,SAAS,EAAEH;IAClD,MAAM,EAAEK,MAAMC,WAAW,EAAE,GAAGF;IAC9B,MAAMG,oBAAoBD,YAAYC,iBAAiB;IAEvD,uCAAuC;IACvC,MAAMC,OAAO,MAAMhB,gBAAgB;QACjCiB,gBAAgBL,iBAAiBM,IAAI;QACrCd;QACAE,SAASD,IAAIC,OAAO;QACpBD;QACAK,MAAML,IAAIK,IAAI;IAChB;IAEA,2BAA2B;IAC3B,MAAMS,iBAAiB,MAAMpB,kBAAkB;QAC7CkB,gBAAgBL,iBAAiBM,IAAI;QACrCZ,SAASD,IAAIC,OAAO;QACpBI,MAAML,IAAIK,IAAI;IAChB;IAEA,MAAMU,aAAyCC,OAAOC,WAAW,CAC/DV,iBAAiBW,MAAM,CACpBC,MAAM,CAAC,CAACC,IAAwC,UAAUA,KAAK,OAAOA,EAAEC,IAAI,KAAK,UACjFC,GAAG,CAAC,CAACF,IAAM;YAACA,EAAEC,IAAI;YAAE;gBAAEE,QAAQ;gBAAMC,MAAM;gBAAMC,QAAQ;YAAK;SAAE;IAGpE,yDAAyD;IACzD,MAAMC,wBAAsD;QAC1DH,QAAQ;QACRI,QAAQ;QACRT,QAAQH;QACRS,MAAM;QACNI,cAAc;QACdH,QAAQ;IACV;IAEA,qCAAqC;IACrC,MAAM,EAAEI,OAAOC,SAAS,EAAE,GAAG,MAAMrC,eAAe;QAChDmB,gBAAgBL,iBAAiBM,IAAI;QACrCF;QACAoB,gBAAgBL;QAChBZ;QACAf,QAAQA,QAAQiC;QAChBC,WAAW;QACXC,iBAAiB;QACjBlC;QACAmC,YAAY5B,iBAAiBM,IAAI;QACjCuB,sBAAsB;QACtBC,gBAAgB;IAClB;IAEA,QACGC,IAAIC,UAAU,oBAAoB;MACjC,CAACC,IAAIxC,IAAIyC,CAAC,CAAC,qBAAqBD,GAAG;MACnC,CAACE,GAAG1C,IAAIyC,CAAC,CAAC,yCAAyCC,EAAE;MACrD,CAAC9C,sBACCmC,gBAAgBL,uBAChBZ,gBAAgBA,gBAChB6B,cAAcb,WACdpB,mBAAmBA,mBACnBJ,UAAUA,WACV;IACJ,EAAEgC;AAEN"}
|