@payloadcms/next 3.48.0 → 3.49.0-canary.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EAMV,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,KAAK,kBAAkB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,oBAAoB,CAAA;AAExB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CA4PA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,SAAS,EAKV,MAAM,SAAS,CAAA;AAahB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAMvC,KAAK,kBAAkB,GAAG;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,GAAG,oBAAoB,CAAA;AAExB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAwPA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAWjD,CAAA"}
@@ -3,7 +3,7 @@ import { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloa
3
3
  import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
4
4
  import { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc';
5
5
  import { notFound } from 'next/navigation.js';
6
- import { formatAdminURL, isNumber, mergeListSearchAndWhere, transformColumnsToPreferences } from 'payload/shared';
6
+ import { formatAdminURL, isNumber, mergeListSearchAndWhere, transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared';
7
7
  import React, { Fragment } from 'react';
8
8
  import { getDocumentPermissions } from '../Document/getDocumentPermissions.js';
9
9
  import { renderListViewSlots } from './renderListViewSlots.js';
@@ -53,22 +53,22 @@ export const renderListView = async args => {
53
53
  throw new Error('not-found');
54
54
  }
55
55
  const query = queryFromArgs || queryFromReq;
56
- const columns = transformColumnsToPreferences(query?.columns);
57
- /**
58
- * @todo: find a pattern to avoid setting preferences on hard navigation, i.e. direct links, page refresh, etc.
59
- * This will ensure that prefs are only updated when explicitly set by the user
60
- * This could potentially be done by injecting a `sessionID` into the params and comparing it against a session cookie
61
- */
56
+ const columnsFromQuery = transformColumnsToPreferences(query?.columns);
62
57
  const collectionPreferences = await upsertPreferences({
63
58
  key: `collection-${collectionSlug}`,
64
59
  req,
65
60
  value: {
66
- columns,
61
+ columns: columnsFromQuery,
67
62
  limit: isNumber(query?.limit) ? Number(query.limit) : undefined,
68
- preset: query?.preset || null,
63
+ preset: query?.preset,
69
64
  sort: query?.sort
70
65
  }
71
66
  });
67
+ query.preset = collectionPreferences?.preset;
68
+ query.page = isNumber(query?.page) ? Number(query.page) : 0;
69
+ query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
70
+ query.sort = collectionPreferences?.sort || (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined);
71
+ query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || []);
72
72
  const {
73
73
  routes: {
74
74
  admin: adminRoute
@@ -78,27 +78,24 @@ export const renderListView = async args => {
78
78
  if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {
79
79
  throw new Error('not-found');
80
80
  }
81
- const page = isNumber(query?.page) ? Number(query.page) : 0;
82
- const limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
83
- const sort = collectionPreferences?.sort || (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined);
84
- let where = mergeListSearchAndWhere({
85
- collectionConfig,
86
- search: typeof query?.search === 'string' ? query.search : undefined,
87
- where: query?.where || undefined
88
- });
89
81
  if (typeof collectionConfig.admin?.baseListFilter === 'function') {
90
82
  const baseListFilter = await collectionConfig.admin.baseListFilter({
91
- limit,
92
- page,
83
+ limit: query.limit,
84
+ page: query.page,
93
85
  req,
94
- sort
86
+ sort: query.sort
95
87
  });
96
88
  if (baseListFilter) {
97
- where = {
98
- and: [where, baseListFilter].filter(Boolean)
89
+ query.where = {
90
+ and: [query.where, baseListFilter].filter(Boolean)
99
91
  };
100
92
  }
101
93
  }
94
+ const whereWithMergedSearch = mergeListSearchAndWhere({
95
+ collectionConfig,
96
+ search: typeof query?.search === 'string' ? query.search : undefined,
97
+ where: query?.where
98
+ });
102
99
  let queryPreset;
103
100
  let queryPresetPermissions;
104
101
  if (collectionPreferences?.preset) {
@@ -130,14 +127,14 @@ export const renderListView = async args => {
130
127
  draft: true,
131
128
  fallbackLocale: false,
132
129
  includeLockStatus: true,
133
- limit,
130
+ limit: query.limit,
134
131
  locale,
135
132
  overrideAccess: false,
136
- page,
133
+ page: query.page,
137
134
  req,
138
- sort,
135
+ sort: query.sort,
139
136
  user,
140
- where: where || {}
137
+ where: whereWithMergedSearch
141
138
  });
142
139
  const clientCollectionConfig = clientConfig.collections.find(c => c.slug === collectionSlug);
143
140
  const {
@@ -146,8 +143,7 @@ export const renderListView = async args => {
146
143
  } = renderTable({
147
144
  clientCollectionConfig,
148
145
  collectionConfig,
149
- columnPreferences: collectionPreferences?.columns,
150
- columns,
146
+ columns: collectionPreferences?.columns,
151
147
  customCellProps,
152
148
  docs: data.docs,
153
149
  drawerSlug,
@@ -176,7 +172,7 @@ export const renderListView = async args => {
176
172
  collectionConfig,
177
173
  data,
178
174
  i18n,
179
- limit,
175
+ limit: query.limit,
180
176
  listPreferences: collectionPreferences,
181
177
  listSearchableFields: collectionConfig.admin.listSearchableFields,
182
178
  locale: fullLocale,
@@ -199,19 +195,18 @@ export const renderListView = async args => {
199
195
  serverProps
200
196
  });
201
197
  const isInDrawer = Boolean(drawerSlug);
198
+ // 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.
199
+ query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined;
202
200
  return {
203
201
  List: /*#__PURE__*/_jsxs(Fragment, {
204
202
  children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
205
203
  permissions: permissions
206
204
  }), /*#__PURE__*/_jsx(ListQueryProvider, {
207
205
  collectionSlug: collectionSlug,
208
- columns: transformColumnsToPreferences(columnState),
209
206
  data: data,
210
- defaultLimit: limit,
211
- defaultSort: sort,
212
- listPreferences: collectionPreferences,
213
207
  modifySearchParams: !isInDrawer,
214
208
  orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
209
+ query: query,
215
210
  children: RenderServerComponent({
216
211
  clientProps: {
217
212
  ...listViewSlots,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","notFound","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","React","Fragment","getDocumentPermissions","renderListViewSlots","resolveAllFilterOptions","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columns","collectionPreferences","key","value","limit","Number","undefined","preset","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","draft","fallbackLocale","includeLockStatus","clientCollectionConfig","columnState","Table","columnPreferences","docs","orderableFieldName","orderable","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","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 ColumnPreference,\n DefaultDocumentIDType,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n QueryPreset,\n SanitizedCollectionPermission,\n Where,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: 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 */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\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 req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n const columns: ColumnPreference[] = transformColumnsToPreferences(\n query?.columns as ColumnPreference[] | string,\n )\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 collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: (query?.preset as DefaultDocumentIDType) || null,\n sort: query?.sort as string,\n },\n })\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n let where = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit,\n page,\n req,\n sort,\n })\n\n if (baseListFilter) {\n where = {\n and: [where, baseListFilter].filter(Boolean),\n }\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 = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: where || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences: collectionPreferences?.columns,\n columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\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 // 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,\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 newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n columns={transformColumnsToPreferences(columnState)}\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n listPreferences={collectionPreferences}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\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 listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\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 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","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","notFound","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","renderListViewSlots","resolveAllFilterOptions","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columnsFromQuery","columns","collectionPreferences","key","value","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","includes","baseListFilter","where","and","filter","Boolean","whereWithMergedSearch","search","queryPreset","queryPresetPermissions","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","draft","fallbackLocale","includeLockStatus","clientCollectionConfig","columnState","Table","docs","orderableFieldName","orderable","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","JSON","parse","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 ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\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 { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: 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 */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\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 req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\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 query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n if (typeof collectionConfig.admin?.baseListFilter === 'function') {\n const baseListFilter = await collectionConfig.admin.baseListFilter({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n if (baseListFilter) {\n query.where = {\n and: [query.where, baseListFilter].filter(Boolean),\n }\n }\n }\n\n const whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: query?.where,\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 = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query.limit,\n locale,\n overrideAccess: false,\n page: query.page,\n req,\n sort: query.sort,\n user,\n where: whereWithMergedSearch,\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns: collectionPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload,\n useAsTitle: collectionConfig.admin.useAsTitle,\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 // 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 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 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 listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n } satisfies ListViewClientProps,\n Component: collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\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 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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAkC,MAAM,SAAS,CAAA;AAEtF,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,wBAAsB,YAAY,CAAC,KAAK,EAAE,uBAAuB,8BAwJhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,uBAAuB,EAAkC,MAAM,SAAS,CAAA;AAEtF,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,wBAAsB,YAAY,CAAC,KAAK,EAAE,uBAAuB,8BA0JhE"}
@@ -130,10 +130,12 @@ export async function VersionsView(props) {
130
130
  className: `${baseClass}__wrap`,
131
131
  children: /*#__PURE__*/_jsx(ListQueryProvider, {
132
132
  data: versionsData,
133
- defaultLimit: limitToUse,
134
- defaultSort: sort,
135
133
  modifySearchParams: true,
136
134
  orderableFieldName: collectionConfig?.orderable === true ? '_order' : undefined,
135
+ query: {
136
+ limit: limitToUse,
137
+ sort: sort
138
+ },
137
139
  children: /*#__PURE__*/_jsx(VersionsViewClient, {
138
140
  baseClass: baseClass,
139
141
  columns: columns,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","isNumber","React","fetchLatestVersion","fetchVersions","VersionDrawerCreatedAtCell","buildVersionColumns","VersionsViewClient","baseClass","VersionsView","props","hasPublishedDoc","initPageResult","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","searchParams","limit","page","sort","versions","disableGutter","useVersionDrawerCreatedAtCell","draftsEnabled","drafts","collectionSlug","slug","globalSlug","localization","routes","api","apiRoute","serverURL","whereQuery","and","push","snapshot","not_equals","defaultLimit","admin","pagination","limitToUse","Number","versionsData","depth","overrideAccess","parseInt","toString","undefined","parentID","where","currentlyPublishedVersion","latestDraftVersion","Promise","all","select","updatedAt","status","resolve","fetchURL","columns","CreatedAtCellOverride","docs","pluralLabel","labels","plural","label","GutterComponent","Fragment","_jsxs","_jsx","useAsTitle","view","className","data","defaultSort","modifySearchParams","orderableFieldName","orderable","paginationLimits","limits"],"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { type DocumentViewServerProps, type PaginatedDocs, type Where } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { fetchLatestVersion, fetchVersions } from '../Version/fetchVersions.js'\nimport { VersionDrawerCreatedAtCell } from '../Version/SelectComparison/VersionDrawer/CreatedAtCell.js'\nimport { buildVersionColumns } from './buildColumns.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nconst baseClass = 'versions'\n\nexport async function VersionsView(props: DocumentViewServerProps) {\n const {\n hasPublishedDoc,\n initPageResult: {\n collectionConfig,\n docID: id,\n globalConfig,\n req,\n req: {\n i18n,\n payload: { config },\n t,\n user,\n },\n },\n searchParams: { limit, page, sort },\n versions: { disableGutter = false, useVersionDrawerCreatedAtCell = false } = {},\n } = props\n\n const draftsEnabled = (collectionConfig ?? globalConfig)?.versions?.drafts\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const {\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const whereQuery: {\n and: Array<{ parent?: { equals: number | string }; snapshot?: { not_equals: boolean } }>\n } & Where = {\n and: [],\n }\n if (localization && draftsEnabled) {\n whereQuery.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const defaultLimit = collectionSlug ? collectionConfig?.admin?.pagination?.defaultLimit : 10\n\n const limitToUse = isNumber(limit) ? Number(limit) : defaultLimit\n\n const versionsData: PaginatedDocs = await fetchVersions({\n collectionSlug,\n depth: 0,\n globalSlug,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n parentID: id,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n\n if (!versionsData) {\n return notFound()\n }\n\n const [currentlyPublishedVersion, latestDraftVersion] = await Promise.all([\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n ])\n\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n\n const columns = buildVersionColumns({\n collectionConfig,\n CreatedAtCellOverride: useVersionDrawerCreatedAtCell ? VersionDrawerCreatedAtCell : undefined,\n currentlyPublishedVersion,\n docID: id,\n docs: versionsData?.docs,\n globalConfig,\n i18n,\n latestDraftVersion,\n })\n\n const pluralLabel =\n typeof collectionConfig?.labels?.plural === 'function'\n ? collectionConfig.labels.plural({ i18n, t })\n : (collectionConfig?.labels?.plural ?? globalConfig?.label)\n\n const GutterComponent = disableGutter ? React.Fragment : Gutter\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={pluralLabel}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalSlug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <GutterComponent className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n defaultLimit={limitToUse}\n defaultSort={sort as string}\n modifySearchParams\n orderableFieldName={collectionConfig?.orderable === true ? '_order' : undefined}\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </GutterComponent>\n </main>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","isNumber","React","fetchLatestVersion","fetchVersions","VersionDrawerCreatedAtCell","buildVersionColumns","VersionsViewClient","baseClass","VersionsView","props","hasPublishedDoc","initPageResult","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","searchParams","limit","page","sort","versions","disableGutter","useVersionDrawerCreatedAtCell","draftsEnabled","drafts","collectionSlug","slug","globalSlug","localization","routes","api","apiRoute","serverURL","whereQuery","and","push","snapshot","not_equals","defaultLimit","admin","pagination","limitToUse","Number","versionsData","depth","overrideAccess","parseInt","toString","undefined","parentID","where","currentlyPublishedVersion","latestDraftVersion","Promise","all","select","updatedAt","status","resolve","fetchURL","columns","CreatedAtCellOverride","docs","pluralLabel","labels","plural","label","GutterComponent","Fragment","_jsxs","_jsx","useAsTitle","view","className","data","modifySearchParams","orderableFieldName","orderable","query","paginationLimits","limits"],"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { type DocumentViewServerProps, type PaginatedDocs, type Where } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { fetchLatestVersion, fetchVersions } from '../Version/fetchVersions.js'\nimport { VersionDrawerCreatedAtCell } from '../Version/SelectComparison/VersionDrawer/CreatedAtCell.js'\nimport { buildVersionColumns } from './buildColumns.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nconst baseClass = 'versions'\n\nexport async function VersionsView(props: DocumentViewServerProps) {\n const {\n hasPublishedDoc,\n initPageResult: {\n collectionConfig,\n docID: id,\n globalConfig,\n req,\n req: {\n i18n,\n payload: { config },\n t,\n user,\n },\n },\n searchParams: { limit, page, sort },\n versions: { disableGutter = false, useVersionDrawerCreatedAtCell = false } = {},\n } = props\n\n const draftsEnabled = (collectionConfig ?? globalConfig)?.versions?.drafts\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const {\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const whereQuery: {\n and: Array<{ parent?: { equals: number | string }; snapshot?: { not_equals: boolean } }>\n } & Where = {\n and: [],\n }\n if (localization && draftsEnabled) {\n whereQuery.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const defaultLimit = collectionSlug ? collectionConfig?.admin?.pagination?.defaultLimit : 10\n\n const limitToUse = isNumber(limit) ? Number(limit) : defaultLimit\n\n const versionsData: PaginatedDocs = await fetchVersions({\n collectionSlug,\n depth: 0,\n globalSlug,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n parentID: id,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n\n if (!versionsData) {\n return notFound()\n }\n\n const [currentlyPublishedVersion, latestDraftVersion] = await Promise.all([\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n ])\n\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n\n const columns = buildVersionColumns({\n collectionConfig,\n CreatedAtCellOverride: useVersionDrawerCreatedAtCell ? VersionDrawerCreatedAtCell : undefined,\n currentlyPublishedVersion,\n docID: id,\n docs: versionsData?.docs,\n globalConfig,\n i18n,\n latestDraftVersion,\n })\n\n const pluralLabel =\n typeof collectionConfig?.labels?.plural === 'function'\n ? collectionConfig.labels.plural({ i18n, t })\n : (collectionConfig?.labels?.plural ?? globalConfig?.label)\n\n const GutterComponent = disableGutter ? React.Fragment : Gutter\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={pluralLabel}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalSlug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <GutterComponent className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n modifySearchParams\n orderableFieldName={collectionConfig?.orderable === true ? '_order' : undefined}\n query={{\n limit: limitToUse,\n sort: sort as string,\n }}\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </GutterComponent>\n </main>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.48.0",
3
+ "version": "3.49.0-canary.1",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -87,9 +87,9 @@
87
87
  "qs-esm": "7.0.2",
88
88
  "sass": "1.77.4",
89
89
  "uuid": "10.0.0",
90
- "@payloadcms/ui": "3.48.0",
91
- "@payloadcms/translations": "3.48.0",
92
- "@payloadcms/graphql": "3.48.0"
90
+ "@payloadcms/graphql": "3.49.0-canary.1",
91
+ "@payloadcms/translations": "3.49.0-canary.1",
92
+ "@payloadcms/ui": "3.49.0-canary.1"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@babel/cli": "7.27.2",
@@ -107,12 +107,12 @@
107
107
  "esbuild-sass-plugin": "3.3.1",
108
108
  "swc-plugin-transform-remove-imports": "4.0.4",
109
109
  "@payloadcms/eslint-config": "3.28.0",
110
- "payload": "3.48.0"
110
+ "payload": "3.49.0-canary.1"
111
111
  },
112
112
  "peerDependencies": {
113
113
  "graphql": "^16.8.1",
114
114
  "next": "^15.2.3",
115
- "payload": "3.48.0"
115
+ "payload": "3.49.0-canary.1"
116
116
  },
117
117
  "engines": {
118
118
  "node": "^18.20.2 || >=20.9.0"