@payloadcms/ui 3.0.1-canary.d608962 → 3.0.2-canary.f4f29e6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +28 -24
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Select/Input.d.ts +1 -0
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +44 -42
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +1 -0
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -2
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +12 -6
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +2 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +10 -6
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useAuth","requests","formatDocTitle","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","useGetDocPermissions","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","currentEditor","currentEditorFromProps","docPermissions","docPermissionsFromProps","globalSlug","hasPublishedDoc","hasPublishedDocFromProps","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermission","hasSavePermissionFromProps","initialData","data","initialState","isLocked","isLockedFromProps","lastUpdateTime","lastUpdateTimeFromProps","mostRecentVersionIsAutosaved","mostRecentVersionIsAutosavedFromProps","unpublishedVersionCount","unpublishedVersionCountFromProps","versionCount","versionCountFromProps","setDocPermissions","setHasSavePermission","setHasPublishPermission","permissions","config","admin","dateFormat","routes","api","serverURL","getEntityConfig","collectionConfig","globalConfig","abortControllerRef","AbortController","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","fallback","toString","setMostRecentVersionIsAutosaved","setVersionCount","setHasPublishedDoc","setUnpublishedVersionCount","documentIsLocked","setDocumentIsLocked","setCurrentEditor","setLastUpdateTime","isInitializing","undefined","getPreference","setPreference","code","locale","baseURL","slug","pluralType","preferencesKey","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","userData","relationTo","collection","value","patch","body","JSON","stringify","getDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","incrementVersionCount","versions","Math","min","maxPerDoc","max","re1","current","abort","_err","action","useMemo","docURL","params","depth","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n DocumentPreferences,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\nimport { useGetDocPermissions } from './useGetDocPermissions.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n currentEditor: currentEditorFromProps,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishedDoc: hasPublishedDocFromProps,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: data,\n initialState,\n isLocked: isLockedFromProps,\n lastUpdateTime: lastUpdateTimeFromProps,\n mostRecentVersionIsAutosaved: mostRecentVersionIsAutosavedFromProps,\n unpublishedVersionCount: unpublishedVersionCountFromProps,\n versionCount: versionCountFromProps,\n } = props\n\n const [docPermissions, setDocPermissions] =\n useState<SanitizedDocumentPermissions>(docPermissionsFromProps)\n\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const { permissions } = useAuth()\n\n const {\n config: {\n admin: { dateFormat },\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const abortControllerRef = useRef(new AbortController())\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() =>\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n\n const [mostRecentVersionIsAutosaved, setMostRecentVersionIsAutosaved] = useState(\n mostRecentVersionIsAutosavedFromProps,\n )\n const [versionCount, setVersionCount] = useState(versionCountFromProps)\n\n const [hasPublishedDoc, setHasPublishedDoc] = useState(hasPublishedDocFromProps)\n const [unpublishedVersionCount, setUnpublishedVersionCount] = useState(\n unpublishedVersionCountFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(isLockedFromProps)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(currentEditorFromProps)\n const [lastUpdateTime, setLastUpdateTime] = useState<number>(lastUpdateTimeFromProps)\n\n const isInitializing = initialState === undefined || data === undefined\n\n const { getPreference, setPreference } = usePreferences()\n const { code: locale } = useLocale()\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser | number | string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n const userData =\n typeof user === 'object'\n ? { relationTo: user.collection, value: user.id }\n : { relationTo: 'users', value: user }\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: userData,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const getDocPermissions = useGetDocPermissions({\n id: id as string,\n api,\n collectionSlug,\n globalSlug,\n i18n,\n locale,\n permissions,\n serverURL,\n setDocPermissions,\n setHasPublishPermission,\n setHasSavePermission,\n })\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const incrementVersionCount = useCallback(() => {\n if (collectionConfig && collectionConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, collectionConfig.versions.maxPerDoc))\n } else if (globalConfig && globalConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, globalConfig.versions.max))\n }\n }, [collectionConfig, globalConfig, versionCount])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, globalConfig, data, dateFormat, i18n, id])\n\n // clean on unmount\n useEffect(() => {\n const re1 = abortControllerRef.current\n\n return () => {\n if (re1) {\n try {\n re1.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }\n }, [])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n hasPublishedDoc,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialData: data,\n initialState,\n isInitializing,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n preferencesKey,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n setHasPublishedDoc,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n title: documentTitle,\n unlockDocument,\n unpublishedVersionCount,\n updateDocumentEditor,\n versionCount,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useAuth","requests","formatDocTitle","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","useGetDocPermissions","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","currentEditor","currentEditorFromProps","docPermissions","docPermissionsFromProps","globalSlug","hasPublishedDoc","hasPublishedDocFromProps","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermission","hasSavePermissionFromProps","initialData","initialState","isLocked","isLockedFromProps","lastUpdateTime","lastUpdateTimeFromProps","mostRecentVersionIsAutosaved","mostRecentVersionIsAutosavedFromProps","unpublishedVersionCount","unpublishedVersionCountFromProps","versionCount","versionCountFromProps","setDocPermissions","setHasSavePermission","setHasPublishPermission","permissions","config","admin","dateFormat","routes","api","serverURL","getEntityConfig","collectionConfig","globalConfig","abortControllerRef","AbortController","docConfig","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","setMostRecentVersionIsAutosaved","setVersionCount","setHasPublishedDoc","setUnpublishedVersionCount","documentIsLocked","setDocumentIsLocked","setCurrentEditor","setLastUpdateTime","savedDocumentData","setSavedDocumentData","isInitializing","undefined","getPreference","setPreference","code","locale","baseURL","slug","pluralType","preferencesKey","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","userData","relationTo","collection","value","patch","body","JSON","stringify","getDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","incrementVersionCount","versions","Math","min","maxPerDoc","max","updateSavedDocumentData","re1","current","abort","_err","action","useMemo","docURL","params","depth","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n DocumentPreferences,\n SanitizedDocumentPermissions,\n} from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\nimport { useGetDocPermissions } from './useGetDocPermissions.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n currentEditor: currentEditorFromProps,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishedDoc: hasPublishedDocFromProps,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData,\n initialState,\n isLocked: isLockedFromProps,\n lastUpdateTime: lastUpdateTimeFromProps,\n mostRecentVersionIsAutosaved: mostRecentVersionIsAutosavedFromProps,\n unpublishedVersionCount: unpublishedVersionCountFromProps,\n versionCount: versionCountFromProps,\n } = props\n\n const [docPermissions, setDocPermissions] =\n useState<SanitizedDocumentPermissions>(docPermissionsFromProps)\n\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const { permissions } = useAuth()\n\n const {\n config: {\n admin: { dateFormat },\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const abortControllerRef = useRef(new AbortController())\n const docConfig = collectionConfig || globalConfig\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() =>\n formatDocTitle({\n collectionConfig,\n data: { ...(initialData || {}), id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n\n const [mostRecentVersionIsAutosaved, setMostRecentVersionIsAutosaved] = useState(\n mostRecentVersionIsAutosavedFromProps,\n )\n const [versionCount, setVersionCount] = useState(versionCountFromProps)\n\n const [hasPublishedDoc, setHasPublishedDoc] = useState(hasPublishedDocFromProps)\n const [unpublishedVersionCount, setUnpublishedVersionCount] = useState(\n unpublishedVersionCountFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(isLockedFromProps)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(currentEditorFromProps)\n const [lastUpdateTime, setLastUpdateTime] = useState<number>(lastUpdateTimeFromProps)\n const [savedDocumentData, setSavedDocumentData] = useState(initialData)\n\n const isInitializing = initialState === undefined || initialData === undefined\n\n const { getPreference, setPreference } = usePreferences()\n const { code: locale } = useLocale()\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser | number | string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n const userData =\n typeof user === 'object'\n ? { relationTo: user.collection, value: user.id }\n : { relationTo: 'users', value: user }\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: userData,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const getDocPermissions = useGetDocPermissions({\n id: id as string,\n api,\n collectionSlug,\n globalSlug,\n i18n,\n locale,\n permissions,\n serverURL,\n setDocPermissions,\n setHasPublishPermission,\n setHasSavePermission,\n })\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const incrementVersionCount = useCallback(() => {\n if (collectionConfig && collectionConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, collectionConfig.versions.maxPerDoc))\n } else if (globalConfig && globalConfig.versions) {\n setVersionCount(Math.min(versionCount + 1, globalConfig.versions.max))\n }\n }, [collectionConfig, globalConfig, versionCount])\n\n const updateSavedDocumentData = React.useCallback<DocumentInfoContext['updateSavedDocumentData']>(\n (json) => {\n setSavedDocumentData(json)\n },\n [],\n )\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...savedDocumentData, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, globalConfig, savedDocumentData, dateFormat, i18n, id])\n\n // clean on unmount\n useEffect(() => {\n const re1 = abortControllerRef.current\n\n return () => {\n if (re1) {\n try {\n re1.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }\n }, [])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n hasPublishedDoc,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialData,\n initialState,\n isInitializing,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n preferencesKey,\n savedDocumentData,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n setHasPublishedDoc,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n title: documentTitle,\n unlockDocument,\n unpublishedVersionCount,\n updateDocumentEditor,\n updateSavedDocumentData,\n versionCount,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,6 +43,7 @@ export type DocumentInfoContext = {
|
|
|
43
43
|
lastUpdateTime?: number;
|
|
44
44
|
mostRecentVersionIsAutosaved: boolean;
|
|
45
45
|
preferencesKey?: string;
|
|
46
|
+
savedDocumentData?: Data;
|
|
46
47
|
setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>;
|
|
47
48
|
setDocFieldPreferences: (field: string, fieldPreferences: {
|
|
48
49
|
[key: string]: unknown;
|
|
@@ -57,6 +58,7 @@ export type DocumentInfoContext = {
|
|
|
57
58
|
unlockDocument: (docId: number | string, slug: string) => Promise<void>;
|
|
58
59
|
unpublishedVersionCount: number;
|
|
59
60
|
updateDocumentEditor: (docId: number | string, slug: string, user: ClientUser) => Promise<void>;
|
|
61
|
+
updateSavedDocumentData: (data: Data) => void;
|
|
60
62
|
versionCount: number;
|
|
61
63
|
} & DocumentInfoProps;
|
|
62
64
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n hasPublishedDoc: boolean\n incrementVersionCount: () => void\n initialData: Data\n initialState?: FormState\n isInitializing: boolean\n lastUpdateTime?: number\n mostRecentVersionIsAutosaved: boolean\n preferencesKey?: string\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n title: string\n unlockDocument: (docId: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docId: number | string, slug: string, user: ClientUser) => Promise<void>\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"AA6CA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n hasPublishedDoc: boolean\n incrementVersionCount: () => void\n initialData: Data\n initialState?: FormState\n isInitializing: boolean\n lastUpdateTime?: number\n mostRecentVersionIsAutosaved: boolean\n preferencesKey?: string\n savedDocumentData?: Data\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n title: string\n unlockDocument: (docId: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docId: number | string, slug: string, user: ClientUser) => Promise<void>\n updateSavedDocumentData: (data: Data) => void\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"AA6CA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,SAAS,CAAA;AAChB,OAAO,KAA6D,MAAM,OAAO,CAAA;AA2BjF,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,uBAAuB,EAE7B,MAAM,SAAS,CAAA;AAChB,OAAO,KAA6D,MAAM,OAAO,CAAA;AA2BjF,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAygB7D,CAAA"}
|
package/dist/views/Edit/index.js
CHANGED
|
@@ -61,17 +61,18 @@ export const DefaultEditView = ({
|
|
|
61
61
|
hasPublishPermission,
|
|
62
62
|
hasSavePermission,
|
|
63
63
|
incrementVersionCount,
|
|
64
|
-
initialData: data,
|
|
65
64
|
initialState,
|
|
66
65
|
isEditing,
|
|
67
66
|
isInitializing,
|
|
68
67
|
lastUpdateTime,
|
|
69
68
|
redirectAfterDelete,
|
|
70
69
|
redirectAfterDuplicate,
|
|
70
|
+
savedDocumentData,
|
|
71
71
|
setCurrentEditor,
|
|
72
72
|
setDocumentIsLocked,
|
|
73
73
|
unlockDocument,
|
|
74
|
-
updateDocumentEditor
|
|
74
|
+
updateDocumentEditor,
|
|
75
|
+
updateSavedDocumentData
|
|
75
76
|
} = useDocumentInfo();
|
|
76
77
|
const {
|
|
77
78
|
clearDoc,
|
|
@@ -177,6 +178,9 @@ export const DefaultEditView = ({
|
|
|
177
178
|
void refreshCookieAsync();
|
|
178
179
|
}
|
|
179
180
|
incrementVersionCount();
|
|
181
|
+
if (typeof updateSavedDocumentData === 'function') {
|
|
182
|
+
void updateSavedDocumentData(json?.doc || {});
|
|
183
|
+
}
|
|
180
184
|
if (typeof onSaveFromContext === 'function') {
|
|
181
185
|
void onSaveFromContext({
|
|
182
186
|
...json,
|
|
@@ -198,7 +202,7 @@ export const DefaultEditView = ({
|
|
|
198
202
|
resetUploadEdits();
|
|
199
203
|
}
|
|
200
204
|
await getDocPermissions(json);
|
|
201
|
-
}, [reportUpdate, id, entitySlug, user, collectionSlug, userSlug, incrementVersionCount, onSaveFromContext, globalSlug, isLockingEnabled, isEditing, depth, getDocPermissions, refreshCookieAsync, setDocumentIsLocked, adminRoute, locale, router, resetUploadEdits]);
|
|
205
|
+
}, [updateSavedDocumentData, reportUpdate, id, entitySlug, user, collectionSlug, userSlug, incrementVersionCount, onSaveFromContext, globalSlug, isLockingEnabled, isEditing, depth, getDocPermissions, refreshCookieAsync, setDocumentIsLocked, adminRoute, locale, router, resetUploadEdits]);
|
|
202
206
|
const onChange = useCallback(async ({
|
|
203
207
|
formState: prevFormState
|
|
204
208
|
}) => {
|
|
@@ -341,7 +345,7 @@ export const DefaultEditView = ({
|
|
|
341
345
|
SaveButton,
|
|
342
346
|
SaveDraftButton
|
|
343
347
|
},
|
|
344
|
-
data:
|
|
348
|
+
data: savedDocumentData,
|
|
345
349
|
disableActions: disableActions,
|
|
346
350
|
disableCreate: disableCreate,
|
|
347
351
|
hasPublishPermission: hasPublishPermission,
|
|
@@ -366,7 +370,7 @@ export const DefaultEditView = ({
|
|
|
366
370
|
className: `${baseClass}__auth`,
|
|
367
371
|
collectionSlug: collectionConfig.slug,
|
|
368
372
|
disableLocalStrategy: collectionConfig.auth?.disableLocalStrategy,
|
|
369
|
-
email:
|
|
373
|
+
email: savedDocumentData?.email,
|
|
370
374
|
loginWithUsername: auth?.loginWithUsername,
|
|
371
375
|
operation: operation,
|
|
372
376
|
readOnly: !hasSavePermission,
|
|
@@ -374,7 +378,7 @@ export const DefaultEditView = ({
|
|
|
374
378
|
setSchemaPathSegments: setSchemaPathSegments,
|
|
375
379
|
setValidateBeforeSubmit: setValidateBeforeSubmit,
|
|
376
380
|
useAPIKey: auth.useAPIKey,
|
|
377
|
-
username:
|
|
381
|
+
username: savedDocumentData?.username,
|
|
378
382
|
verify: auth.verify
|
|
379
383
|
}), upload && /*#__PURE__*/_jsx(React.Fragment, {
|
|
380
384
|
children: CustomUpload || /*#__PURE__*/_jsx(Upload, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","Fragment","useCallback","useEffect","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","formatAdminURL","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialData","data","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterDelete","redirectAfterDuplicate","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","onChangeAbortControllerRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","preventLeaveWithoutSaving","versions","drafts","autosave","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","setSchemaPathSegments","disableLocalStrategy","validateBeforeSubmit","setValidateBeforeSubmit","json","updatedAt","result","toISOString","redirectRoute","path","doc","onChange","formState","prevFormState","current","controller","AbortController","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","renderAllFields","returnLockStatus","schemaPath","join","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","includes","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport {\n type ClientCollectionConfig,\n type ClientGlobalConfig,\n type ClientSideEditViewProps,\n type ClientUser,\n} from 'payload'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport './index.scss'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\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<ClientSideEditViewProps> = ({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialData: data,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterDelete,\n redirectAfterDuplicate,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n\n const onChangeAbortControllerRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const 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 let preventLeaveWithoutSaving = true\n\n if (collectionConfig) {\n preventLeaveWithoutSaving = !(\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave\n )\n } else if (globalConfig) {\n preventLeaveWithoutSaving = !(\n globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave\n )\n } else if (typeof disableLeaveWithoutSaving !== 'undefined') {\n preventLeaveWithoutSaving = !disableLeaveWithoutSaving\n }\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\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 classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const [schemaPathSegments, setSchemaPathSegments] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return [`_${entitySlug}`, 'auth']\n }\n\n return [entitySlug]\n })\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const onSave = useCallback(\n async (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 incrementVersionCount()\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n onSaveFromContext,\n globalSlug,\n isLockingEnabled,\n isEditing,\n depth,\n getDocPermissions,\n refreshCookieAsync,\n setDocumentIsLocked,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.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 // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only wanna render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath: schemaPathSegments.join('.'),\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 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 schemaPathSegments,\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(onChangeAbortControllerRef.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 !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\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 {!isReadOnlyForIncomingUser && 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 customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={data}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\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 redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPathSegments={setSchemaPathSegments}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","Fragment","useCallback","useEffect","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","formatAdminURL","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","onChangeAbortControllerRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","preventLeaveWithoutSaving","versions","drafts","autosave","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","setSchemaPathSegments","disableLocalStrategy","validateBeforeSubmit","setValidateBeforeSubmit","json","updatedAt","result","toISOString","doc","redirectRoute","path","onChange","formState","prevFormState","current","controller","AbortController","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","renderAllFields","returnLockStatus","schemaPath","join","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","includes","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","data","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport {\n type ClientCollectionConfig,\n type ClientGlobalConfig,\n type ClientSideEditViewProps,\n type ClientUser,\n} from 'payload'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport './index.scss'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\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<ClientSideEditViewProps> = ({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n\n const onChangeAbortControllerRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const 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 let preventLeaveWithoutSaving = true\n\n if (collectionConfig) {\n preventLeaveWithoutSaving = !(\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave\n )\n } else if (globalConfig) {\n preventLeaveWithoutSaving = !(\n globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave\n )\n } else if (typeof disableLeaveWithoutSaving !== 'undefined') {\n preventLeaveWithoutSaving = !disableLeaveWithoutSaving\n }\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\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 classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const [schemaPathSegments, setSchemaPathSegments] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return [`_${entitySlug}`, 'auth']\n }\n\n return [entitySlug]\n })\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const onSave = useCallback(\n async (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 incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(json?.doc || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n },\n [\n updateSavedDocumentData,\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n onSaveFromContext,\n globalSlug,\n isLockingEnabled,\n isEditing,\n depth,\n getDocPermissions,\n refreshCookieAsync,\n setDocumentIsLocked,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.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 // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only wanna render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath: schemaPathSegments.join('.'),\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 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 schemaPathSegments,\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(onChangeAbortControllerRef.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 !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\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 {!isReadOnlyForIncomingUser && 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 customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\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 redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\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={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setSchemaPathSegments={setSchemaPathSegments}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2-canary.f4f29e6",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
"ts-essentials": "10.0.3",
|
|
134
134
|
"use-context-selector": "2.0.0",
|
|
135
135
|
"uuid": "10.0.0",
|
|
136
|
-
"@payloadcms/translations": "3.0.
|
|
136
|
+
"@payloadcms/translations": "3.0.2-canary.f4f29e6"
|
|
137
137
|
},
|
|
138
138
|
"devDependencies": {
|
|
139
139
|
"@babel/cli": "^7.24.5",
|
|
@@ -151,14 +151,14 @@
|
|
|
151
151
|
"esbuild": "0.23.1",
|
|
152
152
|
"esbuild-sass-plugin": "3.3.1",
|
|
153
153
|
"eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110",
|
|
154
|
-
"
|
|
155
|
-
"
|
|
154
|
+
"payload": "3.0.2-canary.f4f29e6",
|
|
155
|
+
"@payloadcms/eslint-config": "3.0.0"
|
|
156
156
|
},
|
|
157
157
|
"peerDependencies": {
|
|
158
158
|
"next": "^15.0.0",
|
|
159
159
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
160
160
|
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
161
|
-
"payload": "3.0.
|
|
161
|
+
"payload": "3.0.2-canary.f4f29e6"
|
|
162
162
|
},
|
|
163
163
|
"engines": {
|
|
164
164
|
"node": "^18.20.2 || >=20.9.0"
|