@payloadcms/next 3.80.0-internal.60d6f94 → 3.80.0-internal.8d9ec7c

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.
Files changed (105) hide show
  1. package/dist/elements/HierarchyTypeField/index.d.ts +9 -0
  2. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -0
  3. package/dist/elements/HierarchyTypeField/index.js +114 -0
  4. package/dist/elements/HierarchyTypeField/index.js.map +1 -0
  5. package/dist/elements/HierarchyTypeField/index.server.d.ts +9 -0
  6. package/dist/elements/HierarchyTypeField/index.server.d.ts.map +1 -0
  7. package/dist/elements/HierarchyTypeField/index.server.js +32 -0
  8. package/dist/elements/HierarchyTypeField/index.server.js.map +1 -0
  9. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts +8 -0
  10. package/dist/elements/Nav/SidebarTabs/TabError/index.d.ts.map +1 -0
  11. package/dist/elements/Nav/SidebarTabs/TabError/index.js +42 -0
  12. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -0
  13. package/dist/elements/Nav/SidebarTabs/constants.d.ts +2 -0
  14. package/dist/elements/Nav/SidebarTabs/constants.d.ts.map +1 -0
  15. package/dist/elements/Nav/SidebarTabs/constants.js +2 -0
  16. package/dist/elements/Nav/SidebarTabs/constants.js.map +1 -0
  17. package/dist/elements/Nav/SidebarTabs/index.client.d.ts +20 -0
  18. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -0
  19. package/dist/elements/Nav/SidebarTabs/index.client.js +168 -0
  20. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -0
  21. package/dist/elements/Nav/SidebarTabs/index.d.ts +17 -0
  22. package/dist/elements/Nav/SidebarTabs/index.d.ts.map +1 -0
  23. package/dist/elements/Nav/SidebarTabs/index.js +82 -0
  24. package/dist/elements/Nav/SidebarTabs/index.js.map +1 -0
  25. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +10 -0
  26. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -0
  27. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +53 -0
  28. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -0
  29. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  30. package/dist/elements/Nav/getNavPrefs.js +36 -2
  31. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  32. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  33. package/dist/elements/Nav/index.client.js +27 -44
  34. package/dist/elements/Nav/index.client.js.map +1 -1
  35. package/dist/elements/Nav/index.d.ts.map +1 -1
  36. package/dist/elements/Nav/index.js +35 -7
  37. package/dist/elements/Nav/index.js.map +1 -1
  38. package/dist/exports/client.d.ts +2 -1
  39. package/dist/exports/client.d.ts.map +1 -1
  40. package/dist/exports/client.js +2 -1
  41. package/dist/exports/client.js.map +1 -1
  42. package/dist/exports/rsc.d.ts +2 -1
  43. package/dist/exports/rsc.d.ts.map +1 -1
  44. package/dist/exports/rsc.js +2 -1
  45. package/dist/exports/rsc.js.map +1 -1
  46. package/dist/exports/utilities.d.ts +2 -0
  47. package/dist/exports/utilities.d.ts.map +1 -1
  48. package/dist/exports/utilities.js +1 -0
  49. package/dist/exports/utilities.js.map +1 -1
  50. package/dist/prod/styles.css +1 -1
  51. package/dist/utilities/getHierarchyAncestry.d.ts +24 -0
  52. package/dist/utilities/getHierarchyAncestry.d.ts.map +1 -0
  53. package/dist/utilities/getHierarchyAncestry.js +103 -0
  54. package/dist/utilities/getHierarchyAncestry.js.map +1 -0
  55. package/dist/utilities/handleServerFunctions.js +2 -2
  56. package/dist/utilities/handleServerFunctions.js.map +1 -1
  57. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  58. package/dist/views/Document/renderDocumentSlots.js +8 -0
  59. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  60. package/dist/views/List/handleHierarchy.d.ts +18 -0
  61. package/dist/views/List/handleHierarchy.d.ts.map +1 -0
  62. package/dist/views/List/handleHierarchy.js +258 -0
  63. package/dist/views/List/handleHierarchy.js.map +1 -0
  64. package/dist/views/List/index.d.ts.map +1 -1
  65. package/dist/views/List/index.js +84 -28
  66. package/dist/views/List/index.js.map +1 -1
  67. package/dist/views/Root/getRouteData.d.ts +1 -4
  68. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  69. package/dist/views/Root/getRouteData.js +27 -91
  70. package/dist/views/Root/getRouteData.js.map +1 -1
  71. package/dist/views/Root/index.d.ts.map +1 -1
  72. package/dist/views/Root/index.js +5 -11
  73. package/dist/views/Root/index.js.map +1 -1
  74. package/dist/views/Root/metadata.d.ts.map +1 -1
  75. package/dist/views/Root/metadata.js +1 -37
  76. package/dist/views/Root/metadata.js.map +1 -1
  77. package/package.json +6 -6
  78. package/dist/views/BrowseByFolder/buildView.d.ts +0 -13
  79. package/dist/views/BrowseByFolder/buildView.d.ts.map +0 -1
  80. package/dist/views/BrowseByFolder/buildView.js +0 -170
  81. package/dist/views/BrowseByFolder/buildView.js.map +0 -1
  82. package/dist/views/BrowseByFolder/index.d.ts +0 -4
  83. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  84. package/dist/views/BrowseByFolder/index.js +0 -20
  85. package/dist/views/BrowseByFolder/index.js.map +0 -1
  86. package/dist/views/BrowseByFolder/metadata.d.ts +0 -4
  87. package/dist/views/BrowseByFolder/metadata.d.ts.map +0 -1
  88. package/dist/views/BrowseByFolder/metadata.js +0 -18
  89. package/dist/views/BrowseByFolder/metadata.js.map +0 -1
  90. package/dist/views/CollectionFolders/buildView.d.ts +0 -15
  91. package/dist/views/CollectionFolders/buildView.d.ts.map +0 -1
  92. package/dist/views/CollectionFolders/buildView.js +0 -156
  93. package/dist/views/CollectionFolders/buildView.js.map +0 -1
  94. package/dist/views/CollectionFolders/index.d.ts +0 -4
  95. package/dist/views/CollectionFolders/index.d.ts.map +0 -1
  96. package/dist/views/CollectionFolders/index.js +0 -20
  97. package/dist/views/CollectionFolders/index.js.map +0 -1
  98. package/dist/views/CollectionFolders/metadata.d.ts +0 -7
  99. package/dist/views/CollectionFolders/metadata.d.ts.map +0 -1
  100. package/dist/views/CollectionFolders/metadata.js +0 -25
  101. package/dist/views/CollectionFolders/metadata.js.map +0 -1
  102. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts +0 -11
  103. package/dist/views/CollectionFolders/renderFolderViewSlots.d.ts.map +0 -1
  104. package/dist/views/CollectionFolders/renderFolderViewSlots.js +0 -64
  105. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui';
2
+ import { DefaultListView, HierarchyListView, HydrateAuthProvider, HydrateHierarchyProvider, ListQueryProvider } from '@payloadcms/ui';
3
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
4
  import { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc';
5
5
  import { notFound } from 'next/navigation.js';
@@ -8,6 +8,7 @@ import React, { Fragment } from 'react';
8
8
  import { getDocumentPermissions } from '../Document/getDocumentPermissions.js';
9
9
  import { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js';
10
10
  import { handleGroupBy } from './handleGroupBy.js';
11
+ import { handleHierarchy } from './handleHierarchy.js';
11
12
  import { renderListViewSlots } from './renderListViewSlots.js';
12
13
  import { resolveAllFilterOptions } from './resolveAllFilterOptions.js';
13
14
  import { transformColumnsToSelect } from './transformColumnsToSelect.js';
@@ -161,6 +162,18 @@ export const renderListView = async args => {
161
162
  collectionConfig,
162
163
  select
163
164
  });
165
+ // Check for hierarchy parent param
166
+ const isHierarchyCollection = Boolean(collectionConfig.hierarchy);
167
+ let hierarchyParentId = null;
168
+ if (isHierarchyCollection) {
169
+ if (searchParams?.parent === 'null' || searchParams?.parent === undefined) {
170
+ hierarchyParentId = null;
171
+ } else if (typeof searchParams?.parent === 'string') {
172
+ hierarchyParentId = payload.db.defaultIDType === 'number' && isNumber(searchParams.parent) ? Number(searchParams.parent) : searchParams.parent;
173
+ }
174
+ }
175
+ // Hierarchy data for client-side rendering
176
+ let hierarchyData;
164
177
  try {
165
178
  if (collectionConfig.admin.groupBy && query.groupBy) {
166
179
  ({
@@ -246,6 +259,32 @@ export const renderListView = async args => {
246
259
  throw err;
247
260
  }
248
261
  }
262
+ // Fetch hierarchy data for hierarchy collections
263
+ let HierarchyIcon;
264
+ if (isHierarchyCollection) {
265
+ // Extract typeFilter from searchParams (comma-separated list of collection slugs)
266
+ const typeFilterParam = searchParams?.typeFilter;
267
+ const typeFilter = typeof typeFilterParam === 'string' && typeFilterParam.length > 0 ? typeFilterParam.split(',') : undefined;
268
+ hierarchyData = await handleHierarchy({
269
+ baseFilter: baseFilterConstraint,
270
+ collectionConfig,
271
+ collectionSlug,
272
+ parentId: hierarchyParentId,
273
+ permissions,
274
+ req,
275
+ search: typeof query?.search === 'string' ? query.search : undefined,
276
+ typeFilter,
277
+ user
278
+ });
279
+ data = hierarchyData.childrenData;
280
+ // Resolve hierarchy icon from collection config
281
+ const hierarchyConfig = typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
282
+ HierarchyIcon = RenderServerComponent({
283
+ Component: hierarchyConfig?.admin?.components?.Icon,
284
+ importMap: payload.importMap,
285
+ key: `hierarchy-icon-${collectionSlug}`
286
+ });
287
+ }
249
288
  const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap);
250
289
  const resolvedFilterOptions = await resolveAllFilterOptions({
251
290
  fields: collectionConfig.fields,
@@ -302,42 +341,59 @@ export const renderListView = async args => {
302
341
  // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.
303
342
  // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.
304
343
  query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined;
344
+ const RenderedListViewComponent = RenderServerComponent({
345
+ clientProps: {
346
+ ...listViewSlots,
347
+ baseFilter: baseFilterConstraint,
348
+ collectionSlug,
349
+ columnState,
350
+ disableBulkDelete,
351
+ disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
352
+ disableQueryPresets,
353
+ enableRowSelections,
354
+ hasCreatePermission,
355
+ hasDeletePermission,
356
+ hasTrashPermission,
357
+ hierarchyData,
358
+ HierarchyIcon,
359
+ listPreferences: collectionPreferences,
360
+ newDocumentURL,
361
+ queryPreset,
362
+ queryPresetPermissions,
363
+ renderedFilters,
364
+ resolvedFilterOptions,
365
+ Table,
366
+ viewType
367
+ },
368
+ Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,
369
+ Fallback: isHierarchyCollection ? HierarchyListView : DefaultListView,
370
+ importMap: payload.importMap,
371
+ serverProps
372
+ });
305
373
  return {
306
374
  List: /*#__PURE__*/_jsxs(Fragment, {
307
375
  children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
308
376
  permissions: permissions
309
- }), /*#__PURE__*/_jsx(ListQueryProvider, {
377
+ }), isHierarchyCollection ? /*#__PURE__*/_jsxs(Fragment, {
378
+ children: [/*#__PURE__*/_jsx(HydrateHierarchyProvider, {
379
+ allowedCollections: hierarchyData?.allowedCollections,
380
+ baseFilter: baseFilterConstraint,
381
+ collectionSlug: collectionSlug,
382
+ expandedNodes: hierarchyData?.breadcrumbs?.slice(0, -1).map(b => b.id),
383
+ parent: hierarchyData?.parent,
384
+ parentFieldName: typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy?.parentFieldName : undefined,
385
+ tableData: data,
386
+ treeLimit: typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy?.admin?.treeLimit : undefined,
387
+ typeFieldName: typeof collectionConfig.hierarchy === 'object' && collectionConfig.hierarchy?.collectionSpecific && typeof collectionConfig.hierarchy.collectionSpecific === 'object' ? collectionConfig.hierarchy.collectionSpecific.fieldName : undefined,
388
+ viewCollectionSlug: collectionSlug
389
+ }), RenderedListViewComponent]
390
+ }) : /*#__PURE__*/_jsx(ListQueryProvider, {
310
391
  collectionSlug: collectionSlug,
311
392
  data: data,
312
393
  modifySearchParams: !isInDrawer,
313
394
  orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
314
395
  query: query,
315
- children: RenderServerComponent({
316
- clientProps: {
317
- ...listViewSlots,
318
- collectionSlug,
319
- columnState,
320
- disableBulkDelete,
321
- disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
322
- disableQueryPresets,
323
- enableRowSelections,
324
- hasCreatePermission,
325
- hasDeletePermission,
326
- hasTrashPermission,
327
- listPreferences: collectionPreferences,
328
- newDocumentURL,
329
- queryPreset,
330
- queryPresetPermissions,
331
- renderedFilters,
332
- resolvedFilterOptions,
333
- Table,
334
- viewType
335
- },
336
- Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,
337
- Fallback: DefaultListView,
338
- importMap: payload.importMap,
339
- serverProps
340
- })
396
+ children: RenderedListViewComponent
341
397
  })]
342
398
  })
343
399
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","routes","admin","adminRoute","collections","read","includes","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","data","docPermissions","err","logger","error","where","columnPreference","page","pagination","defaultLimit","defaultSort","baseFilterConstraint","baseFilter","baseListFilter","whereWithMergedSearch","search","and","deletedAt","exists","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","find","c","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","hasTrashPermission","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n !collectionConfig ||\n !permissions?.collections?.[collectionSlug]?.read ||\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility)\n ) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = (\n await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: req.payload.collections['payload-query-presets'].config,\n data: queryPreset,\n req,\n })\n )?.docPermissions\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n query.preset = queryPreset?.id\n if (queryPreset?.where && !query.where) {\n query.where = queryPreset.where\n }\n query.groupBy = query.groupBy ?? queryPreset?.groupBy ?? collectionPreferences?.groupBy\n\n const columnPreference = query.columns\n ? transformColumnsToPreferences(query.columns)\n : (queryPreset?.columns ?? collectionPreferences?.columns)\n query.columns = transformColumnsToSearchParams(columnPreference)\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: columnPreference,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const { hasDeletePermission, hasTrashPermission } = await getDocumentPermissions({\n collectionConfig,\n // Empty object serves as base for computing differentiated trash/delete permissions\n data: {},\n req,\n })\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n // Pass through Next.js errors\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["DefaultListView","HierarchyListView","HydrateAuthProvider","HydrateHierarchyProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","handleHierarchy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","routes","admin","adminRoute","collections","read","includes","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","data","docPermissions","err","logger","error","where","columnPreference","page","pagination","defaultLimit","defaultSort","baseFilterConstraint","baseFilter","baseListFilter","whereWithMergedSearch","search","and","deletedAt","exists","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","find","c","select","enableListViewSelectAPI","isHierarchyCollection","Boolean","hierarchy","hierarchyParentId","parent","db","defaultIDType","hierarchyData","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","HierarchyIcon","typeFilterParam","typeFilter","length","split","parentId","childrenData","hierarchyConfig","Component","components","Icon","importMap","renderedFilters","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","hasTrashPermission","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","stringify","RenderedListViewComponent","views","list","Fallback","List","_jsxs","_jsx","allowedCollections","expandedNodes","breadcrumbs","slice","map","b","parentFieldName","tableData","treeLimit","typeFieldName","collectionSpecific","fieldName","viewCollectionSlug","modifySearchParams","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n HierarchyViewData,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport {\n DefaultListView,\n HierarchyListView,\n HydrateAuthProvider,\n HydrateHierarchyProvider,\n ListQueryProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { handleHierarchy } from './handleHierarchy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (\n !collectionConfig ||\n !permissions?.collections?.[collectionSlug]?.read ||\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility)\n ) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = (\n await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: req.payload.collections['payload-query-presets'].config,\n data: queryPreset,\n req,\n })\n )?.docPermissions\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n query.preset = queryPreset?.id\n if (queryPreset?.where && !query.where) {\n query.where = queryPreset.where\n }\n query.groupBy = query.groupBy ?? queryPreset?.groupBy ?? collectionPreferences?.groupBy\n\n const columnPreference = query.columns\n ? transformColumnsToPreferences(query.columns)\n : (queryPreset?.columns ?? collectionPreferences?.columns)\n query.columns = transformColumnsToSearchParams(columnPreference)\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: columnPreference,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n // Check for hierarchy parent param\n const isHierarchyCollection = Boolean(collectionConfig.hierarchy)\n let hierarchyParentId: null | number | string = null\n\n if (isHierarchyCollection) {\n if (searchParams?.parent === 'null' || searchParams?.parent === undefined) {\n hierarchyParentId = null\n } else if (typeof searchParams?.parent === 'string') {\n hierarchyParentId =\n payload.db.defaultIDType === 'number' && isNumber(searchParams.parent)\n ? Number(searchParams.parent)\n : searchParams.parent\n }\n }\n\n // Hierarchy data for client-side rendering\n let hierarchyData: HierarchyViewData | undefined\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n // Fetch hierarchy data for hierarchy collections\n let HierarchyIcon: React.ReactNode | undefined\n\n if (isHierarchyCollection) {\n // Extract typeFilter from searchParams (comma-separated list of collection slugs)\n const typeFilterParam = searchParams?.typeFilter\n const typeFilter =\n typeof typeFilterParam === 'string' && typeFilterParam.length > 0\n ? typeFilterParam.split(',')\n : undefined\n\n hierarchyData = await handleHierarchy({\n baseFilter: baseFilterConstraint,\n collectionConfig,\n collectionSlug,\n parentId: hierarchyParentId,\n permissions,\n req,\n search: typeof query?.search === 'string' ? query.search : undefined,\n typeFilter,\n user,\n })\n\n data = hierarchyData.childrenData\n\n // Resolve hierarchy icon from collection config\n const hierarchyConfig =\n typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined\n\n HierarchyIcon = RenderServerComponent({\n Component: hierarchyConfig?.admin?.components?.Icon,\n importMap: payload.importMap,\n key: `hierarchy-icon-${collectionSlug}`,\n })\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n\n const { hasDeletePermission, hasTrashPermission } = await getDocumentPermissions({\n collectionConfig,\n // Empty object serves as base for computing differentiated trash/delete permissions\n data: {},\n req,\n })\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n const RenderedListViewComponent = RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n baseFilter: baseFilterConstraint,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n hasTrashPermission,\n hierarchyData,\n HierarchyIcon,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: isHierarchyCollection ? HierarchyListView : DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n {isHierarchyCollection ? (\n <Fragment>\n <HydrateHierarchyProvider\n allowedCollections={hierarchyData?.allowedCollections}\n baseFilter={baseFilterConstraint}\n collectionSlug={collectionSlug}\n expandedNodes={hierarchyData?.breadcrumbs?.slice(0, -1).map((b) => b.id)}\n parent={hierarchyData?.parent}\n parentFieldName={\n typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy?.parentFieldName\n : undefined\n }\n tableData={data}\n treeLimit={\n typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy?.admin?.treeLimit\n : undefined\n }\n typeFieldName={\n typeof collectionConfig.hierarchy === 'object' &&\n collectionConfig.hierarchy?.collectionSpecific &&\n typeof collectionConfig.hierarchy.collectionSpecific === 'object'\n ? collectionConfig.hierarchy.collectionSpecific.fieldName\n : undefined\n }\n viewCollectionSlug={collectionSlug}\n />\n {RenderedListViewComponent}\n </Fragment>\n ) : (\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderedListViewComponent}\n </ListQueryProvider>\n )}\n </Fragment>\n ),\n }\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n // Pass through Next.js errors\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,16 @@
1
- import type { AdminViewServerProps, CollectionPreferences, CollectionSlug, CustomComponent, DocumentSubViewTypes, Payload, PayloadComponent, SanitizedCollectionConfig, SanitizedGlobalConfig, ViewTypes } from 'payload';
1
+ import type { AdminViewServerProps, CollectionPreferences, CustomComponent, DocumentSubViewTypes, Payload, PayloadComponent, SanitizedCollectionConfig, SanitizedGlobalConfig, ViewTypes } from 'payload';
2
2
  import type React from 'react';
3
3
  export type ViewFromConfig = {
4
4
  Component?: React.FC<AdminViewServerProps>;
5
5
  payloadComponent?: PayloadComponent<AdminViewServerProps>;
6
6
  };
7
7
  type GetRouteDataResult = {
8
- browseByFolderSlugs: CollectionSlug[];
9
8
  collectionConfig?: SanitizedCollectionConfig;
10
9
  DefaultView: ViewFromConfig;
11
10
  documentSubViewType?: DocumentSubViewTypes;
12
11
  globalConfig?: SanitizedGlobalConfig;
13
12
  routeParams: {
14
13
  collection?: string;
15
- folderCollection?: string;
16
- folderID?: number | string;
17
14
  global?: string;
18
15
  id?: number | string;
19
16
  token?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EAEzB,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsC9B,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,kBAAkB,GAAG;IACxB,mBAAmB,EAAE,cAAc,EAAE,CAAA;IACrC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,WAAW,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC5B,CAAA;IACD,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,YAAY,4GAQtB,gBAAgB,KAAG,kBA8WrB,CAAA"}
1
+ {"version":3,"file":"getRouteData.d.ts","sourceRoot":"","sources":["../../../src/views/Root/getRouteData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EAErB,eAAe,EACf,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,yBAAyB,EAEzB,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmC9B,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;AAYD,KAAK,kBAAkB,GAAG;IACxB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,EAAE,cAAc,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,WAAW,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAC5B,CAAA;IACD,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,SAAS,GAAG,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,YAAY,4GAQtB,gBAAgB,KAAG,kBAmSrB,CAAA"}
@@ -1,8 +1,6 @@
1
1
  import { parseDocumentID } from 'payload';
2
2
  import { formatAdminURL, isNumber } from 'payload/shared';
3
3
  import { AccountView } from '../Account/index.js';
4
- import { BrowseByFolder } from '../BrowseByFolder/index.js';
5
- import { CollectionFolderView } from '../CollectionFolders/index.js';
6
4
  import { TrashView } from '../CollectionTrash/index.js';
7
5
  import { CreateFirstUserView } from '../CreateFirstUser/index.js';
8
6
  import { DashboardView } from '../Dashboard/index.js';
@@ -21,7 +19,6 @@ import { getDocumentViewInfo } from './getDocumentViewInfo.js';
21
19
  import { isPathMatchingRoute } from './isPathMatchingRoute.js';
22
20
  const baseClasses = {
23
21
  account: 'account',
24
- folders: 'folders',
25
22
  forgot: forgotPasswordBaseClass,
26
23
  login: loginBaseClass,
27
24
  reset: resetPasswordBaseClass,
@@ -29,7 +26,6 @@ const baseClasses = {
29
26
  };
30
27
  const oneSegmentViews = {
31
28
  account: AccountView,
32
- browseByFolder: BrowseByFolder,
33
29
  createFirstUser: CreateFirstUserView,
34
30
  forgot: ForgotPasswordView,
35
31
  inactivity: LogoutInactivity,
@@ -56,16 +52,6 @@ export const getRouteData = ({
56
52
  let viewType;
57
53
  const routeParams = {};
58
54
  const [segmentOne, segmentTwo, segmentThree, segmentFour, segmentFive, segmentSix] = segments;
59
- const isBrowseByFolderEnabled = config.folders && config.folders.browseByFolder;
60
- const browseByFolderSlugs = isBrowseByFolderEnabled && config.collections.reduce((acc, {
61
- slug,
62
- folders
63
- }) => {
64
- if (folders && folders.browseByFolder) {
65
- return [...acc, slug];
66
- }
67
- return acc;
68
- }, []) || [];
69
55
  const viewActions = [...(config?.admin?.components?.actions || [])];
70
56
  switch (segments.length) {
71
57
  case 0:
@@ -121,15 +107,10 @@ export const getRouteData = ({
121
107
  if (viewKey === 'account') {
122
108
  templateType = 'default';
123
109
  }
124
- if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {
125
- templateType = 'default';
126
- viewType = 'folders';
127
- }
128
110
  }
129
111
  } else if (oneSegmentViews[viewKey]) {
130
112
  // --> /account
131
113
  // --> /create-first-user
132
- // --> /browse-by-folder
133
114
  // --> /forgot
134
115
  // --> /login
135
116
  // --> /logout
@@ -144,10 +125,6 @@ export const getRouteData = ({
144
125
  if (viewKey === 'account') {
145
126
  templateType = 'default';
146
127
  }
147
- if (isBrowseByFolderEnabled && viewKey === 'browseByFolder') {
148
- templateType = 'default';
149
- viewType = 'folders';
150
- }
151
128
  }
152
129
  break;
153
130
  }
@@ -161,34 +138,16 @@ export const getRouteData = ({
161
138
  templateClassName = baseClasses[segmentTwo];
162
139
  templateType = 'minimal';
163
140
  viewType = 'reset';
164
- } else if (isBrowseByFolderEnabled && `/${segmentOne}` === config.admin.routes.browseByFolder) {
165
- // --> /browse-by-folder/:folderID
166
- routeParams.folderID = segmentTwo;
167
- ViewToRender = {
168
- Component: oneSegmentViews.browseByFolder
169
- };
170
- templateClassName = baseClasses.folders;
171
- templateType = 'default';
172
- viewType = 'folders';
173
141
  } else if (collectionConfig) {
174
142
  // --> /collections/:collectionSlug'
175
143
  routeParams.collection = collectionConfig.slug;
176
- if (collectionPreferences?.listViewType && collectionPreferences.listViewType === 'folders') {
177
- // Render folder view by default if set in preferences
178
- ViewToRender = {
179
- Component: CollectionFolderView
180
- };
181
- templateClassName = `collection-folders`;
182
- templateType = 'default';
183
- viewType = 'collection-folders';
184
- } else {
185
- ViewToRender = {
186
- Component: ListView
187
- };
188
- templateClassName = `${segmentTwo}-list`;
189
- templateType = 'default';
190
- viewType = 'list';
191
- }
144
+ // Regular list view - handles hierarchy collections via handleHierarchy when ?parent= is present
145
+ ViewToRender = {
146
+ Component: ListView
147
+ };
148
+ templateClassName = `${segmentTwo}-list`;
149
+ templateType = 'default';
150
+ viewType = 'list';
192
151
  viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []));
193
152
  } else if (globalConfig) {
194
153
  // --> /globals/:globalSlug
@@ -250,41 +209,26 @@ export const getRouteData = ({
250
209
  viewType = 'trash';
251
210
  viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []));
252
211
  } else {
253
- if (config.folders && segmentThree === config.folders.slug && collectionConfig.folders) {
254
- // Collection Folder Views
255
- // --> /collections/:collectionSlug/:folderCollectionSlug
256
- // --> /collections/:collectionSlug/:folderCollectionSlug/:folderID
257
- routeParams.folderCollection = segmentThree;
258
- routeParams.folderID = segmentFour;
259
- ViewToRender = {
260
- Component: CollectionFolderView
261
- };
262
- templateClassName = `collection-folders`;
263
- templateType = 'default';
264
- viewType = 'collection-folders';
265
- viewActions.push(...(collectionConfig.admin.components?.views?.list?.actions || []));
266
- } else {
267
- // Collection Edit Views
268
- // --> /collections/:collectionSlug/create
269
- // --> /collections/:collectionSlug/:id
270
- // --> /collections/:collectionSlug/:id/api
271
- // --> /collections/:collectionSlug/:id/versions
272
- // --> /collections/:collectionSlug/:id/versions/:versionID
273
- routeParams.id = segmentThree === 'create' ? undefined : segmentThree;
274
- routeParams.versionID = segmentFive;
275
- ViewToRender = {
276
- Component: DocumentView
277
- };
278
- templateClassName = `collection-default-edit`;
279
- templateType = 'default';
280
- const viewInfo = getDocumentViewInfo([segmentFour, segmentFive]);
281
- viewType = viewInfo.viewType;
282
- documentSubViewType = viewInfo.documentSubViewType;
283
- viewActions.push(...getSubViewActions({
284
- collectionOrGlobal: collectionConfig,
285
- viewKeyArg: documentSubViewType
286
- }));
287
- }
212
+ // Collection Edit Views
213
+ // --> /collections/:collectionSlug/create
214
+ // --> /collections/:collectionSlug/:id
215
+ // --> /collections/:collectionSlug/:id/api
216
+ // --> /collections/:collectionSlug/:id/versions
217
+ // --> /collections/:collectionSlug/:id/versions/:versionID
218
+ routeParams.id = segmentThree === 'create' ? undefined : segmentThree;
219
+ routeParams.versionID = segmentFive;
220
+ ViewToRender = {
221
+ Component: DocumentView
222
+ };
223
+ templateClassName = `collection-default-edit`;
224
+ templateType = 'default';
225
+ const viewInfo = getDocumentViewInfo([segmentFour, segmentFive]);
226
+ viewType = viewInfo.viewType;
227
+ documentSubViewType = viewInfo.documentSubViewType;
228
+ viewActions.push(...getSubViewActions({
229
+ collectionOrGlobal: collectionConfig,
230
+ viewKeyArg: documentSubViewType
231
+ }));
288
232
  }
289
233
  } else if (globalConfig) {
290
234
  // Global Edit Views
@@ -330,13 +274,6 @@ export const getRouteData = ({
330
274
  });
331
275
  }
332
276
  }
333
- if (config.folders && routeParams.folderID) {
334
- routeParams.folderID = parseDocumentID({
335
- id: routeParams.folderID,
336
- collectionSlug: config.folders.slug,
337
- payload
338
- });
339
- }
340
277
  if (globalConfig && routeParams.versionID) {
341
278
  routeParams.versionID = payload.db.defaultIDType === 'number' && isNumber(routeParams.versionID) ? Number(routeParams.versionID) : routeParams.versionID;
342
279
  }
@@ -344,7 +281,6 @@ export const getRouteData = ({
344
281
  viewActions.reverse();
345
282
  }
346
283
  return {
347
- browseByFolderSlugs,
348
284
  collectionConfig,
349
285
  DefaultView: ViewToRender,
350
286
  documentSubViewType,