@payloadcms/next 3.0.0-canary.b6520aa → 3.0.0-canary.b922438
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/DocumentHeader/Tabs/index.scss +0 -1
- package/dist/elements/DocumentHeader/index.scss +0 -2
- package/dist/elements/LeaveWithoutSaving/index.scss +1 -0
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +7 -8
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.scss +17 -14
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +16 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/scss/app.scss +5 -5
- package/dist/scss/type.scss +1 -0
- package/dist/views/API/index.scss +1 -2
- package/dist/views/Account/index.client.d.ts +3 -0
- package/dist/views/Account/index.client.d.ts.map +1 -0
- package/dist/views/Account/index.client.js +21 -0
- package/dist/views/Account/index.client.js.map +1 -0
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +33 -29
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/Dashboard/index.js +3 -4
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +3 -5
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts +2 -2
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +35 -8
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +4 -2
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/List/Default/index.d.ts.map +1 -1
- package/dist/views/List/Default/index.js +28 -30
- package/dist/views/List/Default/index.js.map +1 -1
- package/dist/views/List/Default/index.scss +5 -12
- package/dist/views/List/index.js +3 -4
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +12 -21
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/index.d.ts +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +32 -5
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +13 -4
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
- package/dist/views/Versions/getLatestVersion.js +6 -1
- package/dist/views/Versions/getLatestVersion.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +24 -4
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useUploadEdits,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { getComponentMap, getFieldMap } = useComponentMap()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`].filter(Boolean).join(' ')\n\n const [schemaPath, setSchemaPath] = React.useState(entitySlug)\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (\n operation === 'create' &&\n collectionConfig.auth &&\n !collectionConfig.auth.disableLocalStrategy\n )\n return true\n return false\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n router,\n locale,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [apiRoute, collectionSlug, schemaPath, getDocPreferences, globalSlug, id, operation, serverURL],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit={!validateBeforeSubmit}\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPath={setSchemaPath}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {componentMap.Upload !== undefined ? (\n componentMap.Upload\n ) : (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={schemaPath}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useUploadEdits","formatAdminURL","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","useState","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","getComponentMap","getFieldMap","depth","params","reportUpdate","resetUploadEdits","locale","get","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","componentMap","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","schemaPath","setSchemaPath","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","json","updatedAt","result","Date","toISOString","redirectRoute","path","doc","push","onChange","formState","prevFormState","docPreferences","body","main","className","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n type FormProps,\n OperationProvider,\n Upload,\n useAuth,\n useComponentMap,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useEditDepth,\n useUploadEdits,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getFormState } from '@payloadcms/ui/shared'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC = () => {\n const {\n id,\n AfterDocument,\n AfterFields,\n BeforeDocument,\n BeforeFields,\n action,\n apiURL,\n collectionSlug,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { getComponentMap, getFieldMap } = useComponentMap()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const collectionConfig =\n collectionSlug && collections.find((collection) => collection.slug === collectionSlug)\n\n const globalConfig = globalSlug && globals.find((global) => global.slug === globalSlug)\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const preventLeaveWithoutSaving =\n (!(collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n !(globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n !disableLeaveWithoutSaving\n\n const classes = [baseClass, id && `${baseClass}--is-editing`]\n\n if (globalSlug) classes.push(`global-edit--${globalSlug}`)\n if (collectionSlug) classes.push(`collection-edit--${collectionSlug}`)\n\n const [schemaPath, setSchemaPath] = React.useState(entitySlug)\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (\n operation === 'create' &&\n collectionConfig.auth &&\n !collectionConfig.auth.disableLocalStrategy\n )\n return true\n return false\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n void getVersions()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n router,\n locale,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [apiRoute, collectionSlug, schemaPath, getDocPreferences, globalSlug, id, operation, serverURL],\n )\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit={!validateBeforeSubmit}\n disabled={isInitializing || !hasSavePermission}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={data}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPath={setSchemaPath}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {componentMap.Upload !== undefined ? (\n componentMap.Upload\n ) : (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={schemaPath}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","Form","OperationProvider","Upload","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useUploadEdits","formatAdminURL","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","useState","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","getVersions","globalSlug","hasPublishPermission","hasSavePermission","initialData","data","initialState","isEditing","isInitializing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","getComponentMap","getFieldMap","depth","params","reportUpdate","resetUploadEdits","locale","get","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","componentMap","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","push","schemaPath","setSchemaPath","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","json","updatedAt","result","Date","toISOString","redirectRoute","path","doc","onChange","formState","prevFormState","docPreferences","body","main","className","filter","Boolean","join","disableValidationOnSubmit","disabled","method","onSuccess","pluralLabel","labels","plural","useAsTitle","fallback","toString","permissions","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/Default/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/Default/index.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA0KnC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use client';
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-misused-promises */ 'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import { Button, DeleteMany, EditMany, Gutter, ListControls, ListSelection, Pagination, PerPage, Pill, PublishMany, RelationshipProvider, SelectionProvider, SetViewActions, StaggeredShimmers, Table, UnpublishMany, useComponentMap, useConfig, useEditDepth, useListInfo, useListQuery, useSearchParams, useStepNav, useTranslation, useWindowInfo } from '@payloadcms/ui';
|
|
@@ -46,7 +46,7 @@ export const DefaultListView = ()=>{
|
|
|
46
46
|
drawerDepth
|
|
47
47
|
]);
|
|
48
48
|
return /*#__PURE__*/ _jsxs("div", {
|
|
49
|
-
className: baseClass
|
|
49
|
+
className: `${baseClass} ${baseClass}--${collectionSlug}`,
|
|
50
50
|
children: [
|
|
51
51
|
/*#__PURE__*/ _jsx(SetViewActions, {
|
|
52
52
|
actions: actionsMap?.List
|
|
@@ -75,10 +75,10 @@ export const DefaultListView = ()=>{
|
|
|
75
75
|
!smallBreak && /*#__PURE__*/ _jsx(ListSelection, {
|
|
76
76
|
label: getTranslation(collectionConfig.labels.plural, i18n)
|
|
77
77
|
}),
|
|
78
|
-
Description
|
|
78
|
+
Description ? /*#__PURE__*/ _jsx("div", {
|
|
79
79
|
className: `${baseClass}__sub-header`,
|
|
80
80
|
children: Description
|
|
81
|
-
})
|
|
81
|
+
}) : null
|
|
82
82
|
]
|
|
83
83
|
})
|
|
84
84
|
}),
|
|
@@ -157,33 +157,31 @@ export const DefaultListView = ()=>{
|
|
|
157
157
|
limits: collectionConfig?.admin?.pagination?.limits,
|
|
158
158
|
resetPage: data.totalDocs <= data.pagingCounter
|
|
159
159
|
}),
|
|
160
|
-
smallBreak && /*#__PURE__*/
|
|
160
|
+
smallBreak && /*#__PURE__*/ _jsxs("div", {
|
|
161
161
|
className: `${baseClass}__list-selection`,
|
|
162
|
-
children:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
]
|
|
186
|
-
})
|
|
162
|
+
children: [
|
|
163
|
+
/*#__PURE__*/ _jsx(ListSelection, {
|
|
164
|
+
label: getTranslation(collectionConfig.labels.plural, i18n)
|
|
165
|
+
}),
|
|
166
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
167
|
+
className: `${baseClass}__list-selection-actions`,
|
|
168
|
+
children: [
|
|
169
|
+
/*#__PURE__*/ _jsx(EditMany, {
|
|
170
|
+
collection: collectionConfig,
|
|
171
|
+
fieldMap: fieldMap
|
|
172
|
+
}),
|
|
173
|
+
/*#__PURE__*/ _jsx(PublishMany, {
|
|
174
|
+
collection: collectionConfig
|
|
175
|
+
}),
|
|
176
|
+
/*#__PURE__*/ _jsx(UnpublishMany, {
|
|
177
|
+
collection: collectionConfig
|
|
178
|
+
}),
|
|
179
|
+
/*#__PURE__*/ _jsx(DeleteMany, {
|
|
180
|
+
collection: collectionConfig
|
|
181
|
+
})
|
|
182
|
+
]
|
|
183
|
+
})
|
|
184
|
+
]
|
|
187
185
|
})
|
|
188
186
|
]
|
|
189
187
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionComponentMap } from '@payloadcms/ui/utilities/buildComponentMap'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListSelection,\n Pagination,\n PerPage,\n Pill,\n PublishMany,\n RelationshipProvider,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n useComponentMap,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo()\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n\n const config = useConfig()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug }) as CollectionComponentMap\n\n const {\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n actionsMap,\n fieldMap,\n } = componentMap || {}\n\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n const { labels } = collectionConfig\n\n const { i18n } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n if (collectionConfig.upload) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={baseClass}>\n <SetViewActions actions={actionsMap?.List} />\n {BeforeList}\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n <header className={`${baseClass}__header`}>\n {Header || (\n <Fragment>\n <h1>{getTranslation(labels?.plural, i18n)}</h1>\n {hasCreatePermission && (\n <Pill\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Pill>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {Description && <div className={`${baseClass}__sub-header`}>{Description}</div>}\n </Fragment>\n )}\n </header>\n <ListControls collectionConfig={collectionConfig} fieldMap={fieldMap} />\n {BeforeListTable}\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fieldMap={fieldMap}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {AfterListTable}\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <Fragment>\n <ListSelection\n label={getTranslation(collectionConfig.labels.plural, i18n)}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </div>\n </Fragment>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n {AfterList}\n </div>\n )\n}\n"],"names":["getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListSelection","Pagination","PerPage","Pill","PublishMany","RelationshipProvider","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","useComponentMap","useConfig","useEditDepth","useListInfo","useListQuery","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","collectionSlug","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","config","getComponentMap","componentMap","AfterList","AfterListTable","BeforeList","BeforeListTable","Description","actionsMap","fieldMap","collectionConfig","collections","find","collection","slug","labels","i18n","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","upload","map","doc","filesize","label","plural","div","className","actions","List","totalDocs","header","h1","aria-label","t","singular","to","join","count","length","customCellContext","uploadConfig","p","el","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","admin","pagination","resetPage","pagingCounter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/List/Default/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-misused-promises */\n'use client'\n\nimport type { CollectionComponentMap } from '@payloadcms/ui/utilities/buildComponentMap'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DeleteMany,\n EditMany,\n Gutter,\n ListControls,\n ListSelection,\n Pagination,\n PerPage,\n Pill,\n PublishMany,\n RelationshipProvider,\n SelectionProvider,\n SetViewActions,\n StaggeredShimmers,\n Table,\n UnpublishMany,\n useComponentMap,\n useConfig,\n useEditDepth,\n useListInfo,\n useListQuery,\n useSearchParams,\n useStepNav,\n useTranslation,\n useWindowInfo,\n} from '@payloadcms/ui'\nimport LinkImport from 'next/link.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport const DefaultListView: React.FC = () => {\n const { Header, collectionSlug, hasCreatePermission, newDocumentURL } = useListInfo()\n const { data, defaultLimit, handlePageChange, handlePerPageChange } = useListQuery()\n const { searchParams } = useSearchParams()\n\n const config = useConfig()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug }) as CollectionComponentMap\n\n const {\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n actionsMap,\n fieldMap,\n } = componentMap || {}\n\n const collectionConfig = config.collections.find(\n (collection) => collection.slug === collectionSlug,\n )\n\n const { labels } = collectionConfig\n\n const { i18n } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n let docs = data.docs || []\n\n if (collectionConfig.upload) {\n docs = docs?.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n }\n\n useEffect(() => {\n if (drawerDepth <= 1) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SetViewActions actions={actionsMap?.List} />\n {BeforeList}\n <SelectionProvider docs={data.docs} totalDocs={data.totalDocs}>\n <Gutter className={`${baseClass}__wrap`}>\n <header className={`${baseClass}__header`}>\n {Header || (\n <Fragment>\n <h1>{getTranslation(labels?.plural, i18n)}</h1>\n {hasCreatePermission && (\n <Pill\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Pill>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n )}\n {Description ? (\n <div className={`${baseClass}__sub-header`}>{Description}</div>\n ) : null}\n </Fragment>\n )}\n </header>\n <ListControls collectionConfig={collectionConfig} fieldMap={fieldMap} />\n {BeforeListTable}\n {!data.docs && (\n <StaggeredShimmers\n className={[`${baseClass}__shimmer`, `${baseClass}__shimmer--rows`].join(' ')}\n count={6}\n />\n )}\n {data.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <Table\n customCellContext={{\n collectionSlug,\n uploadConfig: collectionConfig.upload,\n }}\n data={docs}\n fieldMap={fieldMap}\n />\n </RelationshipProvider>\n )}\n {data.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}</p>\n {hasCreatePermission && newDocumentURL && (\n <Button Link={Link} el=\"link\" to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n )}\n {AfterListTable}\n {data.docs && data.docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={\n isNumber(searchParams?.limit) ? Number(searchParams.limit) : defaultLimit\n }\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection label={getTranslation(collectionConfig.labels.plural, i18n)} />\n <div className={`${baseClass}__list-selection-actions`}>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n </SelectionProvider>\n {AfterList}\n </div>\n )\n}\n"],"names":["getTranslation","Button","DeleteMany","EditMany","Gutter","ListControls","ListSelection","Pagination","PerPage","Pill","PublishMany","RelationshipProvider","SelectionProvider","SetViewActions","StaggeredShimmers","Table","UnpublishMany","useComponentMap","useConfig","useEditDepth","useListInfo","useListQuery","useSearchParams","useStepNav","useTranslation","useWindowInfo","LinkImport","formatFilesize","isNumber","React","Fragment","useEffect","baseClass","Link","default","DefaultListView","Header","collectionSlug","hasCreatePermission","newDocumentURL","data","defaultLimit","handlePageChange","handlePerPageChange","searchParams","config","getComponentMap","componentMap","AfterList","AfterListTable","BeforeList","BeforeListTable","Description","actionsMap","fieldMap","collectionConfig","collections","find","collection","slug","labels","i18n","drawerDepth","setStepNav","breakpoints","s","smallBreak","docs","upload","map","doc","filesize","label","plural","div","className","actions","List","totalDocs","header","h1","aria-label","t","singular","to","join","count","length","customCellContext","uploadConfig","p","el","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","admin","pagination","resetPage","pagingCounter"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
display: flex;
|
|
16
16
|
align-items: center;
|
|
17
17
|
flex-wrap: wrap;
|
|
18
|
-
gap: base(0.
|
|
18
|
+
gap: base(0.8);
|
|
19
19
|
|
|
20
20
|
h1 {
|
|
21
21
|
margin: 0;
|
|
@@ -95,18 +95,18 @@
|
|
|
95
95
|
position: fixed;
|
|
96
96
|
bottom: 0;
|
|
97
97
|
z-index: 10;
|
|
98
|
-
padding: base(0.
|
|
98
|
+
padding: base(0.8) 0;
|
|
99
99
|
width: 100%;
|
|
100
100
|
background-color: var(--theme-bg);
|
|
101
101
|
|
|
102
102
|
.btn {
|
|
103
|
-
margin: 0 0 0 base(0.
|
|
103
|
+
margin: 0 0 0 base(0.4);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
.btn {
|
|
107
107
|
background-color: var(--theme-elevation-100);
|
|
108
108
|
cursor: pointer;
|
|
109
|
-
padding: 0 base(0.
|
|
109
|
+
padding: 0 base(0.4);
|
|
110
110
|
border-radius: $style-radius-s;
|
|
111
111
|
|
|
112
112
|
&:hover {
|
|
@@ -180,13 +180,6 @@
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
@include small-break {
|
|
183
|
-
margin-
|
|
184
|
-
margin-bottom: base(3);
|
|
185
|
-
|
|
186
|
-
&__header {
|
|
187
|
-
.pill {
|
|
188
|
-
top: -6px;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
183
|
+
margin-bottom: base(2.4);
|
|
191
184
|
}
|
|
192
185
|
}
|
package/dist/views/List/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { HydrateAuthProvider, ListInfoProvider, ListQueryProvider, TableColumnsProvider } from '@payloadcms/ui';
|
|
3
3
|
import { RenderCustomComponent, formatAdminURL } from '@payloadcms/ui/shared';
|
|
4
4
|
import { notFound } from 'next/navigation.js';
|
|
5
5
|
import { createClientCollectionConfig, mergeListSearchAndWhere } from 'payload';
|
|
@@ -85,9 +85,8 @@ export const ListView = async ({ initPageResult, params, searchParams })=>{
|
|
|
85
85
|
};
|
|
86
86
|
return /*#__PURE__*/ _jsxs(Fragment, {
|
|
87
87
|
children: [
|
|
88
|
-
/*#__PURE__*/ _jsx(
|
|
89
|
-
permissions: permissions
|
|
90
|
-
user: user
|
|
88
|
+
/*#__PURE__*/ _jsx(HydrateAuthProvider, {
|
|
89
|
+
permissions: permissions
|
|
91
90
|
}),
|
|
92
91
|
/*#__PURE__*/ _jsx(ListInfoProvider, {
|
|
93
92
|
collectionConfig: createClientCollectionConfig({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, Where } from 'payload'\n\nimport {\n HydrateClientUser,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { RenderCustomComponent, formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig, mergeListSearchAndWhere } from 'payload'\nimport { isNumber, isReactComponentOrFunction } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n notFound()\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && isReactComponentOrFunction(CustomList.Component)) {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || collectionConfig.defaultSort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateClientUser permissions={permissions} user={user} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","ListInfoProvider","ListQueryProvider","TableColumnsProvider","RenderCustomComponent","formatAdminURL","notFound","createClientCollectionConfig","mergeListSearchAndWhere","isNumber","isReactComponentOrFunction","React","Fragment","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","error","routes","admin","adminRoute","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","defaultSort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","path","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, Where } from 'payload'\n\nimport {\n HydrateAuthProvider,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { RenderCustomComponent, formatAdminURL } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig, mergeListSearchAndWhere } from 'payload'\nimport { isNumber, isReactComponentOrFunction } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n notFound()\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n const {\n admin: { components: { views: { List: CustomList } = {} } = {} },\n } = collectionConfig\n\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n let CustomListView = null\n\n if (CustomList && typeof CustomList === 'function') {\n CustomListView = CustomList\n } else if (typeof CustomList === 'object' && isReactComponentOrFunction(CustomList.Component)) {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort || collectionConfig.defaultSort || undefined\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const viewComponentProps: DefaultListViewProps = {\n collectionSlug,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n }\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListInfoProvider\n collectionConfig={createClientCollectionConfig({\n collection: collectionConfig,\n t: initPageResult.req.i18n.t,\n })}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderCustomComponent\n CustomComponent={CustomListView}\n DefaultComponent={DefaultListView}\n componentProps={viewComponentProps}\n serverOnlyProps={{\n collectionConfig,\n data,\n hasCreatePermission:\n permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n locale: fullLocale,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateAuthProvider","ListInfoProvider","ListQueryProvider","TableColumnsProvider","RenderCustomComponent","formatAdminURL","notFound","createClientCollectionConfig","mergeListSearchAndWhere","isNumber","isReactComponentOrFunction","React","Fragment","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","error","routes","admin","adminRoute","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","defaultSort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","hasCreatePermission","create","newDocumentURL","path","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps","serverOnlyProps"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,YAAY,qDAItB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/NotFound/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAmB,MAAM,OAAO,CAAA;AAOvC,eAAO,MAAM,oBAAoB,+BAE9B;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAG,OAAO,CAAC,QAAQ,CAUnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CAC9C,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEvB,eAAO,MAAM,YAAY,qDAItB;IACD,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,YAAY,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KACjC,CAAA;CACF,+BAyBA,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,kBAE1B,CAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
2
|
-
import { HydrateClientUser } from '@payloadcms/ui';
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
2
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
4
|
-
import React
|
|
3
|
+
import React from 'react';
|
|
5
4
|
import { DefaultTemplate } from '../../templates/Default/index.js';
|
|
6
5
|
import { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js';
|
|
7
6
|
import { initPage } from '../../utilities/initPage/index.js';
|
|
@@ -27,24 +26,16 @@ export const NotFoundPage = async ({ config: configPromise, params, searchParams
|
|
|
27
26
|
}),
|
|
28
27
|
searchParams
|
|
29
28
|
});
|
|
30
|
-
return /*#__PURE__*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
payload: initPageResult.req.payload,
|
|
41
|
-
permissions: initPageResult.permissions,
|
|
42
|
-
searchParams: searchParams,
|
|
43
|
-
user: initPageResult.req.user,
|
|
44
|
-
visibleEntities: initPageResult.visibleEntities,
|
|
45
|
-
children: /*#__PURE__*/ _jsx(NotFoundClient, {})
|
|
46
|
-
})
|
|
47
|
-
]
|
|
29
|
+
return /*#__PURE__*/ _jsx(DefaultTemplate, {
|
|
30
|
+
i18n: initPageResult.req.i18n,
|
|
31
|
+
locale: initPageResult.locale,
|
|
32
|
+
params: params,
|
|
33
|
+
payload: initPageResult.req.payload,
|
|
34
|
+
permissions: initPageResult.permissions,
|
|
35
|
+
searchParams: searchParams,
|
|
36
|
+
user: initPageResult.req.user,
|
|
37
|
+
visibleEntities: initPageResult.visibleEntities,
|
|
38
|
+
children: /*#__PURE__*/ _jsx(NotFoundClient, {})
|
|
48
39
|
});
|
|
49
40
|
};
|
|
50
41
|
export const NotFoundView = ()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewComponent, SanitizedConfig } from 'payload'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/views/NotFound/index.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Metadata } from 'next'\nimport type { AdminViewComponent, SanitizedConfig } from 'payload'\n\nimport { HydrateAuthProvider } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport { DefaultTemplate } from '../../templates/Default/index.js'\nimport { getNextRequestI18n } from '../../utilities/getNextRequestI18n.js'\nimport { initPage } from '../../utilities/initPage/index.js'\nimport { NotFoundClient } from './index.client.js'\n\nexport const generatePageMetadata = async ({\n config: configPromise,\n}: {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: { [key: string]: string | string[] }\n}): Promise<Metadata> => {\n const config = await configPromise\n\n const i18n = await getNextRequestI18n({\n config,\n })\n\n return {\n title: i18n.t('general:notFound'),\n }\n}\n\nexport type GenerateViewMetadata = (args: {\n config: SanitizedConfig\n i18n: I18n\n params?: { [key: string]: string | string[] }\n}) => Promise<Metadata>\n\nexport const NotFoundPage = async ({\n config: configPromise,\n params,\n searchParams,\n}: {\n config: Promise<SanitizedConfig>\n params: {\n segments: string[]\n }\n searchParams: {\n [key: string]: string | string[]\n }\n}) => {\n const config = await configPromise\n const { routes: { admin: adminRoute } = {} } = config\n\n const initPageResult = await initPage({\n config,\n redirectUnauthenticatedUser: true,\n route: formatAdminURL({ adminRoute, path: '/not-found' }),\n searchParams,\n })\n\n return (\n <DefaultTemplate\n i18n={initPageResult.req.i18n}\n locale={initPageResult.locale}\n params={params}\n payload={initPageResult.req.payload}\n permissions={initPageResult.permissions}\n searchParams={searchParams}\n user={initPageResult.req.user}\n visibleEntities={initPageResult.visibleEntities}\n >\n <NotFoundClient />\n </DefaultTemplate>\n )\n}\n\nexport const NotFoundView: AdminViewComponent = () => {\n return <NotFoundClient marginTop=\"large\" />\n}\n"],"names":["formatAdminURL","React","DefaultTemplate","getNextRequestI18n","initPage","NotFoundClient","generatePageMetadata","config","configPromise","i18n","title","t","NotFoundPage","params","searchParams","routes","admin","adminRoute","initPageResult","redirectUnauthenticatedUser","route","path","req","locale","payload","permissions","user","visibleEntities","NotFoundView","marginTop"],"mappings":";AAKA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,OAAOC,WAAyB,QAAO;AAEvC,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,QAAQ,QAAQ,oCAAmC;AAC5D,SAASC,cAAc,QAAQ,oBAAmB;AAElD,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,QAAQC,aAAa,EAItB;IACC,MAAMD,SAAS,MAAMC;IAErB,MAAMC,OAAO,MAAMN,mBAAmB;QACpCI;IACF;IAEA,OAAO;QACLG,OAAOD,KAAKE,CAAC,CAAC;IAChB;AACF,EAAC;AAQD,OAAO,MAAMC,eAAe,OAAO,EACjCL,QAAQC,aAAa,EACrBK,MAAM,EACNC,YAAY,EASb;IACC,MAAMP,SAAS,MAAMC;IACrB,MAAM,EAAEO,QAAQ,EAAEC,OAAOC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,GAAGV;IAE/C,MAAMW,iBAAiB,MAAMd,SAAS;QACpCG;QACAY,6BAA6B;QAC7BC,OAAOpB,eAAe;YAAEiB;YAAYI,MAAM;QAAa;QACvDP;IACF;IAEA,qBACE,KAACZ;QACCO,MAAMS,eAAeI,GAAG,CAACb,IAAI;QAC7Bc,QAAQL,eAAeK,MAAM;QAC7BV,QAAQA;QACRW,SAASN,eAAeI,GAAG,CAACE,OAAO;QACnCC,aAAaP,eAAeO,WAAW;QACvCX,cAAcA;QACdY,MAAMR,eAAeI,GAAG,CAACI,IAAI;QAC7BC,iBAAiBT,eAAeS,eAAe;kBAE/C,cAAA,KAACtB;;AAGP,EAAC;AAED,OAAO,MAAMuB,eAAmC;IAC9C,qBAAO,KAACvB;QAAewB,WAAU;;AACnC,EAAC"}
|
|
@@ -46,7 +46,7 @@ const generateLabelFromValue = (collections, field, locale, value)=>{
|
|
|
46
46
|
}
|
|
47
47
|
} else if (relatedDoc) {
|
|
48
48
|
// Handle non-polymorphic `hasMany` relationships or fallback
|
|
49
|
-
if (typeof relatedDoc
|
|
49
|
+
if (typeof relatedDoc?.id !== 'undefined') {
|
|
50
50
|
valueToReturn = relatedDoc.id;
|
|
51
51
|
} else {
|
|
52
52
|
valueToReturn = relatedDoc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (typeof valueToReturn === 'object' && valueToReturn !== null) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const { collections } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (version) {\n if ('hasMany' in field && field.hasMany && Array.isArray(version)) {\n versionToRender =\n version.map((val) => generateLabelFromValue(collections, field, locale, val)).join(', ') ||\n placeholder\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder\n }\n }\n\n if (comparison) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {\n comparisonToRender =\n comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparison) || placeholder\n }\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","val","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,iBAAiB,EAIvB,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,WAAW,EAAE,iBA2IzB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { notFound } from 'next/navigation.js';
|
|
3
|
+
import { deepCopyObjectSimple } from 'payload';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { getLatestVersion } from '../Versions/getLatestVersion.js';
|
|
5
6
|
import { DefaultVersionView } from './Default/index.js';
|
|
@@ -30,8 +31,18 @@ export const VersionView = async (props)=>{
|
|
|
30
31
|
user
|
|
31
32
|
});
|
|
32
33
|
if (collectionConfig?.versions?.drafts) {
|
|
33
|
-
latestDraftVersion = await getLatestVersion(
|
|
34
|
-
|
|
34
|
+
latestDraftVersion = await getLatestVersion({
|
|
35
|
+
slug,
|
|
36
|
+
type: 'collection',
|
|
37
|
+
payload,
|
|
38
|
+
status: 'draft'
|
|
39
|
+
});
|
|
40
|
+
latestPublishedVersion = await getLatestVersion({
|
|
41
|
+
slug,
|
|
42
|
+
type: 'collection',
|
|
43
|
+
payload,
|
|
44
|
+
status: 'published'
|
|
45
|
+
});
|
|
35
46
|
}
|
|
36
47
|
} catch (error) {
|
|
37
48
|
return notFound();
|
|
@@ -52,8 +63,18 @@ export const VersionView = async (props)=>{
|
|
|
52
63
|
user
|
|
53
64
|
});
|
|
54
65
|
if (globalConfig?.versions?.drafts) {
|
|
55
|
-
latestDraftVersion = await getLatestVersion(
|
|
56
|
-
|
|
66
|
+
latestDraftVersion = await getLatestVersion({
|
|
67
|
+
slug,
|
|
68
|
+
type: 'global',
|
|
69
|
+
payload,
|
|
70
|
+
status: 'draft'
|
|
71
|
+
});
|
|
72
|
+
latestPublishedVersion = await getLatestVersion({
|
|
73
|
+
slug,
|
|
74
|
+
type: 'global',
|
|
75
|
+
payload,
|
|
76
|
+
status: 'published'
|
|
77
|
+
});
|
|
57
78
|
}
|
|
58
79
|
} catch (error) {
|
|
59
80
|
return notFound();
|
|
@@ -76,7 +97,13 @@ export const VersionView = async (props)=>{
|
|
|
76
97
|
}
|
|
77
98
|
return /*#__PURE__*/ _jsx(DefaultVersionView, {
|
|
78
99
|
doc: doc,
|
|
79
|
-
|
|
100
|
+
/**
|
|
101
|
+
* After bumping the Next.js canary to 104, and React to 19.0.0-rc-06d0b89e-20240801" we have to deepCopy the permissions object (https://github.com/payloadcms/payload/pull/7541).
|
|
102
|
+
* If both HydrateClientUser and RenderCustomComponent receive the same permissions object (same object reference), we get a
|
|
103
|
+
* "TypeError: Cannot read properties of undefined (reading '$$typeof')" error
|
|
104
|
+
*
|
|
105
|
+
* // TODO: Revisit this in the future and figure out why this is happening. Might be a React/Next.js bug. We don't know why it happens, and a future React/Next version might unbreak this (keep an eye on this and remove deepCopyObjectSimple if that's the case)
|
|
106
|
+
*/ docPermissions: deepCopyObjectSimple(docPermissions),
|
|
80
107
|
initialComparisonDoc: latestVersion,
|
|
81
108
|
latestDraftVersion: latestDraftVersion?.id,
|
|
82
109
|
latestPublishedVersion: latestPublishedVersion?.id,
|