@payloadcms/next 3.0.0-beta.10 → 3.0.0-beta.11
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/exports/utilities.d.ts +1 -0
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -0
- package/dist/exports/utilities.js.map +1 -1
- package/dist/routes/rest/buildFormState.d.ts.map +1 -1
- package/dist/routes/rest/buildFormState.js +4 -0
- package/dist/routes/rest/buildFormState.js.map +1 -1
- package/dist/views/API/index.client.js +2 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Edit/Default/{SetStepNav → SetDocumentStepNav}/index.d.ts +1 -1
- package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -0
- package/dist/views/Edit/Default/{SetStepNav → SetDocumentStepNav}/index.js +12 -5
- package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -0
- package/dist/views/Edit/Default/index.js +2 -2
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/List/index.js +2 -2
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/LivePreview/index.client.js +2 -2
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +2 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/views/Edit/Default/SetStepNav/index.d.ts.map +0 -1
- package/dist/views/Edit/Default/SetStepNav/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA"}
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export { getNextRequestI18n } from '../utilities/getNextRequestI18n.js'\nexport { getPayloadHMR } from '../utilities/getPayloadHMR.js'\n"],"names":["getNextRequestI18n","getPayloadHMR"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export { traverseFields } from '../utilities/buildFieldSchemaMap/traverseFields.js'\nexport { getNextRequestI18n } from '../utilities/getNextRequestI18n.js'\nexport { getPayloadHMR } from '../utilities/getPayloadHMR.js'\n"],"names":["traverseFields","getNextRequestI18n","getPayloadHMR"],"rangeMappings":";;","mappings":"AAAA,SAASA,cAAc,QAAQ,qDAAoD;AACnF,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,aAAa,QAAQ,gCAA+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/buildFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,cAAc,EAAc,MAAM,eAAe,CAAA;AAM3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAWlF,eAAO,MAAM,iBAAiB,QAAS,cAAc,mBAQpD,CAAA;AAED,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/buildFormState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA8B,cAAc,EAAc,MAAM,eAAe,CAAA;AAM3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAWlF,eAAO,MAAM,iBAAiB,QAAS,cAAc,mBAQpD,CAAA;AAED,eAAO,MAAM,cAAc,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,sBAwLpE,CAAA"}
|
|
@@ -145,6 +145,10 @@ export const buildFormState = async ({ req })=>{
|
|
|
145
145
|
},
|
|
146
146
|
req
|
|
147
147
|
});
|
|
148
|
+
// Maintain form state of file
|
|
149
|
+
if (collectionSlug && req.payload.collections[collectionSlug]?.config?.upload && formState && formState.file) {
|
|
150
|
+
result.file = formState.file;
|
|
151
|
+
}
|
|
148
152
|
return Response.json(result, {
|
|
149
153
|
status: httpStatus.OK
|
|
150
154
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/routes/rest/buildFormState.ts"],"sourcesContent":["import type { BuildFormStateArgs } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport type { DocumentPreferences, Field, PayloadRequest, TypeWithID } from 'payload/types'\n\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'\nimport httpStatus from 'http-status'\n\nimport type { FieldSchemaMap } from '../../utilities/buildFieldSchemaMap/types.js'\n\nimport { buildFieldSchemaMap } from '../../utilities/buildFieldSchemaMap/index.js'\n\nlet cached = global._payload_fieldSchemaMap\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload_fieldSchemaMap = null\n}\n\nexport const getFieldSchemaMap = (req: PayloadRequest): FieldSchemaMap => {\n if (cached && process.env.NODE_ENV !== 'development') {\n return cached\n }\n\n cached = buildFieldSchemaMap(req)\n\n return cached\n}\n\nexport const buildFormState = async ({ req }: { req: PayloadRequest }) => {\n try {\n const reqData: BuildFormStateArgs = req.data as BuildFormStateArgs\n const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n } else {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n\n const fieldSchemaMap = getFieldSchemaMap(req)\n\n const id = collectionSlug ? reqData.id : undefined\n const schemaPathSegments = schemaPath.split('.')\n\n let fieldSchema: Field[]\n\n if (schemaPathSegments.length === 1) {\n if (req.payload.collections[schemaPath]) {\n fieldSchema = req.payload.collections[schemaPath].config.fields\n } else {\n fieldSchema = req.payload.config.globals.find(\n (global) => global.slug === schemaPath,\n )?.fields\n }\n } else if (fieldSchemaMap.has(schemaPath)) {\n fieldSchema = fieldSchemaMap.get(schemaPath)\n }\n\n if (!fieldSchema) {\n return Response.json(\n {\n message: 'Could not find field schema for given path',\n },\n {\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n\n let docPreferences = reqData.docPreferences\n let data = reqData.data\n\n const promises: {\n data?: Promise<void>\n preferences?: Promise<void>\n } = {}\n\n // If the request does not include doc preferences,\n // we should fetch them. This is useful for DocumentInfoProvider\n // as it reduces the amount of client-side fetches necessary\n // when we fetch data for the Edit view\n if (!docPreferences) {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const fetchPreferences = async () => {\n const preferencesResult = (await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n key: {\n equals: preferencesKey,\n },\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value\n }\n\n promises.preferences = fetchPreferences()\n }\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) data = reduceFieldsToValues(formState, true)\n\n // If we do not have data at this point,\n // we can fetch it. This is useful for DocumentInfoProvider\n // to reduce the amount of fetches required\n if (!data) {\n const fetchData = async () => {\n let resolvedData: TypeWithID\n\n if (collectionSlug && id) {\n resolvedData = await req.payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n if (globalSlug && schemaPath === globalSlug) {\n resolvedData = await req.payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n data = resolvedData\n }\n\n promises.data = fetchData()\n }\n\n if (Object.keys(promises).length > 0) {\n await Promise.all(Object.values(promises))\n }\n\n const result = await buildStateFromSchema({\n id,\n data,\n fieldSchema,\n operation,\n preferences: docPreferences || { fields: {} },\n req,\n })\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n } catch (err) {\n return Response.json(\n {\n message: 'There was an error building form state',\n },\n {\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n}\n"],"names":["buildStateFromSchema","reduceFieldsToValues","httpStatus","buildFieldSchemaMap","cached","global","_payload_fieldSchemaMap","getFieldSchemaMap","req","process","env","NODE_ENV","buildFormState","reqData","data","collectionSlug","formState","globalSlug","locale","operation","schemaPath","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Response","json","status","UNAUTHORIZED","fieldSchemaMap","id","undefined","schemaPathSegments","split","fieldSchema","length","fields","globals","find","slug","has","get","message","BAD_REQUEST","docPreferences","promises","preferencesKey","fetchPreferences","preferencesResult","depth","limit","where","key","equals","docs","value","preferences","fetchData","resolvedData","findByID","draft","fallbackLocale","overrideAccess","findGlobal","Object","keys","Promise","all","values","result","OK","err"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/buildFormState.ts"],"sourcesContent":["import type { BuildFormStateArgs } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport type { DocumentPreferences, Field, PayloadRequest, TypeWithID } from 'payload/types'\n\nimport { buildStateFromSchema } from '@payloadcms/ui/forms/buildStateFromSchema'\nimport { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'\nimport httpStatus from 'http-status'\n\nimport type { FieldSchemaMap } from '../../utilities/buildFieldSchemaMap/types.js'\n\nimport { buildFieldSchemaMap } from '../../utilities/buildFieldSchemaMap/index.js'\n\nlet cached = global._payload_fieldSchemaMap\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload_fieldSchemaMap = null\n}\n\nexport const getFieldSchemaMap = (req: PayloadRequest): FieldSchemaMap => {\n if (cached && process.env.NODE_ENV !== 'development') {\n return cached\n }\n\n cached = buildFieldSchemaMap(req)\n\n return cached\n}\n\nexport const buildFormState = async ({ req }: { req: PayloadRequest }) => {\n try {\n const reqData: BuildFormStateArgs = req.data as BuildFormStateArgs\n const { collectionSlug, formState, globalSlug, locale, operation, schemaPath } = reqData\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n } else {\n return Response.json(null, {\n status: httpStatus.UNAUTHORIZED,\n })\n }\n\n const fieldSchemaMap = getFieldSchemaMap(req)\n\n const id = collectionSlug ? reqData.id : undefined\n const schemaPathSegments = schemaPath.split('.')\n\n let fieldSchema: Field[]\n\n if (schemaPathSegments.length === 1) {\n if (req.payload.collections[schemaPath]) {\n fieldSchema = req.payload.collections[schemaPath].config.fields\n } else {\n fieldSchema = req.payload.config.globals.find(\n (global) => global.slug === schemaPath,\n )?.fields\n }\n } else if (fieldSchemaMap.has(schemaPath)) {\n fieldSchema = fieldSchemaMap.get(schemaPath)\n }\n\n if (!fieldSchema) {\n return Response.json(\n {\n message: 'Could not find field schema for given path',\n },\n {\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n\n let docPreferences = reqData.docPreferences\n let data = reqData.data\n\n const promises: {\n data?: Promise<void>\n preferences?: Promise<void>\n } = {}\n\n // If the request does not include doc preferences,\n // we should fetch them. This is useful for DocumentInfoProvider\n // as it reduces the amount of client-side fetches necessary\n // when we fetch data for the Edit view\n if (!docPreferences) {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const fetchPreferences = async () => {\n const preferencesResult = (await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n key: {\n equals: preferencesKey,\n },\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) docPreferences = preferencesResult.docs[0].value\n }\n\n promises.preferences = fetchPreferences()\n }\n }\n\n // If there is a form state,\n // then we can deduce data from that form state\n if (formState) data = reduceFieldsToValues(formState, true)\n\n // If we do not have data at this point,\n // we can fetch it. This is useful for DocumentInfoProvider\n // to reduce the amount of fetches required\n if (!data) {\n const fetchData = async () => {\n let resolvedData: TypeWithID\n\n if (collectionSlug && id) {\n resolvedData = await req.payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n if (globalSlug && schemaPath === globalSlug) {\n resolvedData = await req.payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n locale,\n overrideAccess: false,\n user: req.user,\n })\n }\n\n data = resolvedData\n }\n\n promises.data = fetchData()\n }\n\n if (Object.keys(promises).length > 0) {\n await Promise.all(Object.values(promises))\n }\n\n const result = await buildStateFromSchema({\n id,\n data,\n fieldSchema,\n operation,\n preferences: docPreferences || { fields: {} },\n req,\n })\n\n // Maintain form state of file\n if (\n collectionSlug &&\n req.payload.collections[collectionSlug]?.config?.upload &&\n formState &&\n formState.file\n ) {\n result.file = formState.file\n }\n\n return Response.json(result, {\n status: httpStatus.OK,\n })\n } catch (err) {\n return Response.json(\n {\n message: 'There was an error building form state',\n },\n {\n status: httpStatus.BAD_REQUEST,\n },\n )\n }\n}\n"],"names":["buildStateFromSchema","reduceFieldsToValues","httpStatus","buildFieldSchemaMap","cached","global","_payload_fieldSchemaMap","getFieldSchemaMap","req","process","env","NODE_ENV","buildFormState","reqData","data","collectionSlug","formState","globalSlug","locale","operation","schemaPath","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Response","json","status","UNAUTHORIZED","fieldSchemaMap","id","undefined","schemaPathSegments","split","fieldSchema","length","fields","globals","find","slug","has","get","message","BAD_REQUEST","docPreferences","promises","preferencesKey","fetchPreferences","preferencesResult","depth","limit","where","key","equals","docs","value","preferences","fetchData","resolvedData","findByID","draft","fallbackLocale","overrideAccess","findGlobal","Object","keys","Promise","all","values","result","upload","file","OK","err"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { useSearchParams } from 'next/navigation.js';
|
|
|
16
16
|
import qs from 'qs';
|
|
17
17
|
import * as React from 'react';
|
|
18
18
|
import { toast } from 'react-toastify';
|
|
19
|
-
import {
|
|
19
|
+
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
20
20
|
import { RenderJSON } from './RenderJSON/index.js';
|
|
21
21
|
const baseClass = 'query-inspector';
|
|
22
22
|
export const APIViewClient = ()=>{
|
|
@@ -93,7 +93,7 @@ export const APIViewClient = ()=>{
|
|
|
93
93
|
fullscreen && `${baseClass}--fullscreen`
|
|
94
94
|
].filter(Boolean).join(' '),
|
|
95
95
|
right: false
|
|
96
|
-
}, /*#__PURE__*/ React.createElement(
|
|
96
|
+
}, /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
|
|
97
97
|
collectionSlug: collectionSlug,
|
|
98
98
|
globalLabel: globalConfig?.label,
|
|
99
99
|
globalSlug: globalSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Select } from '@payloadcms/ui/fields/Select'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\n\nimport { SetStepNav } from '../Edit/Default/SetStepNav/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\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 localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label=\"Draft\"\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label=\"Authenticated\"\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && (\n <Select\n label=\"Locale\"\n name=\"locale\"\n onChange={(value) => setLocale(value)}\n options={localeOptions}\n path=\"locale\"\n />\n )}\n <NumberInput\n label=\"Depth\"\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Select","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetStepNav","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","options","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,SAASA,eAAe,QAAQ,0CAAyC;AACzE,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,QAAQ,QAAQ,iCAAgC;AACzD,SAASC,eAAeC,WAAW,QAAQ,+BAA8B;AACzE,SAASC,MAAM,QAAQ,+BAA8B;AACrD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,qBAAoB;AACpD,OAAOC,QAAQ,KAAI;AACnB,YAAYC,WAAW,QAAO;AAC9B,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,UAAU,QAAQ,sCAAqC;AAChE,SAASC,UAAU,QAAQ,wBAAuB;AAGlD,MAAMC,YAAY;AAElB,OAAO,MAAMC,gBAA0B;IACrC,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAGd;IAExD,MAAMe,eAAeZ;IACrB,MAAM,EAAEa,IAAI,EAAE,GAAGd;IACjB,MAAM,EAAEe,IAAI,EAAE,GAAGhB;IAEjB,MAAM,EAAEiB,eAAe,EAAE,GAAGpB;IAE5B,MAAMqB,eAAeD,gBAAgB;QAAEN;QAAgBC;IAAW;IAElE,MAAM,EACJO,WAAW,EACXC,OAAO,EACPC,YAAY,EACZC,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAG3B;IAEJ,MAAM4B,mBACJf,kBAAkBQ,YAAYQ,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKlB;IAEzE,MAAMmB,eAAelB,cAAcQ,QAAQO,IAAI,CAAC,CAACI,SAAWA,OAAOF,IAAI,KAAKjB;IAE5E,MAAMoB,gBACJX,gBACAA,aAAaY,OAAO,CAACC,GAAG,CAAC,CAACC,SAAY,CAAA;YAAEC,OAAOD,OAAOC,KAAK;YAAEC,OAAOF,OAAOnB,IAAI;QAAC,CAAA;IAElF,IAAIsB,gBAAyB;IAC7B,IAAIC,cAAsB;IAE1B,IAAIb,kBAAkB;QACpBY,gBAAgBE,QAAQd,iBAAiBe,QAAQ,EAAEC;QACnDH,cAAc,CAAC,CAAC,EAAE5B,eAAe,CAAC,EAAED,GAAG,CAAC;IAC1C;IAEA,IAAIoB,cAAc;QAChBQ,gBAAgBE,QAAQV,aAAaW,QAAQ,EAAEC;QAC/CH,cAAc,CAAC,SAAS,EAAE3B,WAAW,CAAC;IACxC;IAEA,MAAM,CAAC+B,MAAMC,QAAQ,GAAGxC,MAAMyC,QAAQ,CAAMhC;IAC5C,MAAM,CAACiC,OAAOC,SAAS,GAAG3C,MAAMyC,QAAQ,CAAU/B,aAAakC,GAAG,CAAC,aAAa;IAChF,MAAM,CAACb,QAAQc,UAAU,GAAG7C,MAAMyC,QAAQ,CAAS/B,cAAckC,IAAI,aAAahC;IAClF,MAAM,CAACkC,OAAOC,SAAS,GAAG/C,MAAMyC,QAAQ,CAAS/B,aAAakC,GAAG,CAAC,YAAY;IAC9E,MAAM,CAACI,eAAeC,iBAAiB,GAAGjD,MAAMyC,QAAQ,CAAU;IAClE,MAAM,CAACS,YAAYC,cAAc,GAAGnD,MAAMyC,QAAQ,CAAU;IAE5D,MAAMW,WAAW,CAAC,EAAE/B,UAAU,EAAED,SAAS,EAAEe,YAAY,EAAEpC,GAAGsD,SAAS,CACnE;QACEP;QACAJ;QACAX;IACF,GACA;QAAEuB,gBAAgB;IAAK,GACvB,CAAC;IAEHtD,MAAMuD,SAAS,CAAC;QACd,MAAMC,YAAY;YAChB,IAAI;gBACF,MAAMC,MAAM,MAAMC,MAAMN,UAAU;oBAChCO,aAAaX,gBAAgB,YAAY;oBACzCY,SAAS;wBACP,mBAAmBjD,KAAKkD,QAAQ;oBAClC;oBACAC,QAAQ;gBACV;gBAEA,IAAI;oBACF,MAAMC,OAAO,MAAMN,IAAIM,IAAI;oBAC3BvB,QAAQuB;gBACV,EAAE,OAAOC,OAAO;oBACd/D,MAAM+D,KAAK,CAAC;oBACZC,QAAQD,KAAK,CAACA;gBAChB;YACF,EAAE,OAAOA,OAAO;gBACd/D,MAAM+D,KAAK,CAAC;gBACZC,QAAQD,KAAK,CAACA;YAChB;QACF;QAEA,KAAKR;IACP,GAAG;QAAC7C,KAAKkD,QAAQ;QAAET;QAAUJ;KAAc;IAE3C,qBACE,oBAAC/D;QACCiF,WAAW;YAAC9D;YAAW8C,cAAc,CAAC,EAAE9C,UAAU,YAAY,CAAC;SAAC,CAAC+D,MAAM,CAAC/B,SAASgC,IAAI,CAAC;QACtFC,OAAO;qBAEP,oBAACnE;QACCK,gBAAgBA;QAChB+D,aAAa5C,cAAcM;QAC3BxB,YAAYA;QACZF,IAAIA;QACJiE,aAAajD,mBAAmBA,kBAAkBkD,QAAQC,SAASC;QACnEC,YAAYrD,mBAAmBA,kBAAkBsD,OAAOD,aAAaD;QACrEG,MAAK;sBAEP,oBAACrF;QAAesF,SAAShE,cAAciE,YAAYC,MAAMC;sBACzD,oBAACC;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,eAAe,CAAC;qBAC3C,oBAAC8E;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,SAAS,CAAC;qBACrC,oBAAC+E;QAAKjB,WAAW,CAAC,EAAE9D,UAAU,OAAO,CAAC;OAAE,0BAC9B,oBAACpB;QAAgBiD,OAAOmB;uBAElC,oBAACgC;QAAEC,MAAMjC;QAAUkC,KAAI;QAAsBC,QAAO;OACjDnC,0BAGL,oBAAC9D;QACCkG,cAAc;YACZxC,eAAe;gBACbyC,cAAczC,iBAAiB;gBAC/B0C,OAAO;gBACPzD,OAAOe,iBAAiB;YAC1B;YACAF,OAAO;gBACL2C,cAAcE,OAAO7C,SAAS;gBAC9B4C,OAAO;gBACPzD,OAAO0D,OAAO7C,SAAS;YACzB;YACAJ,OAAO;gBACL+C,cAAc/C,SAAS;gBACvBgD,OAAO;gBACPzD,OAAOS,SAAS;YAClB;YACAX,QAAQ;gBACN0D,cAAc1D;gBACd2D,OAAO;gBACPzD,OAAOF;YACT;QACF;qBAEA,oBAACmD;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,aAAa,CAAC;qBACzC,oBAAC8E;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,yBAAyB,CAAC;OACpD8B,+BACC,oBAAChD;QACC8C,OAAM;QACN4D,MAAK;QACLC,UAAU,IAAMlD,SAAS,CAACD;QAC1BoD,MAAK;sBAGT,oBAAC5G;QACC8C,OAAM;QACN4D,MAAK;QACLC,UAAU,IAAM5C,iBAAiB,CAACD;QAClC8C,MAAK;SAGRlE,+BACC,oBAACvC;QACC2C,OAAM;QACN4D,MAAK;QACLC,UAAU,CAAC5D,QAAUY,UAAUZ;QAC/B8D,SAASnE;QACTkE,MAAK;sBAGT,oBAAC1G;QACC4C,OAAM;QACNgE,KAAK;QACLC,KAAK;QACLL,MAAK;QACLC,UAAU,CAAC5D,QAAUc,SAASd,MAAMiE,QAAQ;QAC5CJ,MAAK;QACLK,MAAM;yBAKd,oBAACjB;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,iBAAiB,CAAC;qBAC7C,oBAAC8E;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,oCAAoC,CAAC;qBAChE,oBAACgG;QACCC,cAAW;QACXnC,WAAW,CAAC,EAAE9D,UAAU,0BAA0B,CAAC;QACnDkG,SAAS,IAAMnD,cAAc,CAACD;QAC9BqD,MAAK;qBAEL,oBAAChH;QAAiBiH,aAAa,CAACtD;wBAGpC,oBAACgC;QAAIhB,WAAW,CAAC,EAAE9D,UAAU,SAAS,CAAC;qBACrC,oBAACD;QAAWsG,QAAQlE;;AAK9B,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { CopyToClipboard } from '@payloadcms/ui/elements/CopyToClipboard'\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { Checkbox } from '@payloadcms/ui/fields/Checkbox'\nimport { NumberField as NumberInput } from '@payloadcms/ui/fields/Number'\nimport { Select } from '@payloadcms/ui/fields/Select'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { MinimizeMaximize } from '@payloadcms/ui/icons/MinimizeMaximize'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useLocale } from '@payloadcms/ui/providers/Locale'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useSearchParams } from 'next/navigation.js'\nimport qs from 'qs'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\nimport './index.scss'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n } = useTranslation()\n const { code } = useLocale()\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const {\n collections,\n globals,\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\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 localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(searchParams.get('depth') || '1')\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}${qs.stringify(\n {\n depth,\n draft,\n locale,\n },\n { addQueryPrefix: true },\n )}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error)\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error)\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.API} />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <Checkbox\n label=\"Draft\"\n name=\"draft\"\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <Checkbox\n label=\"Authenticated\"\n name=\"authenticated\"\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && (\n <Select\n label=\"Locale\"\n name=\"locale\"\n onChange={(value) => setLocale(value)}\n options={localeOptions}\n path=\"locale\"\n />\n )}\n <NumberInput\n label=\"Depth\"\n max={10}\n min={0}\n name=\"depth\"\n onChange={(value) => setDepth(value.toString())}\n path=\"depth\"\n step={1}\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximize isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"names":["CopyToClipboard","Gutter","Checkbox","NumberField","NumberInput","Select","Form","MinimizeMaximize","SetViewActions","useComponentMap","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","qs","React","toast","SetDocumentStepNav","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","searchParams","i18n","code","getComponentMap","componentMap","collections","globals","localization","routes","api","apiRoute","serverURL","collectionConfig","find","collection","slug","globalConfig","global","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","authenticated","setAuthenticated","fullscreen","setFullscreen","fetchURL","stringify","addQueryPrefix","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","className","filter","join","right","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","actions","actionsMap","Edit","API","div","span","a","href","rel","target","initialState","initialValue","valid","Number","name","onChange","path","options","max","min","toString","step","button","aria-label","onClick","type","isMinimized","object"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" resolution-mode="require"/>
|
|
2
2
|
import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const SetDocumentStepNav: React.FC<{
|
|
4
4
|
collectionSlug?: SanitizedCollectionConfig['slug'];
|
|
5
5
|
globalLabel?: SanitizedGlobalConfig['label'];
|
|
6
6
|
globalSlug?: SanitizedGlobalConfig['slug'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAWrF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAsEA,CAAA"}
|
|
@@ -4,12 +4,18 @@ import { useStepNav } from '@payloadcms/ui/elements/StepNav';
|
|
|
4
4
|
import { useConfig } from '@payloadcms/ui/providers/Config';
|
|
5
5
|
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo';
|
|
6
6
|
import { useEditDepth } from '@payloadcms/ui/providers/EditDepth';
|
|
7
|
+
import { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility';
|
|
7
8
|
import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
8
9
|
import { useEffect } from 'react';
|
|
9
|
-
export const
|
|
10
|
+
export const SetDocumentStepNav = (props)=>{
|
|
10
11
|
const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props;
|
|
11
12
|
const view = props?.view || undefined;
|
|
12
13
|
const { isEditing, title } = useDocumentInfo();
|
|
14
|
+
const { isEntityVisible } = useEntityVisibility();
|
|
15
|
+
const isVisible = isEntityVisible({
|
|
16
|
+
collectionSlug,
|
|
17
|
+
globalSlug
|
|
18
|
+
});
|
|
13
19
|
const { setStepNav } = useStepNav();
|
|
14
20
|
const { i18n, t } = useTranslation();
|
|
15
21
|
const { routes: { admin } } = useConfig();
|
|
@@ -19,12 +25,12 @@ export const SetStepNav = (props)=>{
|
|
|
19
25
|
if (collectionSlug) {
|
|
20
26
|
nav.push({
|
|
21
27
|
label: getTranslation(pluralLabel, i18n),
|
|
22
|
-
url: `${admin}/collections/${collectionSlug}`
|
|
28
|
+
url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined
|
|
23
29
|
});
|
|
24
30
|
if (isEditing) {
|
|
25
31
|
nav.push({
|
|
26
32
|
label: useAsTitle && useAsTitle !== 'id' && title || `${id}`,
|
|
27
|
-
url: `${admin}/collections/${collectionSlug}/${id}`
|
|
33
|
+
url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined
|
|
28
34
|
});
|
|
29
35
|
} else {
|
|
30
36
|
nav.push({
|
|
@@ -34,7 +40,7 @@ export const SetStepNav = (props)=>{
|
|
|
34
40
|
} else if (globalSlug) {
|
|
35
41
|
nav.push({
|
|
36
42
|
label: title,
|
|
37
|
-
url: `${admin}/globals/${globalSlug}`
|
|
43
|
+
url: isVisible ? `${admin}/globals/${globalSlug}` : undefined
|
|
38
44
|
});
|
|
39
45
|
}
|
|
40
46
|
if (view) {
|
|
@@ -56,7 +62,8 @@ export const SetStepNav = (props)=>{
|
|
|
56
62
|
collectionSlug,
|
|
57
63
|
globalSlug,
|
|
58
64
|
view,
|
|
59
|
-
drawerDepth
|
|
65
|
+
drawerDepth,
|
|
66
|
+
isVisible
|
|
60
67
|
]);
|
|
61
68
|
return null;
|
|
62
69
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Edit/Default/SetDocumentStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { StepNavItem } from '@payloadcms/ui/elements/StepNav'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useStepNav } from '@payloadcms/ui/elements/StepNav'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useEntityVisibility } from '@payloadcms/ui/providers/EntityVisibility'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useEffect } from 'react'\n\nexport const SetDocumentStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, title } = useDocumentInfo()\n const { isEntityVisible } = useEntityVisibility()\n const isVisible = isEntityVisible({ collectionSlug, globalSlug })\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n routes: { admin },\n } = useConfig()\n\n const drawerDepth = useEditDepth()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: isVisible ? `${admin}/collections/${collectionSlug}` : undefined,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: isVisible ? `${admin}/collections/${collectionSlug}/${id}` : undefined,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: isVisible ? `${admin}/globals/${globalSlug}` : undefined,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n if (drawerDepth <= 1) setStepNav(nav)\n }, [\n setStepNav,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n admin,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n drawerDepth,\n isVisible,\n ])\n\n return null\n}\n"],"names":["getTranslation","useStepNav","useConfig","useDocumentInfo","useEditDepth","useEntityVisibility","useTranslation","useEffect","SetDocumentStepNav","props","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","title","isEntityVisible","isVisible","setStepNav","i18n","t","routes","admin","drawerDepth","nav","push","label","url"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,mBAAmB,QAAQ,4CAA2C;AAC/E,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,qBAQR,CAACC;IACJ,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGL;IAEpE,MAAMM,OAA2BN,OAAOM,QAAQC;IAEhD,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGf;IAC7B,MAAM,EAAEgB,eAAe,EAAE,GAAGd;IAC5B,MAAMe,YAAYD,gBAAgB;QAAER;QAAgBC;IAAW;IAE/D,MAAM,EAAES,UAAU,EAAE,GAAGpB;IAEvB,MAAM,EAAEqB,IAAI,EAAEC,CAAC,EAAE,GAAGjB;IAEpB,MAAM,EACJkB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGvB;IAEJ,MAAMwB,cAActB;IAEpBG,UAAU;QACR,MAAMoB,MAAqB,EAAE;QAE7B,IAAIhB,gBAAgB;YAClBgB,IAAIC,IAAI,CAAC;gBACPC,OAAO7B,eAAea,aAAaS;gBACnCQ,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEd,eAAe,CAAC,GAAGK;YAC9D;YAEA,IAAIC,WAAW;gBACbU,IAAIC,IAAI,CAAC;oBACPC,OAAO,AAACf,cAAcA,eAAe,QAAQI,SAAU,CAAC,EAAER,GAAG,CAAC;oBAC9DoB,KAAKV,YAAY,CAAC,EAAEK,MAAM,aAAa,EAAEd,eAAe,CAAC,EAAED,GAAG,CAAC,GAAGM;gBACpE;YACF,OAAO;gBACLW,IAAIC,IAAI,CAAC;oBACPC,OAAON,EAAE;gBACX;YACF;QACF,OAAO,IAAIX,YAAY;YACrBe,IAAIC,IAAI,CAAC;gBACPC,OAAOX;gBACPY,KAAKV,YAAY,CAAC,EAAEK,MAAM,SAAS,EAAEb,WAAW,CAAC,GAAGI;YACtD;QACF;QAEA,IAAID,MAAM;YACRY,IAAIC,IAAI,CAAC;gBACPC,OAAOd;YACT;QACF;QAEA,IAAIW,eAAe,GAAGL,WAAWM;IACnC,GAAG;QACDN;QACAJ;QACAJ;QACAH;QACAI;QACAW;QACAF;QACAD;QACAJ;QACAP;QACAC;QACAG;QACAW;QACAN;KACD;IAED,OAAO;AACT,EAAC"}
|
|
@@ -19,8 +19,8 @@ import React, { Fragment, useCallback } from 'react';
|
|
|
19
19
|
import { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js';
|
|
20
20
|
// import { getTranslation } from '@payloadcms/translations'
|
|
21
21
|
import { Auth } from './Auth/index.js';
|
|
22
|
+
import { SetDocumentStepNav } from './SetDocumentStepNav/index.js';
|
|
22
23
|
import { SetDocumentTitle } from './SetDocumentTitle/index.js';
|
|
23
|
-
import { SetStepNav } from './SetStepNav/index.js';
|
|
24
24
|
const baseClass = 'collection-edit';
|
|
25
25
|
// This component receives props only on _pages_
|
|
26
26
|
// When rendered within a drawer, props are empty
|
|
@@ -147,7 +147,7 @@ export const DefaultEditView = ()=>{
|
|
|
147
147
|
// loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}
|
|
148
148
|
name: `collection-edit--${typeof collectionConfig?.labels?.singular === 'string' ? collectionConfig.labels.singular : 'document'}`,
|
|
149
149
|
type: "withoutNav"
|
|
150
|
-
}), BeforeDocument, preventLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(
|
|
150
|
+
}), BeforeDocument, preventLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
|
|
151
151
|
collectionSlug: collectionConfig?.slug,
|
|
152
152
|
globalSlug: globalConfig?.slug,
|
|
153
153
|
id: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\n// import { getTranslation } from '@payloadcms/translations'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport { SetStepNav } from './SetStepNav/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 getDocPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\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 fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = id ? 'update' : 'create'\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 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 void getDocPermissions()\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 = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n getDocPermissions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n <FormLoadingOverlayToggle\n action={operation}\n // formIsLoading={isLoading}\n // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}\n name={`collection-edit--${\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : 'document'\n }`}\n type=\"withoutNav\"\n />\n {BeforeDocument}\n {preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetStepNav\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 hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\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 operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","FormLoadingOverlayToggle","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentTitle","SetStepNav","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPermissions","getDocPreferences","getVersions","globalSlug","hasSavePermission","initialData","data","initialState","isEditing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","name","labels","singular","pluralLabel","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Edit/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { FormLoadingOverlayToggle } from '@payloadcms/ui/elements/Loading'\nimport { Upload } from '@payloadcms/ui/elements/Upload'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentEvents } from '@payloadcms/ui/providers/DocumentEvents'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport { useRouter } from 'next/navigation.js'\nimport { useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../../elements/LeaveWithoutSaving/index.js'\n// import { getTranslation } from '@payloadcms/translations'\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 getDocPermissions,\n getDocPreferences,\n getVersions,\n globalSlug,\n hasSavePermission,\n initialData: data,\n initialState,\n isEditing,\n onSave: onSaveFromContext,\n } = useDocumentInfo()\n\n const { refreshCookieAsync, user } = useAuth()\n const config = useConfig()\n const router = useRouter()\n const { dispatchFormQueryParams } = useFormQueryParams()\n const { getFieldMap } = useComponentMap()\n const params = useSearchParams()\n const depth = useEditDepth()\n const { reportUpdate } = useDocumentEvents()\n\n const {\n admin: { user: userSlug },\n collections,\n globals,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const locale = params.get('locale')\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 fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const operation = id ? 'update' : 'create'\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 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 void getDocPermissions()\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 = `${adminRoute}/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`\n router.push(redirectRoute)\n } else {\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits: null,\n },\n })\n }\n },\n [\n onSaveFromContext,\n userSlug,\n reportUpdate,\n id,\n entitySlug,\n user,\n depth,\n collectionSlug,\n getVersions,\n getDocPermissions,\n isEditing,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n dispatchFormQueryParams,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n schemaPath: entitySlug,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, entitySlug, collectionSlug, globalSlug, getDocPreferences],\n )\n\n return (\n <main className={classes}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disableValidationOnSubmit\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n <FormLoadingOverlayToggle\n action={operation}\n // formIsLoading={isLoading}\n // loadingSuffix={getTranslation(collectionConfig.labels.singular, i18n)}\n name={`collection-edit--${\n typeof collectionConfig?.labels?.singular === 'string'\n ? collectionConfig.labels.singular\n : 'document'\n }`}\n type=\"withoutNav\"\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 hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\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 operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n useAPIKey={auth.useAPIKey}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n readOnly={!hasSavePermission}\n schemaPath={entitySlug}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"names":["DocumentControls","DocumentFields","FormLoadingOverlayToggle","Upload","Form","useAuth","useComponentMap","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useFormQueryParams","OperationProvider","getFormState","useRouter","useSearchParams","React","Fragment","useCallback","LeaveWithoutSaving","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPermissions","getDocPreferences","getVersions","globalSlug","hasSavePermission","initialData","data","initialState","isEditing","onSave","onSaveFromContext","refreshCookieAsync","user","config","router","dispatchFormQueryParams","getFieldMap","params","depth","reportUpdate","admin","userSlug","collections","globals","routes","adminRoute","api","apiRoute","serverURL","locale","get","collectionConfig","find","collection","slug","globalConfig","global","entitySlug","fieldMap","operation","auth","undefined","upload","preventLeaveWithoutSaving","versions","drafts","autosave","classes","filter","Boolean","join","json","updatedAt","result","Date","toISOString","redirectRoute","doc","push","type","uploadEdits","onChange","formState","prevFormState","docPreferences","body","schemaPath","main","className","disableValidationOnSubmit","disabled","method","onSuccess","name","labels","singular","pluralLabel","plural","useAsTitle","fallback","toString","permissions","disableLocalStrategy","email","readOnly","requirePassword","useAPIKey","verify","uploadConfig"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/dist/views/List/index.js
CHANGED
|
@@ -46,7 +46,7 @@ export const ListView = async ({ initPageResult, searchParams })=>{
|
|
|
46
46
|
} else if (typeof CustomList === 'object' && typeof CustomList.Component === 'function') {
|
|
47
47
|
CustomListView = CustomList.Component;
|
|
48
48
|
}
|
|
49
|
-
const page = isNumber(query?.page) ? query.page : 0;
|
|
49
|
+
const page = isNumber(query?.page) ? Number(query.page) : 0;
|
|
50
50
|
const whereQuery = mergeListSearchAndWhere({
|
|
51
51
|
collectionConfig,
|
|
52
52
|
query: {
|
|
@@ -54,7 +54,7 @@ export const ListView = async ({ initPageResult, searchParams })=>{
|
|
|
54
54
|
where: query?.where || undefined
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
|
-
const limit = isNumber(query?.limit) ? query.limit : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
|
|
57
|
+
const limit = isNumber(query?.limit) ? Number(query.limit) : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
|
|
58
58
|
const sort = query?.sort && typeof query.sort === 'string' ? query.sort : listPreferences?.sort || undefined;
|
|
59
59
|
const data = await payload.find({
|
|
60
60
|
collection: collectionSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {\n const {\n collectionConfig,\n permissions,\n req: {\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 return <UnauthorizedView initPageResult={initPageResult} searchParams={searchParams} />\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 user,\n where: {\n key: {\n equals: preferenceKey,\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 },\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' && typeof CustomList.Component === 'function') {\n CustomListView = CustomList.Component\n }\n\n const page = isNumber(query?.page) ? 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 ? 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 || 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 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={`${admin}/collections/${collectionSlug}/create`}\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 />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","mergeListSearchAndWhere","React","Fragment","UnauthorizedView","DefaultListView","generateListMetadata","ListView","initPageResult","searchParams","collectionConfig","permissions","req","locale","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","i18n","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,iBAAiB,QAAQ,4CAA2C;AAC7E,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,4BAA4B,QAAQ,iBAAgB;AAE7D,SAASC,QAAQ,EAAEC,uBAAuB,QAAQ,oBAAmB;AACrE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAIvC,SAASC,gBAAgB,QAAQ,2BAA0B;AAC3D,SAASC,eAAe,QAAQ,qBAAoB;AAEpD,SAASC,oBAAoB,QAAQ,YAAW;AAEhD,OAAO,MAAMC,WAAqC,OAAO,EAAEC,cAAc,EAAEC,YAAY,EAAE;IACvF,MAAM,EACJC,gBAAgB,EAChBC,WAAW,EACXC,KAAK,EACHC,MAAM,EACNC,OAAO,EACPA,SAAS,EAAEC,MAAM,EAAE,EACnBC,KAAK,EACLC,IAAI,EACL,EACDC,eAAe,EAChB,GAAGV;IAEJ,MAAMW,iBAAiBT,kBAAkBU;IAEzC,IAAI,CAACT,aAAaU,aAAa,CAACF,eAAe,EAAEG,MAAMC,YAAY;QACjE,qBAAO,oBAACnB;YAAiBI,gBAAgBA;YAAgBC,cAAcA;;IACzE;IAEA,IAAIe;IACJ,MAAMC,gBAAgB,CAAC,EAAEN,eAAe,KAAK,CAAC;IAE9C,IAAI;QACFK,kBAAmB,MAAMV,QACtBY,IAAI,CAAC;YACJC,YAAY;YACZC,OAAO;YACPC,OAAO;YACPZ;YACAa,OAAO;gBACLC,KAAK;oBACHC,QAAQP;gBACV;YACF;QACF,IACEQ,KAAK,CAACC,MAAQA,KAAKC,MAAM,CAAC,EAAE,EAAEC;IACpC,EAAE,OAAOC,OAAO,CAAC,EAAE,+BAA+B;IAElD,MAAM,EACJC,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGxB;IAEJ,IAAIL,kBAAkB;QACpB,MAAM,EACJ6B,OAAO,EAAEC,YAAY,EAAEC,OAAO,EAAEC,MAAMC,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EACjE,GAAGjC;QAEJ,IAAI,CAACQ,gBAAgBG,WAAW,CAACuB,QAAQ,CAACzB,iBAAiB;YACzD,OAAOrB;QACT;QAEA,IAAI+C,iBAAiB;QAErB,IAAIF,cAAc,OAAOA,eAAe,YAAY;YAClDE,iBAAiBF;QACnB,OAAO,IAAI,OAAOA,eAAe,YAAY,OAAOA,WAAWG,SAAS,KAAK,YAAY;YACvFD,iBAAiBF,WAAWG,SAAS;QACvC;QAEA,MAAMC,OAAO/C,SAASgB,OAAO+B,
|
|
1
|
+
{"version":3,"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { Where } from 'payload/types'\n\nimport { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser'\nimport { RenderCustomComponent } from '@payloadcms/ui/elements/RenderCustomComponent'\nimport { TableColumnsProvider } from '@payloadcms/ui/elements/TableColumns'\nimport { ListInfoProvider } from '@payloadcms/ui/providers/ListInfo'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { createClientCollectionConfig } from 'payload/config'\nimport { type AdminViewProps } from 'payload/types'\nimport { isNumber, mergeListSearchAndWhere } from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { DefaultListViewProps, ListPreferences } from './Default/types.js'\n\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({ initPageResult, searchParams }) => {\n const {\n collectionConfig,\n permissions,\n req: {\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 return <UnauthorizedView initPageResult={initPageResult} searchParams={searchParams} />\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 user,\n where: {\n key: {\n equals: preferenceKey,\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 },\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' && typeof CustomList.Component === 'function') {\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 || 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 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={`${admin}/collections/${collectionSlug}/create`}\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 />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"names":["HydrateClientUser","RenderCustomComponent","TableColumnsProvider","ListInfoProvider","ListQueryProvider","notFound","createClientCollectionConfig","isNumber","mergeListSearchAndWhere","React","Fragment","UnauthorizedView","DefaultListView","generateListMetadata","ListView","initPageResult","searchParams","collectionConfig","permissions","req","locale","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","key","equals","then","res","docs","value","error","routes","admin","components","views","List","CustomList","includes","CustomListView","Component","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","overrideAccess","viewComponentProps","listSearchableFields","t","i18n","hasCreatePermission","create","newDocumentURL","defaultSort","modifySearchParams","enableRowSelections","CustomComponent","DefaultComponent","componentProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -12,8 +12,8 @@ import { useTranslation } from '@payloadcms/ui/providers/Translation';
|
|
|
12
12
|
import { getFormState } from '@payloadcms/ui/utilities/getFormState';
|
|
13
13
|
import React, { Fragment, useCallback } from 'react';
|
|
14
14
|
import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
|
|
15
|
+
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
15
16
|
import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
|
|
16
|
-
import { SetStepNav } from '../Edit/Default/SetStepNav/index.js';
|
|
17
17
|
import { useLivePreviewContext } from './Context/context.js';
|
|
18
18
|
import { LivePreviewProvider } from './Context/index.js';
|
|
19
19
|
import { LivePreview } from './Preview/index.js';
|
|
@@ -80,7 +80,7 @@ const PreviewView = ({ apiRoute, collectionConfig, config, fieldMap, globalConfi
|
|
|
80
80
|
onChange
|
|
81
81
|
],
|
|
82
82
|
onSuccess: onSave
|
|
83
|
-
}, (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(
|
|
83
|
+
}, (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && /*#__PURE__*/ React.createElement(LeaveWithoutSaving, null), /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
|
|
84
84
|
collectionSlug: collectionSlug,
|
|
85
85
|
globalLabel: globalConfig?.label,
|
|
86
86
|
globalSlug: globalSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { LivePreviewConfig } from 'payload/config'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig, Data } from 'payload/types'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { LoadingOverlay } from '@payloadcms/ui/elements/Loading'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { SetStepNav } from '../Edit/Default/SetStepNav/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport { LivePreview } from './Preview/index.js'\nimport './index.scss'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n apiRoute: string\n collectionConfig?: ClientCollectionConfig\n config: ClientConfig\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n schemaPath: string\n serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fieldMap,\n globalConfig,\n schemaPath,\n serverURL,\n}) => {\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 globalSlug,\n hasSavePermission,\n initialData,\n initialState,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n\n const onSave = useCallback(\n (json) => {\n // reportUpdate({\n // id,\n // entitySlug: collectionConfig.slug,\n // updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n // })\n\n // if (auth && id === user.id) {\n // await refreshCookieAsync()\n // }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n id,\n onSaveFromProps,\n // refreshCookieAsync,\n // reportUpdate\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n docPreferences,\n formState: prevFormState,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, schemaPath, getDocPreferences],\n )\n\n // Allow the `DocumentInfoProvider` to hydrate\n if (!collectionSlug && !globalSlug) {\n return <LoadingOverlay />\n }\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n forceSidebarWrap\n readOnly={!hasSavePermission}\n schemaPath={collectionSlug || globalSlug}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n </Fragment>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n breakpoints: LivePreviewConfig['breakpoints']\n initialData: Data\n url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const config = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const {\n collections,\n globals,\n routes: { 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 schemaPath = collectionSlug || globalSlug\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n return (\n <Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.LivePreview} />\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"names":["DocumentControls","DocumentFields","LoadingOverlay","Form","SetViewActions","useComponentMap","useConfig","useDocumentInfo","OperationProvider","useTranslation","getFormState","React","Fragment","useCallback","LeaveWithoutSaving","SetDocumentTitle","SetStepNav","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fieldMap","globalConfig","schemaPath","serverURL","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","globalSlug","hasSavePermission","initialData","initialState","onSave","onSaveFromProps","operation","t","previewWindowType","json","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","fallback","toString","data","isEditing","Boolean","permissions","slug","div","filter","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAMA,SAASA,gBAAgB,QAAQ,2CAA0C;AAC3E,SAASC,cAAc,QAAQ,yCAAwC;AACvE,SAASC,cAAc,QAAQ,kCAAiC;AAChE,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,YAAY,QAAQ,wCAAuC;AACpE,OAAOC,SAASC,QAAQ,EAAEC,WAAW,QAAQ,QAAO;AAEpD,SAASC,kBAAkB,QAAQ,6CAA4C;AAC/E,SAASC,gBAAgB,QAAQ,4CAA2C;AAC5E,SAASC,UAAU,QAAQ,sCAAqC;AAChE,SAASC,qBAAqB,QAAQ,uBAAsB;AAC5D,SAASC,mBAAmB,QAAQ,qBAAoB;AACxD,SAASC,WAAW,QAAQ,qBAAoB;AAEhD,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,MAAMC,YAAY;AAYlB,MAAMC,cAA+B,CAAC,EACpCC,QAAQ,EACRC,gBAAgB,EAChBC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,UAAU,EACVC,SAAS,EACV;IACC,MAAM,EACJC,EAAE,EACFC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,MAAM,EACNC,MAAM,EACNC,cAAc,EACdC,cAAc,EACdC,yBAAyB,EACzBC,cAAc,EACdC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,EACjBC,WAAW,EACXC,YAAY,EACZC,QAAQC,eAAe,EACxB,GAAGxC;IAEJ,MAAMyC,YAAYlB,KAAK,WAAW;IAElC,MAAM,EAAEmB,CAAC,EAAE,GAAGxC;IACd,MAAM,EAAEyC,iBAAiB,EAAE,GAAGjC;IAE9B,MAAM6B,SAASjC,YACb,CAACsC;QACC,iBAAiB;QACjB,QAAQ;QACR,uCAAuC;QACvC,oEAAoE;QACpE,KAAK;QAEL,gCAAgC;QAChC,+BAA+B;QAC/B,IAAI;QAEJ,IAAI,OAAOJ,oBAAoB,YAAY;YACzC,KAAKA,gBAAgB;gBACnB,GAAGI,IAAI;gBACPH,WAAWlB,KAAK,WAAW;YAC7B;QACF;IACF,GACA;QACEA;QACAiB;KAGD;IAGH,MAAMK,WAAqCvC,YACzC,OAAO,EAAEwC,WAAWC,aAAa,EAAE;QACjC,MAAMC,iBAAiB,MAAMd;QAE7B,OAAO/B,aAAa;YAClBa;YACAiC,MAAM;gBACJ1B;gBACAyB;gBACAF,WAAWC;gBACXN;gBACApB;YACF;YACAC;QACF;IACF,GACA;QAACA;QAAWN;QAAUO;QAAIkB;QAAWpB;QAAYa;KAAkB;IAGrE,8CAA8C;IAC9C,IAAI,CAACJ,kBAAkB,CAACK,YAAY;QAClC,qBAAO,oBAACxC;IACV;IAEA,qBACE,oBAACU,8BACC,oBAACJ;QAAkBwC,WAAWA;qBAC5B,oBAAC7C;QACCgC,QAAQA;QACRsB,WAAW,CAAC,EAAEpC,UAAU,MAAM,CAAC;QAC/BqC,UAAU,CAACf;QACXE,cAAcA;QACdc,QAAQ7B,KAAK,UAAU;QACvBsB,UAAU;YAACA;SAAS;QACpBQ,WAAWd;OAEV,AAAC,CAAA,AAACtB,oBACD,CAAEA,CAAAA,iBAAiBqC,QAAQ,EAAEC,UAAUtC,iBAAiBqC,QAAQ,EAAEC,QAAQC,QAAO,KAChFpC,gBACC,CAAEA,CAAAA,aAAakC,QAAQ,EAAEC,UAAUnC,aAAakC,QAAQ,EAAEC,QAAQC,QAAO,CAAE,KAC7E,CAACxB,2CAA6B,oBAACzB,yCACjC,oBAACE;QACCqB,gBAAgBA;QAChB2B,aAAarC,cAAcsC;QAC3BvB,YAAYA;QACZZ,IAAIA;QACJoC,aAAa1C,mBAAmBA,kBAAkB2C,QAAQC,SAASC;QACnEC,YAAY9C,mBAAmBA,kBAAkB+C,OAAOD,aAAaD;QACrEG,MAAMvB,EAAE;sBAEV,oBAAClC;QACCS,kBAAkBA;QAClBC,QAAQA;QACRgD,UAAU3C,IAAI4C,cAAc;QAC5B/C,cAAcA;sBAEhB,oBAAC3B;QACCoC,QAAQA;QACRuC,MAAM/B;QACNN,gBAAgBA;QAChBK,mBAAmBA;QACnBb,IAAIA;QACJ8C,WAAWC,QAAQ/C;QACnBgD,aAAatC;QACbuC,MAAMvD,kBAAkBuD,QAAQpD,cAAcoD;sBAEhD,oBAACC;QACCvB,WAAW;YAACpC;YAAW6B,sBAAsB,WAAW,CAAC,EAAE7B,UAAU,UAAU,CAAC;SAAC,CAC9E4D,MAAM,CAACJ,SACPK,IAAI,CAAC;qBAER,oBAACF;QACCvB,WAAW;YACT,CAAC,EAAEpC,UAAU,MAAM,CAAC;YACpB6B,sBAAsB,WAAW,CAAC,EAAE7B,UAAU,kBAAkB,CAAC;SAClE,CACE4D,MAAM,CAACJ,SACPK,IAAI,CAAC;OAEPjD,8BACD,oBAAChC;QACC+B,aAAaA;QACbE,cAAcA;QACdM,gBAAgBA;QAChBd,UAAUA;QACVyD,kBAAAA;QACAC,UAAU,CAACzC;QACXf,YAAYS,kBAAkBK;QAE/BX,8BAEH,oBAACZ;QAAYkB,gBAAgBA;QAAgBK,YAAYA;;AAMrE;AAEA,OAAO,MAAM2C,oBAIR,CAACC;IACJ,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGF;IAC7B,MAAM,EAAEjD,cAAc,EAAEK,UAAU,EAAE,GAAGnC;IAEvC,MAAMkB,SAASnB;IAEf,MAAM,EAAEmF,WAAW,EAAEC,eAAe,EAAEC,QAAQ,EAAE,GAAGvE,eAAe;QAChEwE,WAAW;QACXJ;IACF;IAEA,MAAM,EACJK,WAAW,EACXC,OAAO,EACPC,QAAQ,EAAEC,KAAKzE,QAAQ,EAAE,EACzBM,SAAS,EACV,GAAGJ;IAEJ,MAAMD,mBACJa,kBAAkBwD,YAAYI,IAAI,CAAC,CAACC,aAAeA,WAAWnB,IAAI,KAAK1C;IAEzE,MAAMV,eAAee,cAAcoD,QAAQG,IAAI,CAAC,CAACE,SAAWA,OAAOpB,IAAI,KAAKrC;IAE5E,MAAMd,aAAaS,kBAAkBK;IAErC,MAAM,EAAE0D,eAAe,EAAE,GAAG/F;IAE5B,MAAMgG,eAAeD,gBAAgB;QAAE/D;QAAgBK;IAAW;IAElE,MAAM,EAAE4D,WAAW,EAAE,GAAGjG;IAExB,MAAMqB,WAAW4E,YAAY;QAC3BjE,gBAAgBb,kBAAkBuD;QAClCrC,YAAYf,cAAcoD;IAC5B;IAEA,qBACE,oBAACnE,8BACC,oBAACR;QAAemG,SAASF,cAAcG,YAAYC,MAAMtF;sBACzD,oBAACD;QACCqE,aAAaA;QACbmB,aAAalF,kBAAkBmF,UAAUhF,cAAcgF;QACvDlB,aAAaA;QACbC,iBAAiBA;QACjBC,UAAUA;QACVH,KAAKA;qBAEL,oBAAClE;QACCC,UAAUA;QACVC,kBAAkBA;QAClBC,QAAQA;QACRC,UAAUA;QACVC,cAAcA;QACdC,YAAYA;QACZC,WAAWA;;AAKrB,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui/forms/Form'\nimport type { FieldMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport type { LivePreviewConfig } from 'payload/config'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig, Data } from 'payload/types'\n\nimport { DocumentControls } from '@payloadcms/ui/elements/DocumentControls'\nimport { DocumentFields } from '@payloadcms/ui/elements/DocumentFields'\nimport { LoadingOverlay } from '@payloadcms/ui/elements/Loading'\nimport { Form } from '@payloadcms/ui/forms/Form'\nimport { SetViewActions } from '@payloadcms/ui/providers/Actions'\nimport { useComponentMap } from '@payloadcms/ui/providers/ComponentMap'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { OperationProvider } from '@payloadcms/ui/providers/Operation'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { getFormState } from '@payloadcms/ui/utilities/getFormState'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport { LivePreview } from './Preview/index.js'\nimport './index.scss'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n apiRoute: string\n collectionConfig?: ClientCollectionConfig\n config: ClientConfig\n fieldMap: FieldMap\n globalConfig?: ClientGlobalConfig\n schemaPath: string\n serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fieldMap,\n globalConfig,\n schemaPath,\n serverURL,\n}) => {\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 globalSlug,\n hasSavePermission,\n initialData,\n initialState,\n onSave: onSaveFromProps,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n\n const onSave = useCallback(\n (json) => {\n // reportUpdate({\n // id,\n // entitySlug: collectionConfig.slug,\n // updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n // })\n\n // if (auth && id === user.id) {\n // await refreshCookieAsync()\n // }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n id,\n onSaveFromProps,\n // refreshCookieAsync,\n // reportUpdate\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const docPreferences = await getDocPreferences()\n\n return getFormState({\n apiRoute,\n body: {\n id,\n docPreferences,\n formState: prevFormState,\n operation,\n schemaPath,\n },\n serverURL,\n })\n },\n [serverURL, apiRoute, id, operation, schemaPath, getDocPreferences],\n )\n\n // Allow the `DocumentInfoProvider` to hydrate\n if (!collectionSlug && !globalSlug) {\n return <LoadingOverlay />\n }\n\n return (\n <Fragment>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={!hasSavePermission}\n initialState={initialState}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={Boolean(id)}\n permissions={docPermissions}\n slug={collectionConfig?.slug || globalConfig?.slug}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fieldMap={fieldMap}\n forceSidebarWrap\n readOnly={!hasSavePermission}\n schemaPath={collectionSlug || globalSlug}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n </Fragment>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n breakpoints: LivePreviewConfig['breakpoints']\n initialData: Data\n url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const config = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const {\n collections,\n globals,\n routes: { 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 schemaPath = collectionSlug || globalSlug\n\n const { getComponentMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const { getFieldMap } = useComponentMap()\n\n const fieldMap = getFieldMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n return (\n <Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.LivePreview} />\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"names":["DocumentControls","DocumentFields","LoadingOverlay","Form","SetViewActions","useComponentMap","useConfig","useDocumentInfo","OperationProvider","useTranslation","getFormState","React","Fragment","useCallback","LeaveWithoutSaving","SetDocumentStepNav","SetDocumentTitle","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fieldMap","globalConfig","schemaPath","serverURL","id","AfterDocument","AfterFields","BeforeDocument","BeforeFields","action","apiURL","collectionSlug","disableActions","disableLeaveWithoutSaving","docPermissions","getDocPreferences","globalSlug","hasSavePermission","initialData","initialState","onSave","onSaveFromProps","operation","t","previewWindowType","json","onChange","formState","prevFormState","docPreferences","body","className","disabled","method","onSuccess","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","fallback","toString","data","isEditing","Boolean","permissions","slug","div","filter","join","forceSidebarWrap","readOnly","LivePreviewClient","props","breakpoints","url","isPopupOpen","openPopupWindow","popupRef","eventType","collections","globals","routes","api","find","collection","global","getComponentMap","componentMap","getFieldMap","actions","actionsMap","Edit","fieldSchema","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery';
|
|
|
3
3
|
import { notFound } from 'next/navigation.js';
|
|
4
4
|
import { isNumber } from 'payload/utilities';
|
|
5
5
|
import React from 'react';
|
|
6
|
-
import {
|
|
6
|
+
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
7
7
|
import { buildVersionColumns } from './buildColumns.js';
|
|
8
8
|
import { VersionsViewClient } from './index.client.js';
|
|
9
9
|
export const baseClass = 'versions';
|
|
@@ -66,7 +66,7 @@ export const VersionsView = async (props)=>{
|
|
|
66
66
|
i18n
|
|
67
67
|
});
|
|
68
68
|
const fetchURL = collectionSlug ? `${serverURL}${apiRoute}/${collectionSlug}/versions` : globalSlug ? `${serverURL}${apiRoute}/globals/${globalSlug}/versions` : '';
|
|
69
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(
|
|
69
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(SetDocumentStepNav, {
|
|
70
70
|
collectionSlug: collectionConfig?.slug,
|
|
71
71
|
globalSlug: globalConfig?.slug,
|
|
72
72
|
id: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import type { PaginatedDocs } from 'payload/database'\nimport type { EditViewComponent } from 'payload/types'\n\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/utilities'\nimport React from 'react'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import type { PaginatedDocs } from 'payload/database'\nimport type { EditViewComponent } from 'payload/types'\n\nimport { Gutter } from '@payloadcms/ui/elements/Gutter'\nimport { ListQueryProvider } from '@payloadcms/ui/providers/ListQuery'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/utilities'\nimport React from 'react'\n\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { buildVersionColumns } from './buildColumns.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nexport const baseClass = 'versions'\n\nexport const VersionsView: EditViewComponent = async (props) => {\n const { initPageResult, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n const { limit, page, sort } = searchParams\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n let versionsData: PaginatedDocs\n let limitToUse = isNumber(limit) ? Number(limit) : undefined\n\n if (collectionSlug) {\n limitToUse = limitToUse || collectionConfig.admin.pagination.defaultLimit\n try {\n versionsData = await payload.findVersions({\n collection: collectionSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n sort: sort as string,\n user,\n where: {\n parent: {\n equals: id,\n },\n },\n })\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n if (globalSlug) {\n limitToUse = limitToUse || 10\n try {\n versionsData = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page as string, 10) : undefined,\n sort: sort as string,\n user,\n })\n } catch (error) {\n console.error(error) // eslint-disable-line no-console\n }\n\n if (!versionsData) {\n return notFound()\n }\n }\n\n const columns = buildVersionColumns({\n collectionConfig,\n config,\n docID: id,\n globalConfig,\n i18n,\n })\n\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : globalSlug\n ? `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n : ''\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural || globalConfig?.label}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalConfig?.slug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n defaultLimit={limitToUse}\n defaultSort={sort as string}\n modifySearchParams\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </Gutter>\n </main>\n </React.Fragment>\n )\n}\n"],"names":["Gutter","ListQueryProvider","notFound","isNumber","React","SetDocumentStepNav","buildVersionColumns","VersionsViewClient","baseClass","VersionsView","props","initPageResult","searchParams","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","user","collectionSlug","slug","globalSlug","limit","page","sort","routes","api","apiRoute","serverURL","versionsData","limitToUse","Number","undefined","admin","pagination","defaultLimit","findVersions","collection","depth","overrideAccess","parseInt","toString","where","parent","equals","error","console","findGlobalVersions","columns","fetchURL","Fragment","pluralLabel","labels","plural","label","useAsTitle","view","t","main","className","data","defaultSort","modifySearchParams","paginationLimits","limits"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.11",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"terser-webpack-plugin": "^5.3.10",
|
|
43
43
|
"webpack": "^5.78.0",
|
|
44
44
|
"webpack-cli": "^5.1.4",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
45
|
+
"payload": "3.0.0-beta.11",
|
|
46
|
+
"@payloadcms/eslint-config": "1.1.1"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@dnd-kit/core": "6.0.8",
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"react-toastify": "8.2.0",
|
|
60
60
|
"sass": "^1.71.1",
|
|
61
61
|
"ws": "^8.16.0",
|
|
62
|
-
"@payloadcms/
|
|
63
|
-
"@payloadcms/
|
|
64
|
-
"@payloadcms/
|
|
62
|
+
"@payloadcms/translations": "3.0.0-beta.11",
|
|
63
|
+
"@payloadcms/graphql": "3.0.0-beta.11",
|
|
64
|
+
"@payloadcms/ui": "3.0.0-beta.11"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"http-status": "1.6.2",
|
|
68
68
|
"next": "^14.2.0-canary.23",
|
|
69
|
-
"payload": "3.0.0-beta.
|
|
69
|
+
"payload": "3.0.0-beta.11"
|
|
70
70
|
},
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Edit/Default/SetStepNav/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAUrF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,WAAW,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAmEA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Edit/Default/SetStepNav/index.tsx"],"sourcesContent":["'use client'\nimport type { StepNavItem } from '@payloadcms/ui/elements/StepNav'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useStepNav } from '@payloadcms/ui/elements/StepNav'\nimport { useConfig } from '@payloadcms/ui/providers/Config'\nimport { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport { useEffect } from 'react'\n\nexport const SetStepNav: React.FC<{\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalLabel?: SanitizedGlobalConfig['label']\n globalSlug?: SanitizedGlobalConfig['slug']\n id?: number | string\n pluralLabel?: SanitizedCollectionConfig['labels']['plural']\n useAsTitle?: SanitizedCollectionConfig['admin']['useAsTitle']\n view?: string\n}> = (props) => {\n const { id, collectionSlug, globalSlug, pluralLabel, useAsTitle } = props\n\n const view: string | undefined = props?.view || undefined\n\n const { isEditing, title } = useDocumentInfo()\n\n const { setStepNav } = useStepNav()\n\n const { i18n, t } = useTranslation()\n\n const {\n routes: { admin },\n } = useConfig()\n\n const drawerDepth = useEditDepth()\n\n useEffect(() => {\n const nav: StepNavItem[] = []\n\n if (collectionSlug) {\n nav.push({\n label: getTranslation(pluralLabel, i18n),\n url: `${admin}/collections/${collectionSlug}`,\n })\n\n if (isEditing) {\n nav.push({\n label: (useAsTitle && useAsTitle !== 'id' && title) || `${id}`,\n url: `${admin}/collections/${collectionSlug}/${id}`,\n })\n } else {\n nav.push({\n label: t('general:createNew'),\n })\n }\n } else if (globalSlug) {\n nav.push({\n label: title,\n url: `${admin}/globals/${globalSlug}`,\n })\n }\n\n if (view) {\n nav.push({\n label: view,\n })\n }\n\n if (drawerDepth <= 1) setStepNav(nav)\n }, [\n setStepNav,\n isEditing,\n pluralLabel,\n id,\n useAsTitle,\n admin,\n t,\n i18n,\n title,\n collectionSlug,\n globalSlug,\n view,\n drawerDepth,\n ])\n\n return null\n}\n"],"names":["getTranslation","useStepNav","useConfig","useDocumentInfo","useEditDepth","useTranslation","useEffect","SetStepNav","props","id","collectionSlug","globalSlug","pluralLabel","useAsTitle","view","undefined","isEditing","title","setStepNav","i18n","t","routes","admin","drawerDepth","nav","push","label","url"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,QAAO;AAEjC,OAAO,MAAMC,aAQR,CAACC;IACJ,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGL;IAEpE,MAAMM,OAA2BN,OAAOM,QAAQC;IAEhD,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGd;IAE7B,MAAM,EAAEe,UAAU,EAAE,GAAGjB;IAEvB,MAAM,EAAEkB,IAAI,EAAEC,CAAC,EAAE,GAAGf;IAEpB,MAAM,EACJgB,QAAQ,EAAEC,KAAK,EAAE,EAClB,GAAGpB;IAEJ,MAAMqB,cAAcnB;IAEpBE,UAAU;QACR,MAAMkB,MAAqB,EAAE;QAE7B,IAAId,gBAAgB;YAClBc,IAAIC,IAAI,CAAC;gBACPC,OAAO1B,eAAeY,aAAaO;gBACnCQ,KAAK,CAAC,EAAEL,MAAM,aAAa,EAAEZ,eAAe,CAAC;YAC/C;YAEA,IAAIM,WAAW;gBACbQ,IAAIC,IAAI,CAAC;oBACPC,OAAO,AAACb,cAAcA,eAAe,QAAQI,SAAU,CAAC,EAAER,GAAG,CAAC;oBAC9DkB,KAAK,CAAC,EAAEL,MAAM,aAAa,EAAEZ,eAAe,CAAC,EAAED,GAAG,CAAC;gBACrD;YACF,OAAO;gBACLe,IAAIC,IAAI,CAAC;oBACPC,OAAON,EAAE;gBACX;YACF;QACF,OAAO,IAAIT,YAAY;YACrBa,IAAIC,IAAI,CAAC;gBACPC,OAAOT;gBACPU,KAAK,CAAC,EAAEL,MAAM,SAAS,EAAEX,WAAW,CAAC;YACvC;QACF;QAEA,IAAIG,MAAM;YACRU,IAAIC,IAAI,CAAC;gBACPC,OAAOZ;YACT;QACF;QAEA,IAAIS,eAAe,GAAGL,WAAWM;IACnC,GAAG;QACDN;QACAF;QACAJ;QACAH;QACAI;QACAS;QACAF;QACAD;QACAF;QACAP;QACAC;QACAG;QACAS;KACD;IAED,OAAO;AACT,EAAC"}
|