@payloadcms/next 3.24.0 → 3.25.0-canary.3d5c763
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Nav/getNavPrefs.d.ts +2 -5
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
- package/dist/elements/Nav/getNavPrefs.js +23 -24
- package/dist/elements/Nav/getNavPrefs.js.map +1 -1
- package/dist/elements/Nav/index.js +1 -4
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +2 -9
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/getPreferences.d.ts +5 -2
- package/dist/utilities/getPreferences.d.ts.map +1 -1
- package/dist/utilities/getPreferences.js +22 -25
- package/dist/utilities/getPreferences.js.map +1 -1
- package/dist/utilities/getRequestLocale.d.ts.map +1 -1
- package/dist/utilities/getRequestLocale.js +1 -1
- package/dist/utilities/getRequestLocale.js.map +1 -1
- package/dist/views/List/index.js +1 -1
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/resolveAllFilterOptions.d.ts +4 -3
- package/dist/views/List/resolveAllFilterOptions.d.ts.map +1 -1
- package/dist/views/List/resolveAllFilterOptions.js +20 -5
- package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const getPreferences: <T>(key: string, payload: Payload,
|
|
1
|
+
import type { DefaultDocumentIDType, Payload } from 'payload';
|
|
2
|
+
export declare const getPreferences: <T>(key: string, payload: Payload, userID: DefaultDocumentIDType, userSlug: string) => Promise<{
|
|
3
|
+
id: DefaultDocumentIDType;
|
|
4
|
+
value: T;
|
|
5
|
+
}>;
|
|
3
6
|
//# sourceMappingURL=getPreferences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"getPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/getPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAI7D,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA"}
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
import { cache } from 'react';
|
|
2
|
-
export const getPreferences = cache(async (key, payload,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
})?.then(res => res.docs?.[0]?.value);
|
|
26
|
-
} catch (_err) {} // eslint-disable-line no-empty
|
|
2
|
+
export const getPreferences = cache(async (key, payload, userID, userSlug) => {
|
|
3
|
+
const result = await payload.find({
|
|
4
|
+
collection: 'payload-preferences',
|
|
5
|
+
depth: 0,
|
|
6
|
+
limit: 1,
|
|
7
|
+
pagination: false,
|
|
8
|
+
where: {
|
|
9
|
+
and: [{
|
|
10
|
+
key: {
|
|
11
|
+
equals: key
|
|
12
|
+
}
|
|
13
|
+
}, {
|
|
14
|
+
'user.relationTo': {
|
|
15
|
+
equals: userSlug
|
|
16
|
+
}
|
|
17
|
+
}, {
|
|
18
|
+
'user.value': {
|
|
19
|
+
equals: userID
|
|
20
|
+
}
|
|
21
|
+
}]
|
|
22
|
+
}
|
|
23
|
+
}).then(res => res.docs?.[0]);
|
|
27
24
|
return result;
|
|
28
25
|
});
|
|
29
26
|
//# sourceMappingURL=getPreferences.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPreferences.js","names":["cache","getPreferences","key","payload","
|
|
1
|
+
{"version":3,"file":"getPreferences.js","names":["cache","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs"],"sources":["../../src/utilities/getPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload } from 'payload'\n\nimport { cache } from 'react'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n"],"mappings":"AAEA,SAASA,KAAK,QAAQ;AAEtB,OAAO,MAAMC,cAAA,GAAiBD,KAAA,CAC5B,OACEE,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrD,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"getRequestLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestLocale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrD,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,wBAAsB,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BtF"}
|
|
@@ -13,7 +13,7 @@ export async function getRequestLocale({
|
|
|
13
13
|
value: localeFromParams
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
return findLocaleFromCode(req.payload.config.localization, localeFromParams || (await getPreferences('locale', req.payload, req.user))) || findLocaleFromCode(req.payload.config.localization, req.payload.config.localization.defaultLocale || 'en');
|
|
16
|
+
return req.user && findLocaleFromCode(req.payload.config.localization, localeFromParams || (await getPreferences('locale', req.payload, req.user.id, req.user.collection))?.value) || findLocaleFromCode(req.payload.config.localization, req.payload.config.localization.defaultLocale || 'en');
|
|
17
17
|
}
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestLocale.js","names":["upsertPreferences","findLocaleFromCode","getPreferences","getRequestLocale","req","payload","config","localization","localeFromParams","query","locale","key","value","user","defaultLocale","undefined"],"sources":["../../src/utilities/getRequestLocale.ts"],"sourcesContent":["import type { Locale, PayloadRequest } from 'payload'\n\nimport { upsertPreferences } from '@payloadcms/ui/rsc'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\n\nimport { getPreferences } from './getPreferences.js'\n\ntype GetRequestLocalesArgs = {\n req: PayloadRequest\n}\n\nexport async function getRequestLocale({ req }: GetRequestLocalesArgs): Promise<Locale> {\n if (req.payload.config.localization) {\n const localeFromParams = req.query.locale as string | undefined\n\n if (localeFromParams) {\n await upsertPreferences<Locale['code']>({ key: 'locale', req, value: localeFromParams })\n }\n\n return (\n findLocaleFromCode(\n
|
|
1
|
+
{"version":3,"file":"getRequestLocale.js","names":["upsertPreferences","findLocaleFromCode","getPreferences","getRequestLocale","req","payload","config","localization","localeFromParams","query","locale","key","value","user","id","collection","defaultLocale","undefined"],"sources":["../../src/utilities/getRequestLocale.ts"],"sourcesContent":["import type { Locale, PayloadRequest } from 'payload'\n\nimport { upsertPreferences } from '@payloadcms/ui/rsc'\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\n\nimport { getPreferences } from './getPreferences.js'\n\ntype GetRequestLocalesArgs = {\n req: PayloadRequest\n}\n\nexport async function getRequestLocale({ req }: GetRequestLocalesArgs): Promise<Locale> {\n if (req.payload.config.localization) {\n const localeFromParams = req.query.locale as string | undefined\n\n if (localeFromParams) {\n await upsertPreferences<Locale['code']>({ key: 'locale', req, value: localeFromParams })\n }\n\n return (\n (req.user &&\n findLocaleFromCode(\n req.payload.config.localization,\n localeFromParams ||\n (\n await getPreferences<Locale['code']>(\n 'locale',\n req.payload,\n req.user.id,\n req.user.collection,\n )\n )?.value,\n )) ||\n findLocaleFromCode(\n req.payload.config.localization,\n req.payload.config.localization.defaultLocale || 'en',\n )\n )\n }\n\n return undefined\n}\n"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,cAAc,QAAQ;AAM/B,OAAO,eAAeC,iBAAiB;EAAEC;AAAG,CAAyB;EACnE,IAAIA,GAAA,CAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;IACnC,MAAMC,gBAAA,GAAmBJ,GAAA,CAAIK,KAAK,CAACC,MAAM;IAEzC,IAAIF,gBAAA,EAAkB;MACpB,MAAMR,iBAAA,CAAkC;QAAEW,GAAA,EAAK;QAAUP,GAAA;QAAKQ,KAAA,EAAOJ;MAAiB;IACxF;IAEA,OACEJ,GAAC,CAAIS,IAAI,IACPZ,kBAAA,CACEG,GAAA,CAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BC,gBAAA,IAEI,OAAMN,cAAA,CACJ,UACAE,GAAA,CAAIC,OAAO,EACXD,GAAA,CAAIS,IAAI,CAACC,EAAE,EACXV,GAAA,CAAIS,IAAI,CAACE,UAAU,CACrB,GACCH,KAAA,KAETX,kBAAA,CACEG,GAAA,CAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,EAC/BH,GAAA,CAAIC,OAAO,CAACC,MAAM,CAACC,YAAY,CAACS,aAAa,IAAI;EAGvD;EAEA,OAAOC,SAAA;AACT","ignoreList":[]}
|
package/dist/views/List/index.js
CHANGED
|
@@ -118,7 +118,7 @@ export const renderListView = async args => {
|
|
|
118
118
|
});
|
|
119
119
|
const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap);
|
|
120
120
|
const resolvedFilterOptions = await resolveAllFilterOptions({
|
|
121
|
-
collectionConfig,
|
|
121
|
+
fields: collectionConfig.fields,
|
|
122
122
|
req
|
|
123
123
|
});
|
|
124
124
|
const staticDescription = typeof collectionConfig.admin.description === 'function' ? collectionConfig.admin.description({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","upsertPreferences","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","resolveAllFilterOptions","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","listPreferences","key","value","limit","Number","undefined","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","data","find","collection","depth","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","docs","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\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 { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\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 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 listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\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 = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.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 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: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\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 collectionConfig,\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 serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\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 payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\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","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","resolveAllFilterOptions","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","listPreferences","key","value","limit","Number","undefined","sort","routes","admin","adminRoute","includes","page","pagination","defaultLimit","defaultSort","where","search","baseListFilter","and","filter","Boolean","data","find","collection","depth","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","docs","useAsTitle","renderedFilters","fields","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","serverProps","listSearchableFields","listViewSlots","clientProps","isInDrawer","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n ListPreferences,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\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 { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype RenderListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n query: ListQuery\n} & AdminViewServerProps\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 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 listPreferences = await upsertPreferences<ListPreferences>({\n key: `${collectionSlug}-list`,\n req,\n value: {\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\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 = listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n listPreferences?.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 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: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n i18n: req.i18n,\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 const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit,\n listPreferences,\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 payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\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,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const resolveAllFilterOptions: ({
|
|
3
|
-
|
|
1
|
+
import type { Field, PayloadRequest, ResolvedFilterOptions } from 'payload';
|
|
2
|
+
export declare const resolveAllFilterOptions: ({ fields, req, result, }: {
|
|
3
|
+
fields: Field[];
|
|
4
4
|
req: PayloadRequest;
|
|
5
|
+
result?: Map<string, ResolvedFilterOptions>;
|
|
5
6
|
}) => Promise<Map<string, ResolvedFilterOptions>>;
|
|
6
7
|
//# sourceMappingURL=resolveAllFilterOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAllFilterOptions.d.ts","sourceRoot":"","sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"resolveAllFilterOptions.d.ts","sourceRoot":"","sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAK3E,eAAO,MAAM,uBAAuB,6BAIjC;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CAC5C,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA8C7C,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { resolveFilterOptions } from '@payloadcms/ui/rsc';
|
|
2
|
-
import { fieldIsHiddenOrDisabled } from 'payload/shared';
|
|
2
|
+
import { fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared';
|
|
3
3
|
export const resolveAllFilterOptions = async ({
|
|
4
|
-
|
|
5
|
-
req
|
|
4
|
+
fields,
|
|
5
|
+
req,
|
|
6
|
+
result
|
|
6
7
|
}) => {
|
|
7
|
-
const resolvedFilterOptions = new Map();
|
|
8
|
-
await Promise.all(
|
|
8
|
+
const resolvedFilterOptions = !result ? new Map() : result;
|
|
9
|
+
await Promise.all(fields.map(async field => {
|
|
9
10
|
if (fieldIsHiddenOrDisabled(field)) {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
@@ -21,6 +22,20 @@ export const resolveAllFilterOptions = async ({
|
|
|
21
22
|
});
|
|
22
23
|
resolvedFilterOptions.set(field.name, options);
|
|
23
24
|
}
|
|
25
|
+
if (fieldHasSubFields(field)) {
|
|
26
|
+
await resolveAllFilterOptions({
|
|
27
|
+
fields: field.fields,
|
|
28
|
+
req,
|
|
29
|
+
result: resolvedFilterOptions
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (field.type === 'tabs') {
|
|
33
|
+
await Promise.all(field.tabs.map(tab => resolveAllFilterOptions({
|
|
34
|
+
fields: tab.fields,
|
|
35
|
+
req,
|
|
36
|
+
result: resolvedFilterOptions
|
|
37
|
+
})));
|
|
38
|
+
}
|
|
24
39
|
}));
|
|
25
40
|
return resolvedFilterOptions;
|
|
26
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAllFilterOptions.js","names":["resolveFilterOptions","fieldIsHiddenOrDisabled","resolveAllFilterOptions","
|
|
1
|
+
{"version":3,"file":"resolveAllFilterOptions.js","names":["resolveFilterOptions","fieldHasSubFields","fieldIsHiddenOrDisabled","resolveAllFilterOptions","fields","req","result","resolvedFilterOptions","Map","Promise","all","map","field","filterOptions","options","id","undefined","blockData","data","relationTo","siblingData","user","set","name","type","tabs","tab"],"sources":["../../../src/views/List/resolveAllFilterOptions.ts"],"sourcesContent":["import type { Field, PayloadRequest, ResolvedFilterOptions } from 'payload'\n\nimport { resolveFilterOptions } from '@payloadcms/ui/rsc'\nimport { fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\n\nexport const resolveAllFilterOptions = async ({\n fields,\n req,\n result,\n}: {\n fields: Field[]\n req: PayloadRequest\n result?: Map<string, ResolvedFilterOptions>\n}): Promise<Map<string, ResolvedFilterOptions>> => {\n const resolvedFilterOptions = !result ? new Map<string, ResolvedFilterOptions>() : result\n\n await Promise.all(\n fields.map(async (field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return\n }\n\n if ('name' in field && 'filterOptions' in field && field.filterOptions) {\n const options = await resolveFilterOptions(field.filterOptions, {\n id: undefined,\n blockData: undefined,\n data: {}, // use empty object to prevent breaking queries when accessing properties of data\n relationTo: field.relationTo,\n req,\n siblingData: {}, // use empty object to prevent breaking queries when accessing properties of data\n user: req.user,\n })\n\n resolvedFilterOptions.set(field.name, options)\n }\n\n if (fieldHasSubFields(field)) {\n await resolveAllFilterOptions({\n fields: field.fields,\n req,\n result: resolvedFilterOptions,\n })\n }\n\n if (field.type === 'tabs') {\n await Promise.all(\n field.tabs.map((tab) =>\n resolveAllFilterOptions({\n fields: tab.fields,\n req,\n result: resolvedFilterOptions,\n }),\n ),\n )\n }\n }),\n )\n\n return resolvedFilterOptions\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AACrC,SAASC,iBAAiB,EAAEC,uBAAuB,QAAQ;AAE3D,OAAO,MAAMC,uBAAA,GAA0B,MAAAA,CAAO;EAC5CC,MAAM;EACNC,GAAG;EACHC;AAAM,CAKP;EACC,MAAMC,qBAAA,GAAwB,CAACD,MAAA,GAAS,IAAIE,GAAA,KAAuCF,MAAA;EAEnF,MAAMG,OAAA,CAAQC,GAAG,CACfN,MAAA,CAAOO,GAAG,CAAC,MAAOC,KAAA;IAChB,IAAIV,uBAAA,CAAwBU,KAAA,GAAQ;MAClC;IACF;IAEA,IAAI,UAAUA,KAAA,IAAS,mBAAmBA,KAAA,IAASA,KAAA,CAAMC,aAAa,EAAE;MACtE,MAAMC,OAAA,GAAU,MAAMd,oBAAA,CAAqBY,KAAA,CAAMC,aAAa,EAAE;QAC9DE,EAAA,EAAIC,SAAA;QACJC,SAAA,EAAWD,SAAA;QACXE,IAAA,EAAM,CAAC;QACPC,UAAA,EAAYP,KAAA,CAAMO,UAAU;QAC5Bd,GAAA;QACAe,WAAA,EAAa,CAAC;QACdC,IAAA,EAAMhB,GAAA,CAAIgB;MACZ;MAEAd,qBAAA,CAAsBe,GAAG,CAACV,KAAA,CAAMW,IAAI,EAAET,OAAA;IACxC;IAEA,IAAIb,iBAAA,CAAkBW,KAAA,GAAQ;MAC5B,MAAMT,uBAAA,CAAwB;QAC5BC,MAAA,EAAQQ,KAAA,CAAMR,MAAM;QACpBC,GAAA;QACAC,MAAA,EAAQC;MACV;IACF;IAEA,IAAIK,KAAA,CAAMY,IAAI,KAAK,QAAQ;MACzB,MAAMf,OAAA,CAAQC,GAAG,CACfE,KAAA,CAAMa,IAAI,CAACd,GAAG,CAAEe,GAAA,IACdvB,uBAAA,CAAwB;QACtBC,MAAA,EAAQsB,GAAA,CAAItB,MAAM;QAClBC,GAAA;QACAC,MAAA,EAAQC;MACV;IAGN;EACF;EAGF,OAAOA,qBAAA;AACT","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.25.0-canary.3d5c763",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"react-diff-viewer-continued": "4.0.4",
|
|
80
80
|
"sass": "1.77.4",
|
|
81
81
|
"uuid": "10.0.0",
|
|
82
|
-
"@payloadcms/graphql": "3.
|
|
83
|
-
"@payloadcms/translations": "3.
|
|
84
|
-
"@payloadcms/ui": "3.
|
|
82
|
+
"@payloadcms/graphql": "3.25.0-canary.3d5c763",
|
|
83
|
+
"@payloadcms/translations": "3.25.0-canary.3d5c763",
|
|
84
|
+
"@payloadcms/ui": "3.25.0-canary.3d5c763"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@babel/cli": "7.26.4",
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
"esbuild-sass-plugin": "3.3.1",
|
|
100
100
|
"eslint-plugin-react-compiler": "19.0.0-beta-714736e-20250131",
|
|
101
101
|
"swc-plugin-transform-remove-imports": "3.1.0",
|
|
102
|
-
"payload": "3.
|
|
102
|
+
"payload": "3.25.0-canary.3d5c763",
|
|
103
103
|
"@payloadcms/eslint-config": "3.9.0"
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
106
|
"graphql": "^16.8.1",
|
|
107
107
|
"next": "^15.0.0",
|
|
108
|
-
"payload": "3.
|
|
108
|
+
"payload": "3.25.0-canary.3d5c763"
|
|
109
109
|
},
|
|
110
110
|
"engines": {
|
|
111
111
|
"node": "^18.20.2 || >=20.9.0"
|