@payloadcms/next 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { getPayload } from 'payload';
2
2
  export const getPayloadHMR = async options => {
3
3
  const result = await getPayload(options);
4
- result.logger.error("Deprecation warning: getPayloadHMR is no longer preferred. You can now use `import { getPayload } from 'payload' in all contexts.");
4
+ result.logger.warn("Deprecation warning: getPayloadHMR is no longer preferred. You can now use `import { getPayload } from 'payload' in all contexts.");
5
5
  return result;
6
6
  };
7
7
  //# sourceMappingURL=getPayloadHMR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPayloadHMR.js","names":["getPayload","getPayloadHMR","options","result","logger","error"],"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload } from 'payload'\n\nimport { getPayload } from 'payload'\n\nexport const getPayloadHMR = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n const result = await getPayload(options)\n\n result.logger.error(\n \"Deprecation warning: getPayloadHMR is no longer preferred. You can now use `import { getPayload } from 'payload' in all contexts.\",\n )\n\n return result\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAE3B,OAAO,MAAMC,aAAA,GAAgB,MAC3BC,OAAA;EAEA,MAAMC,MAAA,GAAS,MAAMH,UAAA,CAAWE,OAAA;EAEhCC,MAAA,CAAOC,MAAM,CAACC,KAAK,CACjB;EAGF,OAAOF,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getPayloadHMR.js","names":["getPayload","getPayloadHMR","options","result","logger","warn"],"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload } from 'payload'\n\nimport { getPayload } from 'payload'\n\nexport const getPayloadHMR = async (\n options: Pick<InitOptions, 'config' | 'importMap'>,\n): Promise<Payload> => {\n const result = await getPayload(options)\n\n result.logger.warn(\n \"Deprecation warning: getPayloadHMR is no longer preferred. You can now use `import { getPayload } from 'payload' in all contexts.\",\n )\n\n return result\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAE3B,OAAO,MAAMC,aAAA,GAAgB,MAC3BC,OAAA;EAEA,MAAMC,MAAA,GAAS,MAAMH,UAAA,CAAWE,OAAA;EAEhCC,MAAA,CAAOC,MAAM,CAACC,IAAI,CAChB;EAGF,OAAOF,MAAA;AACT","ignoreList":[]}
@@ -166,7 +166,7 @@ const PreviewView = ({
166
166
  }
167
167
  }
168
168
  return state;
169
- }, [editSessionStartTime, isLockingEnabled, getDocPreferences, getFormState, id, collectionSlug, docPermissions, globalSlug, operation, schemaPath, setDocumentIsLocked, user.id, setCurrentEditor]);
169
+ }, [editSessionStartTime, isLockingEnabled, getDocPreferences, getFormState, id, collectionSlug, docPermissions, globalSlug, operation, schemaPath, setDocumentIsLocked, user?.id, setCurrentEditor]);
170
170
  // Clean up when the component unmounts or when the document is unlocked
171
171
  useEffect(() => {
172
172
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","DocumentLocked","DocumentTakeOver","Form","LeaveWithoutSaving","OperationProvider","SetDocumentStepNav","SetDocumentTitle","useAuth","useConfig","useDocumentDrawerContext","useDocumentEvents","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","collectionConfig","config","fields","globalConfig","schemaPath","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","lastUpdateTime","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","getFormState","onSave","onSaveFromProps","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","formStateAbortControllerRef","AbortController","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","current","controller","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","returnLockStatus","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","schemaPathSegments","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","serverURL","api","apiRoute","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n DocumentLocked,\n DocumentTakeOver,\n Form,\n LeaveWithoutSaving,\n OperationProvider,\n SetDocumentStepNav,\n SetDocumentTitle,\n useAuth,\n useConfig,\n useDocumentDrawerContext,\n useDocumentEvents,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n abortAndIgnore,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const { getFormState } = useServerFunctions()\n\n const { onSave: onSaveFromProps } = useDocumentDrawerContext()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const formStateAbortControllerRef = useRef(new AbortController())\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\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 // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(formStateAbortControllerRef.current)\n\n const controller = new AbortController()\n formStateAbortControllerRef.current = controller\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n signal: controller.signal,\n updateLastEdited,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n }\n\n return state\n },\n [\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPath,\n setDocumentIsLocked,\n user.id,\n setCurrentEditor,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n return () => {\n abortAndIgnore(formStateAbortControllerRef.current)\n }\n })\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <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 hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\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 <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={[collectionSlug || globalSlug]}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\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 fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","DocumentLocked","DocumentTakeOver","Form","LeaveWithoutSaving","OperationProvider","SetDocumentStepNav","SetDocumentTitle","useAuth","useConfig","useDocumentDrawerContext","useDocumentEvents","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","collectionConfig","config","fields","globalConfig","schemaPath","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","lastUpdateTime","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","getFormState","onSave","onSaveFromProps","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","formStateAbortControllerRef","AbortController","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","current","controller","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","returnLockStatus","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","schemaPathSegments","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","serverURL","api","apiRoute","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n DocumentLocked,\n DocumentTakeOver,\n Form,\n LeaveWithoutSaving,\n OperationProvider,\n SetDocumentStepNav,\n SetDocumentTitle,\n useAuth,\n useConfig,\n useDocumentDrawerContext,\n useDocumentEvents,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n abortAndIgnore,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const { getFormState } = useServerFunctions()\n\n const { onSave: onSaveFromProps } = useDocumentDrawerContext()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const formStateAbortControllerRef = useRef(new AbortController())\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\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 // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(formStateAbortControllerRef.current)\n\n const controller = new AbortController()\n formStateAbortControllerRef.current = controller\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n signal: controller.signal,\n updateLastEdited,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n }\n\n return state\n },\n [\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPath,\n setDocumentIsLocked,\n user?.id,\n setCurrentEditor,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n return () => {\n abortAndIgnore(formStateAbortControllerRef.current)\n }\n })\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <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 hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\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 <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={[collectionSlug || globalSlug]}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\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 fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
- import { fieldAffectsData } from 'payload/shared';
4
+ import { fieldAffectsData, fieldIsID } from 'payload/shared';
5
5
  import React from 'react';
6
6
  import { diffMethods } from './fields/diffMethods.js';
7
7
  import Nested from './fields/Nested/index.js';
@@ -21,7 +21,7 @@ const RenderFieldsToDiff = ({
21
21
  return /*#__PURE__*/_jsx("div", {
22
22
  className: baseClass,
23
23
  children: fields?.map((field, i) => {
24
- if ('name' in field && field.name === 'id') {
24
+ if (fieldIsID(field)) {
25
25
  return null;
26
26
  }
27
27
  const Component = diffComponents[field.type];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldAffectsData","React","diffMethods","Nested","baseClass","RenderFieldsToDiff","comparison","diffComponents","__diffComponents","fieldPermissions","fields","i18n","locales","version","_jsx","className","map","field","i","name","Component","type","isRichText","diffMethod","fieldName","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","subFieldPermissions","baseCellProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs","disableGutter"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport { fieldAffectsData } from 'payload/shared'\nimport React from 'react'\n\nimport type { diffComponents as _diffComponents } from './fields/index.js'\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport { diffMethods } from './fields/diffMethods.js'\nimport Nested from './fields/Nested/index.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nconst RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents: __diffComponents,\n fieldPermissions,\n fields,\n i18n,\n locales,\n version,\n}) => {\n // typing it as `as typeof _diffComponents` here ensures the TField generics of DiffComponentProps are respected.\n // Without it, you could pass a UI field to the Tabs component, without it erroring\n const diffComponents: typeof _diffComponents = __diffComponents as typeof _diffComponents\n\n return (\n <div className={baseClass}>\n {fields?.map((field, i) => {\n if ('name' in field && field.name === 'id') {\n return null\n }\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (fieldAffectsData(field)) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.read\n\n const subFieldPermissions =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.fields\n\n if (!hasPermission) {\n return null\n }\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldPermissions: subFieldPermissions,\n fields: 'fields' in field ? field?.fields : fields,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={[]}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a `row`, etc\n if ('fields' in field) {\n return (\n <Nested\n comparison={comparison}\n diffComponents={diffComponents}\n disableGutter\n field={field}\n fieldPermissions={fieldPermissions}\n fields={field.fields}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n\nexport default RenderFieldsToDiff\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldAffectsData","fieldIsID","React","diffMethods","Nested","baseClass","RenderFieldsToDiff","comparison","diffComponents","__diffComponents","fieldPermissions","fields","i18n","locales","version","_jsx","className","map","field","i","Component","type","isRichText","diffMethod","fieldName","name","valueIsObject","versionValue","JSON","stringify","comparisonValue","hasPermission","read","subFieldPermissions","baseCellProps","localized","locale","index","versionLocaleValue","comparisonLocaleValue","cellProps","join","Tabs","tabs","disableGutter"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["'use client'\nimport type { DiffMethod } from 'react-diff-viewer-continued'\n\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react'\n\nimport type { diffComponents as _diffComponents } from './fields/index.js'\nimport type { FieldDiffProps, Props } from './types.js'\n\nimport { diffMethods } from './fields/diffMethods.js'\nimport Nested from './fields/Nested/index.js'\nimport './index.scss'\n\nconst baseClass = 'render-field-diffs'\n\nconst RenderFieldsToDiff: React.FC<Props> = ({\n comparison,\n diffComponents: __diffComponents,\n fieldPermissions,\n fields,\n i18n,\n locales,\n version,\n}) => {\n // typing it as `as typeof _diffComponents` here ensures the TField generics of DiffComponentProps are respected.\n // Without it, you could pass a UI field to the Tabs component, without it erroring\n const diffComponents: typeof _diffComponents = __diffComponents as typeof _diffComponents\n\n return (\n <div className={baseClass}>\n {fields?.map((field, i) => {\n if (fieldIsID(field)) {\n return null\n }\n\n const Component = diffComponents[field.type]\n\n const isRichText = field.type === 'richText'\n const diffMethod: DiffMethod = diffMethods[field.type] || 'CHARS'\n\n if (Component) {\n if (fieldAffectsData(field)) {\n const fieldName = field.name\n const valueIsObject = field.type === 'code' || field.type === 'json'\n\n const versionValue = valueIsObject\n ? JSON.stringify(version?.[fieldName])\n : version?.[fieldName]\n\n const comparisonValue = valueIsObject\n ? JSON.stringify(comparison?.[fieldName])\n : comparison?.[fieldName]\n\n const hasPermission =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.read\n\n const subFieldPermissions =\n fieldPermissions === true ||\n fieldPermissions?.[fieldName] === true ||\n fieldPermissions?.[fieldName]?.fields\n\n if (!hasPermission) {\n return null\n }\n\n const baseCellProps: FieldDiffProps = {\n comparison: comparisonValue,\n diffComponents,\n diffMethod,\n field,\n fieldPermissions: subFieldPermissions,\n fields: 'fields' in field ? field?.fields : fields,\n i18n,\n isRichText,\n locales,\n version: versionValue,\n }\n\n if (field.localized) {\n return (\n <div className={`${baseClass}__field`} key={i}>\n {locales.map((locale, index) => {\n const versionLocaleValue = versionValue?.[locale]\n const comparisonLocaleValue = comparisonValue?.[locale]\n\n const cellProps = {\n ...baseCellProps,\n comparison: comparisonLocaleValue,\n version: versionLocaleValue,\n }\n\n return (\n <div className={`${baseClass}__locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__locale-value`}>\n <Component {...cellProps} locale={locale} />\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={`${baseClass}__field`} key={i}>\n <Component {...baseCellProps} />\n </div>\n )\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const Tabs = diffComponents.tabs\n\n return (\n <Tabs\n comparison={comparison}\n diffComponents={diffComponents}\n field={field}\n fieldPermissions={fieldPermissions}\n fields={[]}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n\n // At this point, we are dealing with a `row`, etc\n if ('fields' in field) {\n return (\n <Nested\n comparison={comparison}\n diffComponents={diffComponents}\n disableGutter\n field={field}\n fieldPermissions={fieldPermissions}\n fields={field.fields}\n i18n={i18n}\n key={i}\n locales={locales}\n version={version}\n />\n )\n }\n }\n\n return null\n })}\n </div>\n )\n}\n\nexport default RenderFieldsToDiff\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,9 +79,9 @@
79
79
  "sass": "1.77.4",
80
80
  "sonner": "^1.7.0",
81
81
  "uuid": "10.0.0",
82
- "@payloadcms/graphql": "3.3.0",
83
- "@payloadcms/translations": "3.3.0",
84
- "@payloadcms/ui": "3.3.0"
82
+ "@payloadcms/graphql": "3.4.0",
83
+ "@payloadcms/translations": "3.4.0",
84
+ "@payloadcms/ui": "3.4.0"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@babel/cli": "7.25.9",
@@ -99,13 +99,13 @@
99
99
  "esbuild-sass-plugin": "3.3.1",
100
100
  "eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124",
101
101
  "swc-plugin-transform-remove-imports": "2.0.0",
102
- "@payloadcms/eslint-config": "3.0.0",
103
- "payload": "3.3.0"
102
+ "payload": "3.4.0",
103
+ "@payloadcms/eslint-config": "3.0.0"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "graphql": "^16.8.1",
107
107
  "next": "^15.0.0",
108
- "payload": "3.3.0"
108
+ "payload": "3.4.0"
109
109
  },
110
110
  "engines": {
111
111
  "node": "^18.20.2 || >=20.9.0"
@@ -1,3 +0,0 @@
1
- import type { EditViewProps, ServerSideEditViewProps } from 'payload';
2
- export declare const sanitizeEditViewProps: (props: ServerSideEditViewProps) => EditViewProps;
3
- //# sourceMappingURL=sanitizeEditViewProps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitizeEditViewProps.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/sanitizeEditViewProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAErE,eAAO,MAAM,qBAAqB,UAAW,uBAAuB,KAAG,aAMtE,CAAA"}
@@ -1,10 +0,0 @@
1
- export const sanitizeEditViewProps = props => {
2
- const clientSideProps = {
3
- ...props
4
- };
5
- delete clientSideProps.initPageResult.req;
6
- delete clientSideProps.initPageResult.collectionConfig;
7
- delete clientSideProps.initPageResult.globalConfig;
8
- return clientSideProps;
9
- };
10
- //# sourceMappingURL=sanitizeEditViewProps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitizeEditViewProps.js","names":["sanitizeEditViewProps","props","clientSideProps","initPageResult","req","collectionConfig","globalConfig"],"sources":["../../../src/views/Edit/sanitizeEditViewProps.ts"],"sourcesContent":["import type { EditViewProps, ServerSideEditViewProps } from 'payload'\n\nexport const sanitizeEditViewProps = (props: ServerSideEditViewProps): EditViewProps => {\n const clientSideProps = { ...props }\n delete clientSideProps.initPageResult.req\n delete clientSideProps.initPageResult.collectionConfig\n delete clientSideProps.initPageResult.globalConfig\n return clientSideProps as EditViewProps\n}\n"],"mappings":"AAEA,OAAO,MAAMA,qBAAA,GAAyBC,KAAA;EACpC,MAAMC,eAAA,GAAkB;IAAE,GAAGD;EAAM;EACnC,OAAOC,eAAA,CAAgBC,cAAc,CAACC,GAAG;EACzC,OAAOF,eAAA,CAAgBC,cAAc,CAACE,gBAAgB;EACtD,OAAOH,eAAA,CAAgBC,cAAc,CAACG,YAAY;EAClD,OAAOJ,eAAA;AACT","ignoreList":[]}