@payloadcms/ui 3.41.0-internal.c079756 → 3.41.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.
Files changed (122) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +2 -1
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentControls/index.js +2 -1
  6. package/dist/elements/DocumentControls/index.js.map +1 -1
  7. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +1 -0
  8. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  9. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +30 -19
  10. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerHeader/index.scss +16 -8
  12. package/dist/elements/DrawerActionHeader/index.d.ts +2 -1
  13. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  14. package/dist/elements/DrawerActionHeader/index.js +41 -30
  15. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  16. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  17. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  18. package/dist/elements/EmailAndUsername/index.js +3 -0
  19. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  20. package/dist/elements/FolderView/Cell/index.client.d.ts +6 -5
  21. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  22. package/dist/elements/FolderView/Cell/index.client.js +6 -3
  23. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  24. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  25. package/dist/elements/FolderView/Cell/index.server.js +4 -0
  26. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  27. package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
  28. package/dist/elements/FolderView/CollectionTypePill/index.js +20 -18
  29. package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
  30. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  31. package/dist/elements/FolderView/CurrentFolderActions/index.js +20 -14
  32. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  33. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +9 -0
  34. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
  35. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +36 -0
  36. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
  37. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +2 -0
  38. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +120 -101
  40. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  41. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +1 -1
  42. package/dist/elements/FolderView/Field/index.server.d.ts.map +1 -1
  43. package/dist/elements/FolderView/Field/index.server.js +4 -0
  44. package/dist/elements/FolderView/Field/index.server.js.map +1 -1
  45. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +19 -16
  46. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
  47. package/dist/elements/FolderView/MoveDocToFolder/index.js +52 -41
  48. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  49. package/dist/elements/ListFolderPills/index.d.ts +4 -3
  50. package/dist/elements/ListFolderPills/index.d.ts.map +1 -1
  51. package/dist/elements/ListFolderPills/index.js +5 -1
  52. package/dist/elements/ListFolderPills/index.js.map +1 -1
  53. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
  54. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +75 -55
  55. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  56. package/dist/elements/Upload/index.scss +2 -3
  57. package/dist/elements/WhereBuilder/reduceFields.d.ts.map +1 -1
  58. package/dist/elements/WhereBuilder/reduceFields.js +1 -28
  59. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
  60. package/dist/exports/client/{CodeEditor-7N7BMHRP.js → CodeEditor-Z3ZZJH7C.js} +2 -2
  61. package/dist/exports/client/chunk-CNCOIY3Y.js +26 -0
  62. package/dist/exports/client/{chunk-QPA2ZA5J.js.map → chunk-CNCOIY3Y.js.map} +3 -3
  63. package/dist/exports/client/index.d.ts +0 -1
  64. package/dist/exports/client/index.d.ts.map +1 -1
  65. package/dist/exports/client/index.js +22 -22
  66. package/dist/exports/client/index.js.map +4 -4
  67. package/dist/exports/shared/index.js +2 -2
  68. package/dist/exports/shared/index.js.map +1 -1
  69. package/dist/fields/Number/index.d.ts.map +1 -1
  70. package/dist/fields/Number/index.js +4 -3
  71. package/dist/fields/Number/index.js.map +1 -1
  72. package/dist/fields/Text/Input.d.ts.map +1 -1
  73. package/dist/fields/Text/Input.js +55 -52
  74. package/dist/fields/Text/Input.js.map +1 -1
  75. package/dist/fields/Text/index.d.ts.map +1 -1
  76. package/dist/fields/Text/index.js +4 -0
  77. package/dist/fields/Text/index.js.map +1 -1
  78. package/dist/fields/Text/types.d.ts +4 -1
  79. package/dist/fields/Text/types.d.ts.map +1 -1
  80. package/dist/fields/Text/types.js.map +1 -1
  81. package/dist/providers/Config/index.d.ts.map +1 -1
  82. package/dist/providers/Config/index.js +12 -6
  83. package/dist/providers/Config/index.js.map +1 -1
  84. package/dist/providers/Folders/index.d.ts +10 -2
  85. package/dist/providers/Folders/index.d.ts.map +1 -1
  86. package/dist/providers/Folders/index.js +7 -5
  87. package/dist/providers/Folders/index.js.map +1 -1
  88. package/dist/styles.css +1 -1
  89. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts +3 -3
  90. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  91. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  92. package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
  93. package/dist/views/BrowseByFolder/index.js +4 -3
  94. package/dist/views/BrowseByFolder/index.js.map +1 -1
  95. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  96. package/dist/views/CollectionFolder/ListSelection/index.js +36 -37
  97. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  98. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  99. package/dist/views/CollectionFolder/index.js +7 -4
  100. package/dist/views/CollectionFolder/index.js.map +1 -1
  101. package/dist/views/Edit/index.d.ts.map +1 -1
  102. package/dist/views/Edit/index.js +5 -3
  103. package/dist/views/Edit/index.js.map +1 -1
  104. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  105. package/dist/views/List/ListHeader/index.js +2 -1
  106. package/dist/views/List/ListHeader/index.js.map +1 -1
  107. package/package.json +4 -4
  108. package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts +0 -10
  109. package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts.map +0 -1
  110. package/dist/elements/FolderView/Drawers/DrawerHeader/index.js +0 -55
  111. package/dist/elements/FolderView/Drawers/DrawerHeader/index.js.map +0 -1
  112. package/dist/elements/FolderView/Drawers/DrawerHeader/index.scss +0 -30
  113. package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts +0 -9
  114. package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts.map +0 -1
  115. package/dist/elements/FolderView/Drawers/NewFolder/index.js +0 -157
  116. package/dist/elements/FolderView/Drawers/NewFolder/index.js.map +0 -1
  117. package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts +0 -13
  118. package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts.map +0 -1
  119. package/dist/elements/FolderView/Drawers/RenameFolder/index.js +0 -140
  120. package/dist/elements/FolderView/Drawers/RenameFolder/index.js.map +0 -1
  121. package/dist/exports/client/chunk-QPA2ZA5J.js +0 -26
  122. /package/dist/exports/client/{CodeEditor-7N7BMHRP.js.map → CodeEditor-Z3ZZJH7C.js.map} +0 -0
@@ -310,6 +310,7 @@ export function DefaultEditView({
310
310
  };
311
311
  }, []);
312
312
  const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal && !documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
313
+ const isFolderCollection = config.folders && collectionSlug === config.folders?.slug;
313
314
  return /*#__PURE__*/_jsx("main", {
314
315
  className: classes.filter(Boolean).join(' '),
315
316
  children: /*#__PURE__*/_jsx(OperationProvider, {
@@ -326,8 +327,9 @@ export function DefaultEditView({
326
327
  onChange: [onChange],
327
328
  onSuccess: onSave,
328
329
  children: [isInDrawer && /*#__PURE__*/_jsx(DocumentDrawerHeader, {
329
- drawerSlug: drawerSlug
330
- }), isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(DocumentLocked, {
330
+ drawerSlug: drawerSlug,
331
+ showDocumentID: !isFolderCollection
332
+ }), isLockingEnabled && shouldShowDocumentLockedModal && /*#__PURE__*/_jsx(DocumentLocked, {
331
333
  handleGoBack: () => handleGoBack({
332
334
  adminRoute,
333
335
  collectionSlug,
@@ -372,7 +374,7 @@ export function DefaultEditView({
372
374
  SaveDraftButton
373
375
  },
374
376
  data: savedDocumentData,
375
- disableActions: disableActions,
377
+ disableActions: disableActions || isFolderCollection,
376
378
  disableCreate: disableCreate,
377
379
  EditMenuItems: EditMenuItems,
378
380
  hasPublishPermission: hasPublishPermission,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","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","redirectAfterCreate","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","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","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":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.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 { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\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 redirectAfterCreate,\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 })\n const globalConfig = getEntityConfig({ globalSlug })\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 const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = 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 const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\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 = useMemo(() => [entitySlug], [entitySlug])\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 handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\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 = {\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 [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.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(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\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 skipValidation: !submitted,\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 want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\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\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 const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\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 isDocumentForm={true}\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 {!isInDrawer && (\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 )}\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 BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\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 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":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","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","redirectAfterCreate","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","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","isFolderCollection","folders","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","showDocumentID","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":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.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 { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\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 redirectAfterCreate,\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 })\n const globalConfig = getEntityConfig({ globalSlug })\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 const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = 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 const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\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 = useMemo(() => [entitySlug], [entitySlug])\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 handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\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 = {\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 [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.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(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\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 skipValidation: !submitted,\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 want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\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\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 const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\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 const isFolderCollection = config.folders && collectionSlug === config.folders?.slug\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 isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && (\n <DocumentDrawerHeader drawerSlug={drawerSlug} showDocumentID={!isFolderCollection} />\n )}\n {isLockingEnabled && shouldShowDocumentLockedModal && (\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 {!isInDrawer && (\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 )}\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 BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions || isFolderCollection}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\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 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":"AAAA,+DACA;;;AAIA,SAASA,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAKnF,SAASC,gBAAgB,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,IAAI,QAAQ;AACrB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB;AACA;AACA;AACA,OAAO,SAASC,gBAAgB;EAC9BC,sBAAsB;EACtBC,WAAW;EACXC,aAAa;EACbC,aAAa;EACbC,aAAa;EACbC,UAAU;EACVC,eAAe;EACf3B,MAAA,EAAQ4B;AAAY,CACI;EACxB,MAAM;IACJC,EAAE;IACFC,MAAM;IACNC,aAAa;IACbC,WAAW;IACXC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,yBAAyB;IACzBC,cAAc;IACdC,gBAAgB;IAChBC,iBAAiB;IACjBC,iBAAiB;IACjBC,UAAU;IACVC,oBAAoB;IACpBC,iBAAiB;IACjBC,qBAAqB;IACrBC,YAAY;IACZC,SAAS;IACTC,cAAc;IACdC,cAAc;IACdC,mBAAmB;IACnBC,mBAAmB;IACnBC,sBAAsB;IACtBC,iBAAiB;IACjBC,gBAAgB;IAChBC,mBAAmB;IACnBC,cAAc;IACdC,oBAAoB;IACpBC;EAAuB,CACxB,GAAGvD,eAAA;EAEJ,MAAM;IACJwD,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,MAAA,EAAQC;EAAiB,CAC1B,GAAGvE,wBAAA;EAEJ,MAAMwE,UAAA,GAAaC,OAAA,CAAQN,UAAA;EAE3B,MAAM;IAAEO,kBAAkB;IAAEC;EAAI,CAAE,GAAGpE,OAAA;EAErC,MAAM;IACJqE,MAAM;IACNA,MAAA,EAAQ;MACNC,KAAA,EAAO;QAAEF,IAAA,EAAMG;MAAQ,CAAE;MACzBC,MAAA,EAAQ;QAAEF,KAAA,EAAOG;MAAU;IAAE,CAC9B;IACDC;EAAe,CAChB,GAAGzE,SAAA;EAEJ,MAAM0E,gBAAA,GAAmBD,eAAA,CAAgB;IAAEzC;EAAe;EAC1D,MAAM2C,YAAA,GAAeF,eAAA,CAAgB;IAAEhC;EAAW;EAElD,MAAMmC,KAAA,GAAQzE,YAAA;EAEd,MAAM0E,MAAA,GAASjG,SAAA;EACf,MAAMkG,MAAA,GAASjG,eAAA;EACf,MAAM;IAAEkG;EAAY,CAAE,GAAG9E,iBAAA;EACzB,MAAM;IAAE+E;EAAgB,CAAE,GAAGzE,cAAA;EAC7B,MAAM;IAAE0E;EAAY,CAAE,GAAG3E,kBAAA;EACzB,MAAM;IAAE4E;EAAoB,CAAE,GAAG7E,kBAAA;EAEjC,MAAM8E,gBAAA,GAAmB/F,MAAA,CAAwB;EACjD,MAAMgG,cAAA,GAAiBhG,MAAA,CAAwB;EAE/C,MAAMiG,MAAA,GAASP,MAAA,CAAOQ,GAAG,CAAC;EAE1B,MAAMC,UAAA,GAAab,gBAAA,EAAkBc,IAAA,IAAQb,YAAA,EAAca,IAAA;EAE3D,MAAMC,SAAA,GAAYzD,cAAA,IAAkB,CAACN,EAAA,GAAK,WAAW;EAErD,MAAMgE,IAAA,GAAOhB,gBAAA,GAAmBA,gBAAA,CAAiBgB,IAAI,GAAGC,SAAA;EACxD,MAAMC,MAAA,GAASlB,gBAAA,GAAmBA,gBAAA,CAAiBkB,MAAM,GAAGD,SAAA;EAE5D,MAAME,SAAA,GAAYnB,gBAAA,IAAoBC,YAAA;EAEtC,MAAMmB,iBAAA,GAAoBD,SAAA,EAAWE,aAAA,KAAkBJ,SAAA,GAAYE,SAAA,EAAWE,aAAA,GAAgB;EAC9F,MAAMC,gBAAA,GAAmBF,iBAAA,KAAsB;EAE/C,MAAMG,mBAAA,GAAsB,IAAI;EAAA;EAChC,MAAMC,YAAA,GACJ,OAAOJ,iBAAA,KAAsB,WAAWA,iBAAA,CAAkBK,QAAQ,GAAGF,mBAAA;EACvE,MAAMG,0BAAA,GAA6BF,YAAA,GAAe;EAElD,MAAMG,eAAA,GAAkBpC,OAAA,CACtBS,gBAAC,EAAkB4B,QAAA,EAAUC,MAAA,IAAU7B,gBAAA,EAAkB4B,QAAA,EAAUC,MAAA,EAAQC,QAAA,IACxE7B,YAAA,EAAc2B,QAAA,EAAUC,MAAA,IAAU5B,YAAA,EAAc2B,QAAA,EAAUC,MAAA,EAAQC,QAAA;EAGvE,MAAMC,yBAAA,GACJ,OAAOrE,yBAAA,KAA8B,cAAc,CAACA,yBAAA,GAA4B,CAACiE,eAAA;EAEnF,MAAM,CAACK,yBAAA,EAA2BC,4BAAA,CAA6B,GAAGtH,QAAA,CAAS;EAC3E,MAAM,CAACuH,iBAAA,EAAmBC,oBAAA,CAAqB,GAAGxH,QAAA,CAAS;EAE3D,MAAM,CAACyH,oBAAA,EAAsBC,uBAAA,CAAwB,GAAG1H,QAAA,CAAS2H,IAAA,CAAKC,GAAG;EAEzE,MAAMC,cAAA,GAAiBlE,cAAA,GAAiBoD,0BAAA;EAExC,MAAMe,aAAA,GAAgBH,IAAA,CAAKC,GAAG,KAAKC,cAAA;EAEnC,MAAME,oBAAA,GAAuBhI,MAAA,CAInB;IACRiI,mBAAA,EAAqB;IACrBC,QAAA,EAAU;IACVnD,IAAA,EAAM;EACR;EAEA,MAAMoD,OAAA,GAAU,CAACvG,SAAA,EAAY,CAAAU,EAAA,IAAMe,UAAS,KAAM,GAAGzB,SAAA,cAAuB,CAAC;EAE7E,IAAIyB,UAAA,EAAY;IACd8E,OAAA,CAAQC,IAAI,CAAC,gBAAgB/E,UAAA,EAAY;EAC3C;EAEA,IAAIT,cAAA,EAAgB;IAClBuF,OAAA,CAAQC,IAAI,CAAC,oBAAoBxF,cAAA,EAAgB;EACnD;EAEA,MAAMyF,kBAAA,GAAqBtI,OAAA,CAAQ,MAAM,CAACoG,UAAA,CAAW,EAAE,CAACA,UAAA,CAAW;EAEnE,MAAM,CAACmC,oBAAA,EAAsBC,uBAAA,CAAwB,GAAGtI,QAAA,CAAS;IAC/D,IAAIoG,SAAA,KAAc,YAAYC,IAAA,IAAQ,CAACA,IAAA,CAAKkC,oBAAoB,EAAE;MAChE,OAAO;IACT;IAEA,OAAO;EACT;EAEA,MAAMC,qBAAA,GAAwB5I,WAAA,CAC3B6I,WAAA;IACCxE,mBAAA,CAAoB;IACpB,MAAMyE,eAAA,GACJ,OAAOX,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA,KAAS,WAC1CiD,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA,EAAMzC,EAAA,GACpC0F,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA;IAEpC,IAAI2D,WAAA,EAAa;MACf,MAAMG,YAAA,GACJ,OAAOH,WAAA,CAAY3D,IAAI,KAAK,YAAY,OAAO2D,WAAA,CAAY3D,IAAI,KAAK,WAChE2D,WAAA,CAAY3D,IAAI,GAChB2D,WAAA,CAAY3D,IAAI,CAACzC,EAAE;MAEzB,IAAI,CAAC0F,oBAAA,CAAqBY,OAAO,IAAIC,YAAA,KAAiBF,eAAA,EAAiB;QACrE,IAAIA,eAAA,KAAoB5D,IAAA,CAAKzC,EAAE,IAAIuG,YAAA,KAAiB9D,IAAA,CAAKzC,EAAE,EAAE;UAC3DmF,oBAAA,CAAqB;UACrBO,oBAAA,CAAqBY,OAAO,CAACX,mBAAmB,GAAG;QACrD;QAEAD,oBAAA,CAAqBY,OAAO,GAAG;UAC7BX,mBAAA,EAAqBD,oBAAA,CAAqBY,OAAO,EAAEX,mBAAA,IAAuB;UAC1EC,QAAA,EAAU;UACVnD,IAAA,EAAM2D,WAAA,CAAY3D;QACpB;QACAd,gBAAA,CAAiByE,WAAA,CAAY3D,IAAI;MACnC;IACF;EACF,GACA,CAACd,gBAAA,EAAkBC,mBAAA,EAAqBa,IAAA,EAAMzC,EAAA,CAAG;EAGnD,MAAMoC,MAAA,GAAS7E,WAAA,CACb,MAAOiJ,IAAA;IACL,MAAMC,UAAA,GAAa1H,cAAA,CAAe2E,cAAA;IAElC,MAAMgD,QAAA,GAAWF,IAAA,EAAMG,GAAA,IAAOH,IAAA,EAAMI,MAAA;IAEpCvD,YAAA,CAAa;MACXrD,EAAA;MACA6D,UAAA;MACAgD,SAAA,EAAWH,QAAA,EAAUG,SAAA,IAAa,IAAIvB,IAAA,GAAOwB,WAAW;IAC1D;IAEA;IACA;IACA,IAAIrE,IAAA,IAAQnC,cAAA,KAAmBsC,QAAA,IAAY5C,EAAA,KAAOyC,IAAA,CAAKzC,EAAE,EAAE;MACzD,KAAKwC,kBAAA;IACP;IAEAtB,qBAAA;IAEA,IAAI,OAAOa,uBAAA,KAA4B,YAAY;MACjD,KAAKA,uBAAA,CAAwB2E,QAAA,IAAY,CAAC;IAC5C;IAEA,IAAI,OAAOrE,iBAAA,KAAsB,YAAY;MAC3C,MAAM0B,WAAA,GAAY/D,EAAA,GAAK,WAAW;MAElC,KAAKqC,iBAAA,CAAkB;QACrB,GAAGmE,IAAI;QACPzC,SAAA,EAAAA,WAAA;QACA8C,SAAA,EACE9C,WAAA,KAAc,WACV,IAAIuB,IAAA,GAAOwB,WAAW,KACtBJ,QAAA,EAAUG,SAAA,IAAa,IAAIvB,IAAA,GAAOwB,WAAW;MACrD;IACF;IAEA,IAAI,CAAC1F,SAAA,IAAa8B,KAAA,GAAQ,KAAK3B,mBAAA,KAAwB,OAAO;MAC5D;MACA,MAAMwF,aAAA,GAAgB3J,cAAA,CAAe;QACnC0F,UAAA;QACAkE,IAAA,EAAM,gBAAgB1G,cAAA,IAAkBoG,QAAA,EAAU1G,EAAA,GAAK2D,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG;MACxF;MAEAH,oBAAA,CAAqB,MAAML,MAAA,CAAO2C,IAAI,CAACiB,aAAA;IACzC,OAAO;MACLzD,gBAAA;IACF;IAEA,MAAMzC,iBAAA,CAAkB2F,IAAA;IAExB,IAAI,CAACxG,EAAA,IAAMe,UAAS,KAAM,CAAC4D,eAAA,EAAiB;MAC1C,MAAMsC,cAAA,GAAiB,MAAMnG,iBAAA;MAE7B,MAAM;QAAEoG;MAAK,CAAE,GAAG,MAAM3D,YAAA,CAAa;QACnCvD,EAAA;QACAM,cAAA;QACA6G,IAAA,EAAMT,QAAA;QACN/F,cAAA;QACAsG,cAAA;QACAlG,UAAA;QACAgD,SAAA;QACAqD,eAAA,EAAiB;QACjBC,gBAAA,EAAkB;QAClBC,UAAA,EAAYvB,kBAAA,CAAmBwB,IAAI,CAAC;QACpCC,MAAA,EAAQf,UAAA,CAAWe,MAAM;QACzBC,cAAA,EAAgB;MAClB;MAEA;MACA,IAAInD,gBAAA,EAAkB;QACpB1C,mBAAA,CAAoB;MACtB;MAEA8B,cAAA,CAAe4C,OAAO,GAAG;MAEzB,OAAOY,KAAA;IACT;EACF,GACA,CACE7D,YAAA,EACArD,EAAA,EACA6D,UAAA,EACApB,IAAA,EACAnC,cAAA,EACAsC,QAAA,EACA1B,qBAAA,EACAa,uBAAA,EACAM,iBAAA,EACAd,mBAAA,EACAH,SAAA,EACA8B,KAAA,EACArC,iBAAA,EACAE,UAAA,EACA4D,eAAA,EACAnC,kBAAA,EACAM,UAAA,EACAa,MAAA,EACAR,MAAA,EACAG,gBAAA,EACAxC,iBAAA,EACAyC,YAAA,EACA5C,cAAA,EACAoD,SAAA,EACAgC,kBAAA,EACAzB,gBAAA,EACA1C,mBAAA,EACA4B,oBAAA,CACD;EAGH,MAAMkE,QAAA,GAAqCnK,WAAA,CACzC,OAAO;IAAEoK,SAAA,EAAWC,aAAa;IAAEC;EAAS,CAAE;IAC5C,MAAMpB,YAAA,GAAa1H,cAAA,CAAe0E,gBAAA;IAElC,MAAMqE,WAAA,GAAcxC,IAAA,CAAKC,GAAG;IAC5B,MAAMwC,mBAAA,GAAsBD,WAAA,GAAc1C,oBAAA;IAE1C,MAAM4C,gBAAA,GAAmB1D,gBAAA,IAAoByD,mBAAA,IAAuB,MAAM;IAAA;IAE1E,IAAIC,gBAAA,EAAkB;MACpB3C,uBAAA,CAAwByC,WAAA;IAC1B;IAEA,MAAMb,gBAAA,GAAiB,MAAMnG,iBAAA;IAE7B,MAAM;MAAEsF,WAAW,EAAXA,aAAW;MAAEc,KAAK,EAALA;IAAK,CAAE,GAAG,MAAM3D,YAAA,CAAa;MAChDvD,EAAA;MACAM,cAAA;MACAK,cAAA;MACAsG,cAAA,EAAAA,gBAAA;MACAU,SAAA,EAAWC,aAAA;MACX7G,UAAA;MACAgD,SAAA;MACA0D,cAAA,EAAgB,CAACI,SAAA;MACjB;MACA;MACAT,eAAA,EAAiB;MACjBC,gBAAA,EAAkB/C,gBAAA;MAClBgD,UAAA,EAAYvB,kBAAA,CAAmBwB,IAAI,CAAC;MACpCC,MAAA,EAAQf,YAAA,CAAWe,MAAM;MACzBQ;IACF;IAEA,IAAI1D,gBAAA,EAAkB;MACpB6B,qBAAA,CAAsBC,aAAA;IACxB;IAEA3C,gBAAA,CAAiB6C,OAAO,GAAG;IAE3B,OAAOY,OAAA;EACT,GACA,CACElH,EAAA,EACAM,cAAA,EACAQ,iBAAA,EACAyC,YAAA,EACAxC,UAAA,EACAoF,qBAAA,EACA7B,gBAAA,EACAP,SAAA,EACAgC,kBAAA,EACApF,cAAA,EACAyE,oBAAA,CACD;EAGH;EACA5H,SAAA,CAAU;IACR,OAAO;MACL,IAAI8G,gBAAA,IAAoB1D,gBAAA,KAAqBZ,EAAA,IAAMe,UAAS,GAAI;QAC9D;QACA,MAAMkH,oBAAA,GAAuB,CAAC,CAAC,WAAW,OAAO,WAAW,CAACC,IAAI,CAAElB,IAAA,IACjEmB,MAAA,CAAOC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAACtB,IAAA;QAEpC,IAAIiB,oBAAA,EAAsB;UACxB;UACA,IACE,OAAOvC,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA,KAAS,WAC1CiD,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA,EAAMzC,EAAA,KAAOyC,IAAA,EAAMzC,EAAA,GACjD0F,oBAAA,CAAqBY,OAAO,EAAE7D,IAAA,KAASA,IAAA,EAAMzC,EAAA,EACjD;YACA,KAAK6B,cAAA,CAAe7B,EAAA,EAAIM,cAAA,IAAkBS,UAAA;YAC1Ca,mBAAA,CAAoB;YACpBD,gBAAA,CAAiB;UACnB;QACF;MACF;MAEAwD,oBAAA,CAAqB;IACvB;EACF,GAAG,CACD7E,cAAA,EACAS,UAAA,EACAf,EAAA,EACA6B,cAAA,EACAY,IAAA,EACAd,gBAAA,EACA2C,gBAAA,EACA1D,gBAAA,EACAgB,mBAAA,CACD;EAEDpE,SAAA,CAAU;IACR,MAAM+K,aAAA,GAAgB9E,gBAAA,CAAiB6C,OAAO;IAC9C,MAAMkC,WAAA,GAAc9E,cAAA,CAAe4C,OAAO;IAE1C,OAAO;MACLxH,cAAA,CAAeyJ,aAAA;MACfzJ,cAAA,CAAe0J,WAAA;IACjB;EACF,GAAG,EAAE;EAEL,MAAMC,6BAAA,GACJ7H,gBAAA,IACAL,aAAA,KACC,OAAOA,aAAA,KAAkB,WACtBA,aAAA,CAAcP,EAAE,KAAKyC,IAAA,EAAMzC,EAAA,GAC3BO,aAAA,KAAkBkC,IAAA,EAAMzC,EAAC,KAC7B,CAACgF,yBAAA,IACD,CAACE,iBAAA,IACD,CAACQ,oBAAA,CAAqBY,OAAO,EAAEX,mBAAA,IAC/B,CAACF,aAAA;EAEH,MAAMiD,kBAAA,GAAqBhG,MAAA,CAAOiG,OAAO,IAAIrI,cAAA,KAAmBoC,MAAA,CAAOiG,OAAO,EAAE7E,IAAA;EAEhF,oBACE8E,IAAA,CAAC;IAAKC,SAAA,EAAWhD,OAAA,CAAQiD,MAAM,CAACvG,OAAA,EAASgF,IAAI,CAAC;cAC5C,aAAAqB,IAAA,CAAClK,iBAAA;MAAkBqF,SAAA,EAAWA,SAAA;gBAC5B,aAAAgF,KAAA,CAAC3K,IAAA;QACC6B,MAAA,EAAQA,MAAA;QACR4I,SAAA,EAAW,GAAGvJ,SAAA,QAAiB;QAC/B0J,QAAA,EAAUhE,yBAAA,IAA6B3D,cAAA,IAAkB,CAACJ,iBAAA;QAC1DgI,yBAAA,EAA2B,CAACjD,oBAAA;QAC5B7E,YAAA,EAAc,CAACE,cAAA,IAAkBF,YAAA;QACjC+H,cAAA,EAAgB;QAChB7H,cAAA,EAAgBA,cAAA;QAChB8H,MAAA,EAAQnJ,EAAA,GAAK,UAAU;QACvB0H,QAAA,EAAU,CAACA,QAAA,CAAS;QACpB0B,SAAA,EAAWhH,MAAA;mBAEVE,UAAA,iBACCsG,IAAA,CAAC/K,oBAAA;UAAqBoE,UAAA,EAAYA,UAAA;UAAYoH,cAAA,EAAgB,CAACX;YAEhEpE,gBAAA,IAAoBmE,6BAAA,iBACnBG,IAAA,CAAC5K,cAAA;UACCiB,YAAA,EAAcA,CAAA,KAAMA,YAAA,CAAa;YAAE6D,UAAA;YAAYxC,cAAA;YAAgB6C;UAAO;UACtEmG,QAAA,EAAUb,6BAAA;UACVc,UAAA,EAAYA,CAAA;YACVtE,4BAAA,CAA6B;YAC7BE,oBAAA,CAAqB;UACvB;UACAqE,UAAA,EAAYA,CAAA,KACVtK,cAAA,CACEc,EAAA,EACAM,cAAA,EACAS,UAAA,EACA0B,IAAA,EACA,OACAX,oBAAA,EACAH,gBAAA,EACA+D,oBAAA,EACApB,gBAAA;UAGJuC,SAAA,EAAWvF,cAAA;UACXmB,IAAA,EAAMlC;YAGT+D,gBAAA,IAAoBY,iBAAA,iBACnB0D,IAAA,CAAC3K,gBAAA;UACCe,qBAAA,EAAuBA,CAAA,KAAMA,qBAAA,CAAsB;YAAE8D,UAAA;YAAYK;UAAO;UACxEmG,QAAA,EAAUpE,iBAAA;UACVqE,UAAA,EAAYA,CAAA;YACVtE,4BAAA,CAA6B;YAC7BE,oBAAA,CAAqB;UACvB;YAGH,CAACH,yBAAA,IAA6BD,yBAAA,iBAA6B6D,IAAA,CAAC1K,kBAAA,OAC5D,CAACoE,UAAA,iBACAsG,IAAA,CAACxJ,kBAAA;UACCkB,cAAA,EAAgB0C,gBAAA,EAAkBc,IAAA;UAClC/C,UAAA,EAAYkC,YAAA,EAAca,IAAA;UAC1B9D,EAAA,EAAIA,EAAA;UACJyJ,WAAA,EAAazG,gBAAA,EAAkB0G,MAAA,EAAQC,MAAA;UACvCC,UAAA,EAAY5G,gBAAA,EAAkBL,KAAA,EAAOiH;yBAGzChB,IAAA,CAACvJ,gBAAA;UACC2D,gBAAA,EAAkBA,gBAAA;UAClBN,MAAA,EAAQA,MAAA;UACRmH,QAAA,EAAU3G,KAAA,IAAS,IAAIlD,EAAA,EAAI8J,QAAA,KAAa7F,SAAA;UACxChB,YAAA,EAAcA;yBAEhB2F,IAAA,CAAChL,gBAAA;UACCwC,MAAA,EAAQA,MAAA;UACRZ,sBAAA,EAAwBA,sBAAA;UACxBuK,gBAAA,EAAkB;YAChBpK,aAAA;YACAC,aAAA;YACAC,UAAA;YACAC;UACF;UACAqH,IAAA,EAAMzF,iBAAA;UACNlB,cAAA,EAAgBA,cAAA,IAAkBkI,kBAAA;UAClCjI,aAAA,EAAeA,aAAA;UACff,aAAA,EAAeA,aAAA;UACfsB,oBAAA,EAAsBA,oBAAA;UACtBC,iBAAA,EAAmBA,iBAAA;UACnBjB,EAAA,EAAIA,EAAA;UACJoB,SAAA,EAAWA,SAAA;UACXc,QAAA,EAAUA,QAAA;UACV8H,iBAAA,EAAmBhI,QAAA;UACnBG,WAAA,EAAaA,WAAA;UACbC,MAAA,EAAQA,MAAA;UACRoH,UAAA,EAAYA,CAAA,KACVtK,cAAA,CACEc,EAAA,EACAM,cAAA,EACAS,UAAA,EACA0B,IAAA,EACA,MACAX,oBAAA,EACAH,gBAAA,EACA+D,oBAAA,EACApB,gBAAA,EACAW,4BAAA;UAGJgF,WAAA,EAAatJ,cAAA;UACbuJ,uBAAA,EAAyBlF,yBAAA;UACzBxD,mBAAA,EAAqBA,mBAAA;UACrBC,sBAAA,EAAwBA,sBAAA;UACxBqC,IAAA,EAAMd,gBAAA,EAAkBc,IAAA,IAAQb,YAAA,EAAca,IAAA;UAC9CrB,IAAA,EAAMlC;yBAERqI,IAAA,CAAC7K,cAAA;UACCoC,WAAA,EAAaA,WAAA;UACbE,YAAA,EACEA,YAAA,iBACE0I,KAAA,CAACzL,QAAA;uBACE0G,IAAA,iBACC4E,IAAA,CAACzJ,IAAA;cACC0J,SAAA,EAAW,GAAGvJ,SAAA,QAAiB;cAC/BgB,cAAA,EAAgB0C,gBAAA,CAAiBc,IAAI;cACrCoC,oBAAA,EAAsBlD,gBAAA,CAAiBgB,IAAI,EAAEkC,oBAAA;cAC7CiE,KAAA,EAAOzI,iBAAA,EAAmByI,KAAA;cAC1BC,iBAAA,EAAmBpG,IAAA,EAAMoG,iBAAA;cACzBrG,SAAA,EAAWA,SAAA;cACXsG,QAAA,EAAU,CAACpJ,iBAAA;cACXqJ,eAAA,EAAiB,CAACtK,EAAA;cAClBiG,uBAAA,EAAyBA,uBAAA;cACzBsE,SAAA,EAAWvG,IAAA,CAAKuG,SAAS;cACzBC,QAAA,EAAU9I,iBAAA,EAAmB8I,QAAA;cAC7BC,MAAA,EAAQzG,IAAA,CAAKyG;gBAGhBvG,MAAA,iBACC0E,IAAA,CAACvL,KAAA,CAAMC,QAAQ;wBACZyC,YAAA,iBACC6I,IAAA,CAACzK,MAAA;gBACCmC,cAAA,EAAgB0C,gBAAA,CAAiBc,IAAI;gBACrC3C,YAAA,EAAcA,YAAA;gBACduJ,YAAA,EAAcxG;;;;UAQ5BzE,WAAA,EAAaA,WAAA;UACbkB,cAAA,EAAgBA,cAAA;UAChBgK,MAAA,EAAQxG,SAAA,CAAUwG,MAAM;UACxBN,QAAA,EAAUrF,yBAAA,IAA6B,CAAC/D,iBAAA;UACxC8E,kBAAA,EAAoBA;YAErB7F,aAAA;;;;AAKX","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,uEAAuE;IACvE,CAAC,CAAC,EAAE,SAAS,CAAA;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8F1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,uEAAuE;IACvE,CAAC,CAAC,EAAE,SAAS,CAAA;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChC,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+F1D,CAAA"}
@@ -60,8 +60,9 @@ export const CollectionListHeader = ({
60
60
  disableBulkDelete: disableBulkDelete,
61
61
  disableBulkEdit: disableBulkEdit,
62
62
  label: getTranslation(collectionConfig?.labels?.plural, i18n)
63
- }, "list-selection"), collectionConfig.folders && /*#__PURE__*/_jsx(ListFolderPills, {
63
+ }, "list-selection"), collectionConfig.folders && config.folders && /*#__PURE__*/_jsx(ListFolderPills, {
64
64
  collectionConfig: collectionConfig,
65
+ folderCollectionSlug: config.folders.slug,
65
66
  viewType: viewType
66
67
  }, "list-header-buttons")].filter(Boolean),
67
68
  AfterListHeaderContent: Description,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","ListFolderPills","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","useConfig","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","folders"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListFolderPills } from '../../../elements/ListFolderPills/index.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: 'folders' | 'list'\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n />\n ),\n collectionConfig.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n key=\"list-header-buttons\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,eAAe,QAAQ;AAChC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,UAAU,QAAQ;AAC3B,SACEC,oBAAoB,EACpBC,mBAAmB,QACd;AACP,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,eAAA,GAAkB;AA4BxB,OAAO,MAAMC,oBAAA,GAAkDA,CAAC;EAC9DC,SAAS;EACTC,gBAAgB;EAChBC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,mBAAmB;EACnBC,IAAI;EACJC,mBAAmB;EACnBC,cAAc;EACdC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC;AAAQ,CACT;EACC,MAAM;IAAEC,MAAM;IAAEC;EAAe,CAAE,GAAGlB,SAAA;EACpC,MAAM;IAAEmB,UAAU;IAAEC,UAAU;IAAEC;EAAc,CAAE,GAAG5B,oBAAA;EAEnD,IAAI2B,UAAA,EAAY;IACd,oBACEE,IAAA,CAACzB,UAAA;MACC0B,OAAA,EAAS,C,aACPD,IAAA,CAAC9B,gBAAA;QACCY,SAAA,EAAW,GAAGF,eAAA,gBAA+B;QAE7CsB,IAAA,EAAML;SADF,gBAGP;MACDM,sBAAA,eACEC,KAAA,CAAAC,SAAA;mBACGrB,WAAA,E,aACAgB,IAAA,CAAC3B,wBAAA;;MAGNS,SAAA,EAAW,GAAGF,eAAA,UAAyB;MACvC0B,KAAA,EAAOtC,cAAA,CACL4B,eAAA,CAAgB;QAAEW,cAAA,EAAgBR,cAAA,CAAeS;MAAM,IAAIC,MAAA,EAAQC,MAAA,EACnEtB,IAAA;MAEFuB,YAAA,EAAc,C,aACZX,IAAA,CAAC1B,4BAAA;QACCa,mBAAA,EAAqBA;SACjB,8BAEP,CAACyB,MAAM,CAACC,OAAA;;EAGf;EAEA,oBACEb,IAAA,CAACzB,UAAA;IACC0B,OAAA,EAAS,CACP,CAACR,UAAA,iBACCO,IAAA,CAACrB,aAAA;MACCI,gBAAA,EAAkBA,gBAAA;MAClBE,iBAAA,EAAmBA,iBAAA;MACnBC,eAAA,EAAiBA,eAAA;MAEjB4B,KAAA,EAAO9C,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;OADpD,mBAIRL,gBAAA,CAAiBgC,OAAO,iBACtBf,IAAA,CAAC5B,eAAA;MACCW,gBAAA,EAAkBA,gBAAA;MAElBW,QAAA,EAAUA;OADN,uBAIT,CAACkB,MAAM,CAACC,OAAA;IACTV,sBAAA,EAAwBnB,WAAA;IACxBF,SAAA,EAAWA,SAAA;IACXwB,KAAA,EAAOtC,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;IACxDuB,YAAA,EAAc,CACZxB,mBAAA,iBACEa,IAAA,CAACvB,mBAAA;MACCM,gBAAA,EAAkBA,gBAAA;MAClBI,mBAAA,EAAqBA,mBAAA;MAErBG,cAAA,EAAgBA;OADZ,+BAIRH,mBAAA,IAAuBE,mBAAA,iBACrBW,IAAA,CAACxB,oBAAA;MACC+B,cAAA,EAAgBxB,gBAAA,CAAiBmB,IAAI;MACrCf,mBAAA,EAAqBA,mBAAA;MACrBE,mBAAA,EAAqBA,mBAAA;MAErBE,mBAAA,EAAqBA,mBAAA;MACrBC,cAAA,EAAgBA;OAFZ,2BAKT,CAACoB,MAAM,CAACC,OAAA;;AAGf","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","ListFolderPills","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","useConfig","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","folders","folderCollectionSlug"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListFolderPills } from '../../../elements/ListFolderPills/index.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: 'folders' | 'list'\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n />\n ),\n collectionConfig.folders && config.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n folderCollectionSlug={config.folders.slug}\n key=\"list-header-buttons\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n ].filter(Boolean)}\n />\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.41.0-internal.c079756",
3
+ "version": "3.41.0",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -136,7 +136,7 @@
136
136
  "ts-essentials": "10.0.3",
137
137
  "use-context-selector": "2.0.0",
138
138
  "uuid": "10.0.0",
139
- "@payloadcms/translations": "3.41.0-internal.c079756"
139
+ "@payloadcms/translations": "3.41.0"
140
140
  },
141
141
  "devDependencies": {
142
142
  "@babel/cli": "7.27.2",
@@ -152,13 +152,13 @@
152
152
  "esbuild": "0.25.5",
153
153
  "esbuild-sass-plugin": "3.3.1",
154
154
  "@payloadcms/eslint-config": "3.28.0",
155
- "payload": "3.41.0-internal.c079756"
155
+ "payload": "3.41.0"
156
156
  },
157
157
  "peerDependencies": {
158
158
  "next": "^15.2.3",
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.41.0-internal.c079756"
161
+ "payload": "3.41.0"
162
162
  },
163
163
  "engines": {
164
164
  "node": "^18.20.2 || >=20.9.0"
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import './index.scss';
3
- type DrawerHeaderArgs = {
4
- readonly onCancel?: () => void;
5
- readonly onSave?: () => void;
6
- readonly title: string;
7
- };
8
- export declare const DrawerHeader: ({ onCancel, onSave, title }: DrawerHeaderArgs) => React.JSX.Element;
9
- export {};
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/FolderView/Drawers/DrawerHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AACD,eAAO,MAAM,YAAY,gCAAiC,gBAAgB,sBAoBzE,CAAA"}
@@ -1,55 +0,0 @@
1
- 'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import React from 'react';
6
- import { FormSubmit } from '../../../../forms/Submit/index.js';
7
- import { useTranslation } from '../../../../providers/Translation/index.js';
8
- import { Button } from '../../../Button/index.js';
9
- import './index.scss';
10
- const baseClass = 'drawerHeader';
11
- export const DrawerHeader = t0 => {
12
- const $ = _c(5);
13
- const {
14
- onCancel,
15
- onSave,
16
- title
17
- } = t0;
18
- const {
19
- t
20
- } = useTranslation();
21
- let t1;
22
- if ($[0] !== onCancel || $[1] !== onSave || $[2] !== t || $[3] !== title) {
23
- t1 = _jsx("div", {
24
- className: baseClass,
25
- children: _jsxs("div", {
26
- className: `${baseClass}__content`,
27
- children: [_jsx("h1", {
28
- className: `${baseClass}__title`,
29
- children: title
30
- }), _jsxs("div", {
31
- className: `${baseClass}__actions`,
32
- children: [_jsx(Button, {
33
- "aria-label": t("general:cancel"),
34
- buttonStyle: "secondary",
35
- onClick: onCancel,
36
- children: t("general:cancel")
37
- }), _jsx(FormSubmit, {
38
- "aria-label": t("general:applyChanges"),
39
- onClick: onSave,
40
- children: t("general:applyChanges")
41
- })]
42
- })]
43
- })
44
- });
45
- $[0] = onCancel;
46
- $[1] = onSave;
47
- $[2] = t;
48
- $[3] = title;
49
- $[4] = t1;
50
- } else {
51
- t1 = $[4];
52
- }
53
- return t1;
54
- };
55
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","FormSubmit","useTranslation","Button","baseClass","DrawerHeader","t0","$","onCancel","onSave","title","t","t1","_jsx","className","children","_jsxs","buttonStyle","onClick"],"sources":["../../../../../src/elements/FolderView/Drawers/DrawerHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { FormSubmit } from '../../../../forms/Submit/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'drawerHeader'\n\ntype DrawerHeaderArgs = {\n readonly onCancel?: () => void\n readonly onSave?: () => void\n readonly title: string\n}\nexport const DrawerHeader = ({ onCancel, onSave, title }: DrawerHeaderArgs) => {\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__content`}>\n <h1 className={`${baseClass}__title`}>{title}</h1>\n\n <div className={`${baseClass}__actions`}>\n <Button aria-label={t('general:cancel')} buttonStyle=\"secondary\" onClick={onCancel}>\n {t('general:cancel')}\n </Button>\n\n <FormSubmit aria-label={t('general:applyChanges')} onClick={onSave}>\n {t('general:applyChanges')}\n </FormSubmit>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,YAAA,GAAeC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,QAAA;IAAAC,MAAA;IAAAC;EAAA,IAAAJ,EAA6C;EACxE;IAAAK;EAAA,IAAcT,cAAA;EAAA,IAAAU,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAGZE,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAV,SAAA;MAAAW,QAAA,EACCC,KAAA,CAAC;QAAAF,SAAA,EAAe,GAAAV,SAAA,WAAuB;QAAAW,QAAA,GACrCF,IAAA,CAAC;UAAAC,SAAA,EAAc,GAAAV,SAAA,SAAqB;UAAAW,QAAA,EAAGL;QAAA,C,GAEvCM,KAAA,CAAC;UAAAF,SAAA,EAAe,GAAAV,SAAA,WAAuB;UAAAW,QAAA,GACrCF,IAAA,CAAAV,MAAA;YAAA,cAAoBQ,CAAA,CAAE;YAAAM,WAAA,EAA+B;YAAAC,OAAA,EAAqBV,QAAA;YAAAO,QAAA,EACvEJ,CAAA,CAAE;UAAA,C,GAGLE,IAAA,CAAAZ,UAAA;YAAA,cAAwBU,CAAA,CAAE;YAAAO,OAAA,EAAkCT,MAAA;YAAAM,QAAA,EACzDJ,CAAA,CAAE;UAAA,C;;;;;;;;;;;;SAVXC,E;CAgBJ","ignoreList":[]}
@@ -1,30 +0,0 @@
1
- @layer payload-default {
2
- .drawerHeader {
3
- padding-top: calc(var(--base) * 2);
4
- padding-bottom: calc(var(--base) * 1.5);
5
- border-bottom: 1px solid var(--theme-border-color);
6
-
7
- &__content {
8
- margin-left: var(--gutter-h);
9
- margin-right: var(--gutter-h);
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
- }
14
-
15
- &__title {
16
- margin: 0;
17
- }
18
-
19
- &__actions {
20
- display: flex;
21
- margin-left: auto;
22
- padding-left: var(--base);
23
- gap: var(--base);
24
-
25
- button {
26
- margin: 0;
27
- }
28
- }
29
- }
30
- }
@@ -1,9 +0,0 @@
1
- import type { FolderInterface } from 'payload/shared';
2
- import React from 'react';
3
- type Props = {
4
- readonly drawerSlug: string;
5
- readonly onNewFolderSuccess: (doc: FolderInterface) => Promise<void> | void;
6
- };
7
- export declare const NewFolderDrawer: ({ drawerSlug, onNewFolderSuccess }: Props) => React.JSX.Element;
8
- export {};
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/FolderView/Drawers/NewFolder/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC5E,CAAA;AAED,eAAO,MAAM,eAAe,uCAAwC,KAAK,sBAwExE,CAAA"}
@@ -1,157 +0,0 @@
1
- 'use client';
2
-
3
- import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { useModal } from '@faceless-ui/modal';
6
- import React from 'react';
7
- import { HiddenField } from '../../../../fields/Hidden/index.js';
8
- import { TextField } from '../../../../fields/Text/index.js';
9
- import { Form } from '../../../../forms/Form/index.js';
10
- import { useConfig } from '../../../../providers/Config/index.js';
11
- import { useFolder } from '../../../../providers/Folders/index.js';
12
- import { useTranslation } from '../../../../providers/Translation/index.js';
13
- import { Drawer } from '../../../Drawer/index.js';
14
- import { DrawerActionHeader } from '../../../DrawerActionHeader/index.js';
15
- import { DrawerContentContainer } from '../../../DrawerContentContainer/index.js';
16
- export const NewFolderDrawer = t0 => {
17
- const $ = _c(19);
18
- const {
19
- drawerSlug,
20
- onNewFolderSuccess
21
- } = t0;
22
- const {
23
- config
24
- } = useConfig();
25
- const {
26
- routes,
27
- serverURL
28
- } = config;
29
- const {
30
- closeModal
31
- } = useModal();
32
- const {
33
- t
34
- } = useTranslation();
35
- const {
36
- folderCollectionSlug,
37
- folderFieldName,
38
- folderID
39
- } = useFolder();
40
- const t1 = `${serverURL}${routes.api}/${folderCollectionSlug}?depth=0`;
41
- let t2;
42
- if ($[0] !== onNewFolderSuccess || $[1] !== t) {
43
- t2 = async (res, successToast, errorToast) => {
44
- ;
45
- try {
46
- const {
47
- doc
48
- } = await res.json();
49
- successToast(t("general:successfullyCreated", {
50
- label: `"${doc.name}"`
51
- }));
52
- await onNewFolderSuccess(doc);
53
- } catch (t3) {
54
- errorToast(t("general:error"));
55
- }
56
- };
57
- $[0] = onNewFolderSuccess;
58
- $[1] = t;
59
- $[2] = t2;
60
- } else {
61
- t2 = $[2];
62
- }
63
- let t3;
64
- if ($[3] !== t) {
65
- t3 = value => {
66
- if (!value) {
67
- return t("validation:required");
68
- }
69
- return true;
70
- };
71
- $[3] = t;
72
- $[4] = t3;
73
- } else {
74
- t3 = $[4];
75
- }
76
- let t4;
77
- if ($[5] !== closeModal || $[6] !== drawerSlug || $[7] !== folderFieldName || $[8] !== folderID || $[9] !== t || $[10] !== t1 || $[11] !== t2 || $[12] !== t3) {
78
- let t5;
79
- if ($[14] !== closeModal || $[15] !== drawerSlug) {
80
- t5 = () => {
81
- closeModal(drawerSlug);
82
- };
83
- $[14] = closeModal;
84
- $[15] = drawerSlug;
85
- $[16] = t5;
86
- } else {
87
- t5 = $[16];
88
- }
89
- let t6;
90
- if ($[17] !== t) {
91
- t6 = value_0 => {
92
- if (!value_0) {
93
- return t("validation:required");
94
- }
95
- return true;
96
- };
97
- $[17] = t;
98
- $[18] = t6;
99
- } else {
100
- t6 = $[18];
101
- }
102
- t4 = _jsx(Drawer, {
103
- gutter: false,
104
- Header: null,
105
- slug: drawerSlug,
106
- children: _jsxs(Form, {
107
- action: t1,
108
- handleResponse: t2,
109
- initialState: {
110
- name: {
111
- initialValue: "",
112
- valid: true,
113
- validate: t3,
114
- value: ""
115
- },
116
- [folderFieldName]: {
117
- initialValue: "",
118
- valid: true,
119
- value: ""
120
- }
121
- },
122
- method: "POST",
123
- children: [_jsx(DrawerActionHeader, {
124
- onCancel: t5,
125
- saveLabel: t("general:create"),
126
- title: t("folder:newFolder")
127
- }), _jsxs(DrawerContentContainer, {
128
- children: [_jsx(TextField, {
129
- field: {
130
- name: "name",
131
- label: t("folder:folderName"),
132
- required: true
133
- },
134
- path: "name",
135
- validate: t6
136
- }), _jsx(HiddenField, {
137
- path: folderFieldName,
138
- value: folderID
139
- }, folderID)]
140
- })]
141
- })
142
- });
143
- $[5] = closeModal;
144
- $[6] = drawerSlug;
145
- $[7] = folderFieldName;
146
- $[8] = folderID;
147
- $[9] = t;
148
- $[10] = t1;
149
- $[11] = t2;
150
- $[12] = t3;
151
- $[13] = t4;
152
- } else {
153
- t4 = $[13];
154
- }
155
- return t4;
156
- };
157
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","React","HiddenField","TextField","Form","useConfig","useFolder","useTranslation","Drawer","DrawerActionHeader","DrawerContentContainer","NewFolderDrawer","t0","$","drawerSlug","onNewFolderSuccess","config","routes","serverURL","closeModal","t","folderCollectionSlug","folderFieldName","folderID","t1","api","t2","res","successToast","errorToast","doc","json","label","name","t3","value","t4","t5","t6","value_0","_jsx","gutter","Header","slug","children","_jsxs","action","handleResponse","initialState","initialValue","valid","validate","method","onCancel","saveLabel","title","field","required","path"],"sources":["../../../../../src/elements/FolderView/Drawers/NewFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FolderInterface } from 'payload/shared'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { HiddenField } from '../../../../fields/Hidden/index.js'\nimport { TextField } from '../../../../fields/Text/index.js'\nimport { Form } from '../../../../forms/Form/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useFolder } from '../../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Drawer } from '../../../Drawer/index.js'\nimport { DrawerActionHeader } from '../../../DrawerActionHeader/index.js'\nimport { DrawerContentContainer } from '../../../DrawerContentContainer/index.js'\n\ntype Props = {\n readonly drawerSlug: string\n readonly onNewFolderSuccess: (doc: FolderInterface) => Promise<void> | void\n}\n\nexport const NewFolderDrawer = ({ drawerSlug, onNewFolderSuccess }: Props) => {\n const { config } = useConfig()\n const { routes, serverURL } = config\n const { closeModal } = useModal()\n const { t } = useTranslation()\n const { folderCollectionSlug, folderFieldName, folderID } = useFolder()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <Form\n action={`${serverURL}${routes.api}/${folderCollectionSlug}?depth=0`}\n handleResponse={async (res, successToast, errorToast) => {\n try {\n const { doc } = await res.json()\n successToast(\n t('general:successfullyCreated', {\n label: `\"${doc.name}\"`,\n }),\n )\n await onNewFolderSuccess(doc)\n } catch (_) {\n errorToast(t('general:error'))\n }\n }}\n initialState={{\n name: {\n initialValue: '',\n valid: true,\n validate: (value) => {\n if (!value) {\n return t('validation:required')\n }\n return true\n },\n value: '',\n },\n [folderFieldName]: {\n initialValue: '',\n valid: true,\n value: '',\n },\n }}\n method=\"POST\"\n >\n <DrawerActionHeader\n onCancel={() => {\n closeModal(drawerSlug)\n }}\n saveLabel={t('general:create')}\n title={t('folder:newFolder')}\n />\n\n <DrawerContentContainer>\n <TextField\n field={{\n name: 'name',\n label: t('folder:folderName'),\n required: true,\n }}\n path=\"name\"\n validate={(value) => {\n if (!value) {\n return t('validation:required')\n }\n return true\n }}\n />\n <HiddenField key={folderID} path={folderFieldName} value={folderID} />\n </DrawerContentContainer>\n </Form>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +0,0 @@
1
- import type { FolderOrDocument } from 'payload/shared';
2
- import React from 'react';
3
- type Props = {
4
- readonly drawerSlug: string;
5
- readonly folderToRename: FolderOrDocument;
6
- readonly onRenameConfirm: ({ folderID, updatedName, }: {
7
- folderID: number | string;
8
- updatedName: string;
9
- }) => void;
10
- };
11
- export declare function RenameFolderDrawer(props: Props): React.JSX.Element;
12
- export {};
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/FolderView/Drawers/RenameFolder/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAA;IACzC,QAAQ,CAAC,eAAe,EAAE,CAAC,EACzB,QAAQ,EACR,WAAW,GACZ,EAAE;QACD,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;KACpB,KAAK,IAAI,CAAA;CACX,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,qBA0D9C"}