@payloadcms/ui 3.68.2 → 3.68.4

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 (83) hide show
  1. package/dist/elements/AddNewRelation/index.js +1 -1
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  4. package/dist/elements/AppHeader/index.js +4 -2
  5. package/dist/elements/AppHeader/index.js.map +1 -1
  6. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -1
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +4 -2
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  13. package/dist/elements/DuplicateDocument/index.js +10 -5
  14. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  15. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  16. package/dist/elements/EditMany/DrawerContent.js +16 -4
  17. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  18. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -1
  19. package/dist/elements/FolderView/BrowseByFolderButton/index.js +4 -2
  20. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  21. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  22. package/dist/elements/IDLabel/index.js +14 -11
  23. package/dist/elements/IDLabel/index.js.map +1 -1
  24. package/dist/elements/Logout/index.d.ts.map +1 -1
  25. package/dist/elements/Logout/index.js +11 -8
  26. package/dist/elements/Logout/index.js.map +1 -1
  27. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  28. package/dist/elements/PermanentlyDeleteButton/index.js +2 -1
  29. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  30. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  31. package/dist/elements/PublishButton/index.js +3 -1
  32. package/dist/elements/PublishButton/index.js.map +1 -1
  33. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  34. package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -6
  35. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  36. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  37. package/dist/elements/RestoreButton/index.js +2 -1
  38. package/dist/elements/RestoreButton/index.js.map +1 -1
  39. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  40. package/dist/elements/StayLoggedIn/index.js +20 -17
  41. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  42. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  43. package/dist/elements/Table/DefaultCell/index.js +12 -9
  44. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  45. package/dist/exports/client/index.js +24 -24
  46. package/dist/exports/client/index.js.map +3 -3
  47. package/dist/exports/shared/index.js +1 -1
  48. package/dist/exports/shared/index.js.map +3 -3
  49. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  50. package/dist/fields/Relationship/Input.js +3 -2
  51. package/dist/fields/Relationship/Input.js.map +1 -1
  52. package/dist/graphics/Account/index.d.ts.map +1 -1
  53. package/dist/graphics/Account/index.js +4 -2
  54. package/dist/graphics/Account/index.js.map +1 -1
  55. package/dist/providers/Auth/index.d.ts.map +1 -1
  56. package/dist/providers/Auth/index.js +29 -8
  57. package/dist/providers/Auth/index.js.map +1 -1
  58. package/dist/providers/Folders/index.d.ts.map +1 -1
  59. package/dist/providers/Folders/index.js +3 -2
  60. package/dist/providers/Folders/index.js.map +1 -1
  61. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  62. package/dist/providers/TableColumns/buildColumnState/renderCell.js +2 -1
  63. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  64. package/dist/utilities/handleBackToDashboard.d.ts +2 -1
  65. package/dist/utilities/handleBackToDashboard.d.ts.map +1 -1
  66. package/dist/utilities/handleBackToDashboard.js +4 -2
  67. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  68. package/dist/utilities/handleGoBack.d.ts +2 -1
  69. package/dist/utilities/handleGoBack.d.ts.map +1 -1
  70. package/dist/utilities/handleGoBack.js +4 -2
  71. package/dist/utilities/handleGoBack.js.map +1 -1
  72. package/dist/views/CollectionFolder/index.js +5 -3
  73. package/dist/views/CollectionFolder/index.js.map +1 -1
  74. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  75. package/dist/views/Edit/SetDocumentStepNav/index.js +23 -17
  76. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  77. package/dist/views/Edit/index.d.ts.map +1 -1
  78. package/dist/views/Edit/index.js +9 -5
  79. package/dist/views/Edit/index.js.map +1 -1
  80. package/dist/views/List/index.d.ts.map +1 -1
  81. package/dist/views/List/index.js +5 -3
  82. package/dist/views/List/index.js.map +1 -1
  83. package/package.json +5 -5
@@ -245,7 +245,7 @@ export const AddNewRelation = t0 => {
245
245
  } = t18;
246
246
  return _jsx(PopupList.ButtonGroup, {
247
247
  children: relatedCollections.map(relatedCollection => {
248
- if (permissions.collections[relatedCollection?.slug].create) {
248
+ if (permissions.collections[relatedCollection?.slug]?.create) {
249
249
  return _jsx(PopupList.Button, {
250
250
  className: `${baseClass}__relation-button--${relatedCollection?.slug}`,
251
251
  onClick: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","t17","bb0","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t18","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport './index.scss'\nimport { Tooltip } from '../Tooltip/index.js'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n if (\n operation === 'create' ||\n (operation === 'update' && hasAutosaveEnabled(collectionConfig))\n ) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: collectionConfig?.slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (!show) {\n return null\n }\n\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => {\n setShowTooltip(false)\n }}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug].create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useState","useRelatedCollections","PlusIcon","useAuth","useTranslation","Button","useDocumentDrawer","Popup","PopupList","Tooltip","baseClass","AddNewRelation","t0","$","ButtonFromProps","hasMany","onChange","path","relationTo","unstyled","value","relatedCollections","permissions","show","setShow","selectedCollection","setSelectedCollection","relatedToMany","length","t1","undefined","collectionConfig","setCollectionConfig","popupOpen","setPopupOpen","i18n","t","showTooltip","setShowTooltip","t2","slug","t3","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t4","isDrawerOpen","toggleDrawer","t5","t6","doc","operation","isNewValue","some","v","id","Array","isArray","onSave","Symbol","for","state","onPopupToggle","t7","t8","collections","create","collection","t10","t9","find","collection_0","t11","t12","t13","t14","t15","labels","singular","t16","t17","bb0","label","_jsxs","className","children","_jsx","filter","Boolean","join","onClick","onMouseEnter","onMouseLeave","button","buttonStyle","tooltip","horizontalAlign","onToggleOpen","render","t18","close","closePopup","ButtonGroup","map","relatedCollection"],"sources":["../../../src/elements/AddNewRelation/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\nimport type { Props } from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup } from '../Popup/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\nimport './index.scss'\nimport { Tooltip } from '../Tooltip/index.js'\n\nconst baseClass = 'relationship-add-new'\n\nexport const AddNewRelation: React.FC<Props> = ({\n Button: ButtonFromProps,\n hasMany,\n onChange,\n path,\n relationTo,\n unstyled,\n value,\n}) => {\n const relatedCollections = useRelatedCollections(relationTo)\n const { permissions } = useAuth()\n const [show, setShow] = useState(false)\n const [selectedCollection, setSelectedCollection] = useState<string>()\n\n const relatedToMany = relatedCollections.length > 1\n\n const [collectionConfig, setCollectionConfig] = useState<ClientCollectionConfig>(() =>\n !relatedToMany ? relatedCollections[0] : undefined,\n )\n\n const [popupOpen, setPopupOpen] = useState(false)\n const { i18n, t } = useTranslation()\n const [showTooltip, setShowTooltip] = useState(false)\n\n const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen, toggleDrawer }] = useDocumentDrawer(\n {\n collectionSlug: collectionConfig?.slug,\n },\n )\n\n const onSave: DocumentDrawerContextType['onSave'] = useCallback(\n ({ doc, operation }) => {\n // if autosave is enabled, the operation will be 'update'\n if (\n operation === 'create' ||\n (operation === 'update' && hasAutosaveEnabled(collectionConfig))\n ) {\n // ensure the value is not already in the array\n let isNewValue = false\n if (!value) {\n isNewValue = true\n } else {\n isNewValue = Array.isArray(value)\n ? !value.some((v) => v && v.value === doc.id)\n : value.value !== doc.id\n }\n\n if (isNewValue) {\n if (hasMany === true) {\n onChange([\n ...(Array.isArray(value) ? value : []),\n {\n relationTo: collectionConfig?.slug,\n value: doc.id,\n },\n ])\n } else {\n onChange({\n relationTo: collectionConfig?.slug,\n value: doc.id,\n })\n }\n }\n\n setSelectedCollection(undefined)\n }\n },\n [collectionConfig, hasMany, onChange, value],\n )\n\n const onPopupToggle = useCallback((state) => {\n setPopupOpen(state)\n }, [])\n\n useEffect(() => {\n if (permissions) {\n if (relatedCollections.length === 1) {\n setShow(permissions.collections[relatedCollections[0]?.slug]?.create)\n } else {\n setShow(\n relatedCollections.some(\n (collection) => permissions.collections[collection?.slug]?.create,\n ),\n )\n }\n }\n }, [permissions, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && selectedCollection) {\n setCollectionConfig(\n relatedCollections.find((collection) => collection?.slug === selectedCollection),\n )\n }\n }, [selectedCollection, relatedToMany, relatedCollections])\n\n useEffect(() => {\n if (relatedToMany && collectionConfig) {\n // the drawer must be rendered on the page before before opening it\n // this is why 'selectedCollection' is different from 'collectionConfig'\n toggleDrawer()\n setSelectedCollection(undefined)\n }\n }, [toggleDrawer, relatedToMany, collectionConfig])\n\n useEffect(() => {\n if (relatedToMany && !isDrawerOpen) {\n setCollectionConfig(undefined)\n }\n }, [isDrawerOpen, relatedToMany])\n\n const label = t('fields:addNewLabel', {\n label: getTranslation(relatedCollections[0]?.labels.singular, i18n),\n })\n\n if (!show) {\n return null\n }\n\n return (\n <div className={baseClass} id={`${path}-add-new`}>\n {relatedCollections.length === 1 && (\n <Fragment>\n <DocumentDrawerToggler\n className={[\n `${baseClass}__add-button`,\n unstyled && `${baseClass}__add-button--unstyled`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => {\n setShowTooltip(false)\n }}\n onMouseEnter={() => setShowTooltip(true)}\n onMouseLeave={() => setShowTooltip(false)}\n >\n {ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Fragment>\n <Tooltip className={`${baseClass}__tooltip`} show={showTooltip}>\n {label}\n </Tooltip>\n <PlusIcon />\n </Fragment>\n )}\n </DocumentDrawerToggler>\n <DocumentDrawer onSave={onSave} />\n </Fragment>\n )}\n {relatedCollections.length > 1 && (\n <Fragment>\n <Popup\n button={\n ButtonFromProps ? (\n ButtonFromProps\n ) : (\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__add-button`}\n tooltip={popupOpen ? undefined : t('fields:addNew')}\n >\n <PlusIcon />\n </Button>\n )\n }\n buttonType=\"custom\"\n horizontalAlign=\"center\"\n onToggleOpen={onPopupToggle}\n render={({ close: closePopup }) => (\n <PopupList.ButtonGroup>\n {relatedCollections.map((relatedCollection) => {\n if (permissions.collections[relatedCollection?.slug]?.create) {\n return (\n <PopupList.Button\n className={`${baseClass}__relation-button--${relatedCollection?.slug}`}\n key={relatedCollection?.slug}\n onClick={() => {\n closePopup()\n setSelectedCollection(relatedCollection?.slug)\n }}\n >\n {getTranslation(relatedCollection?.labels?.singular, i18n)}\n </PopupList.Button>\n )\n }\n\n return null\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"medium\"\n />\n {collectionConfig && permissions.collections[collectionConfig?.slug]?.create && (\n <DocumentDrawer onSave={onSave} />\n )}\n </Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAc1D,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B,CAAA;AACD,wBAAgB,SAAS,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,KAAK,qBAsF5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/AppHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAc1D,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B,CAAA;AACD,wBAAgB,SAAS,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,KAAK,qBAuF5D"}
@@ -37,7 +37,8 @@ export function AppHeader({
37
37
  localization,
38
38
  routes: {
39
39
  admin: adminRoute
40
- }
40
+ },
41
+ serverURL
41
42
  }
42
43
  } = useConfig();
43
44
  const {
@@ -100,7 +101,8 @@ export function AppHeader({
100
101
  className: `${baseClass}__account`,
101
102
  href: formatAdminURL({
102
103
  adminRoute,
103
- path: accountRoute
104
+ path: accountRoute,
105
+ serverURL
104
106
  }),
105
107
  prefetch: false,
106
108
  tabIndex: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["formatAdminURL","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","Hamburger","Link","Localizer","LocalizerLabel","useNav","NavToggler","RenderCustomComponent","StepNav","baseClass","AppHeader","CustomAvatar","CustomIcon","t","Actions","config","admin","routes","account","accountRoute","localization","adminRoute","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","ActionComponents","Object","values","_jsxs","className","filter","Boolean","join","_jsx","tabIndex","ref","map","Action","i","length","ariaLabel","href","path","prefetch","CustomComponent","Fallback"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { Link } from '../Link/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\ntype Props = {\n CustomAvatar?: React.ReactNode\n CustomIcon?: React.ReactNode\n}\nexport function AppHeader({ CustomAvatar, CustomIcon }: Props) {\n const { t } = useTranslation()\n\n const { Actions } = useActions()\n\n const {\n config: {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [Actions])\n\n const ActionComponents = Actions ? Object.values(Actions) : []\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav className={`${baseClass}__step-nav`} CustomIcon={CustomIcon} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {ActionComponents.map((Action, i) => (\n <div\n className={\n isScrollable && i === ActionComponents.length - 1\n ? `${baseClass}__last-action`\n : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <Link\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute })}\n prefetch={false}\n tabIndex={0}\n >\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </Link>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","useEffect","useRef","useState","Account","useActions","useConfig","useTranslation","Hamburger","Link","Localizer","LocalizerLabel","useNav","NavToggler","RenderCustomComponent","StepNav","baseClass","AppHeader","CustomAvatar","CustomIcon","t","Actions","config","admin","routes","account","accountRoute","localization","adminRoute","serverURL","navOpen","customControlsRef","isScrollable","setIsScrollable","checkIsScrollable","el","current","scrollable","scrollWidth","clientWidth","window","addEventListener","removeEventListener","ActionComponents","Object","values","_jsxs","className","filter","Boolean","join","_jsx","tabIndex","ref","map","Action","i","length","ariaLabel","href","path","prefetch","CustomComponent","Fallback"],"sources":["../../../src/elements/AppHeader/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { Account } from '../../graphics/Account/index.js'\nimport { useActions } from '../../providers/Actions/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Hamburger } from '../Hamburger/index.js'\nimport { Link } from '../Link/index.js'\nimport { Localizer } from '../Localizer/index.js'\nimport { LocalizerLabel } from '../Localizer/LocalizerLabel/index.js'\nimport { useNav } from '../Nav/context.js'\nimport { NavToggler } from '../Nav/NavToggler/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { StepNav } from '../StepNav/index.js'\nimport './index.scss'\n\nconst baseClass = 'app-header'\n\ntype Props = {\n CustomAvatar?: React.ReactNode\n CustomIcon?: React.ReactNode\n}\nexport function AppHeader({ CustomAvatar, CustomIcon }: Props) {\n const { t } = useTranslation()\n\n const { Actions } = useActions()\n\n const {\n config: {\n admin: {\n routes: { account: accountRoute },\n },\n localization,\n routes: { admin: adminRoute },\n serverURL,\n },\n } = useConfig()\n\n const { navOpen } = useNav()\n\n const customControlsRef = useRef<HTMLDivElement>(null)\n const [isScrollable, setIsScrollable] = useState(false)\n\n useEffect(() => {\n const checkIsScrollable = () => {\n const el = customControlsRef.current\n if (el) {\n const scrollable = el.scrollWidth > el.clientWidth\n setIsScrollable(scrollable)\n }\n }\n\n checkIsScrollable()\n window.addEventListener('resize', checkIsScrollable)\n\n return () => {\n window.removeEventListener('resize', checkIsScrollable)\n }\n }, [Actions])\n\n const ActionComponents = Actions ? Object.values(Actions) : []\n\n return (\n <header className={[baseClass, navOpen && `${baseClass}--nav-open`].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__bg`} />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__wrapper`}>\n <NavToggler className={`${baseClass}__mobile-nav-toggler`} tabIndex={-1}>\n <Hamburger />\n </NavToggler>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__step-nav-wrapper`}>\n <StepNav className={`${baseClass}__step-nav`} CustomIcon={CustomIcon} />\n </div>\n <div className={`${baseClass}__actions-wrapper`}>\n <div className={`${baseClass}__actions`} ref={customControlsRef}>\n {ActionComponents.map((Action, i) => (\n <div\n className={\n isScrollable && i === ActionComponents.length - 1\n ? `${baseClass}__last-action`\n : ''\n }\n key={i}\n >\n {Action}\n </div>\n ))}\n </div>\n {isScrollable && <div className={`${baseClass}__gradient-placeholder`} />}\n </div>\n {localization && (\n <LocalizerLabel ariaLabel=\"invisible\" className={`${baseClass}__localizer-spacing`} />\n )}\n <Link\n aria-label={t('authentication:account')}\n className={`${baseClass}__account`}\n href={formatAdminURL({ adminRoute, path: accountRoute, serverURL })}\n prefetch={false}\n tabIndex={0}\n >\n <RenderCustomComponent CustomComponent={CustomAvatar} Fallback={<Account />} />\n </Link>\n </div>\n </div>\n </div>\n <Localizer className={`${baseClass}__localizer`} />\n </header>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0K1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuK1C,CAAA"}
@@ -92,7 +92,8 @@ export const DeleteDocument = props => {
92
92
  if (redirectAfterDelete) {
93
93
  return startRouteTransition(() => router.push(formatAdminURL({
94
94
  adminRoute,
95
- path: `/collections/${collectionSlug}`
95
+ path: `/collections/${collectionSlug}`,
96
+ serverURL
96
97
  })));
97
98
  }
98
99
  if (typeof onDelete === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","router","i18n","t","startRouteTransition","openModal","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","res","trash","delete","headers","language","patch","body","JSON","stringify","deletedAt","Date","toISOString","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n try {\n const res =\n deletePermanently || !collectionConfig.trash\n ? await requests.delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(`${serverURL}${api}/${collectionSlug}/${id}`, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(\n deletePermanently || !collectionConfig.trash\n ? 'general:titleDeleted'\n : 'general:titleTrashed',\n {\n label: getTranslation(singularLabel, i18n),\n title,\n },\n ) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n deletePermanently,\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={collectionConfig.trash ? 'general:aboutToTrash' : 'general:aboutToDelete'}\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useConfig","useDocumentTitle","useRouteTransition","useTranslation","requests","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","router","i18n","t","startRouteTransition","openModal","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","res","trash","delete","headers","language","patch","body","JSON","stringify","deletedAt","Date","toISOString","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","variables","className","checked","name","onToggle","e","target","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n try {\n const res =\n deletePermanently || !collectionConfig.trash\n ? await requests.delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(`${serverURL}${api}/${collectionSlug}/${id}`, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(\n deletePermanently || !collectionConfig.trash\n ? 'general:titleDeleted'\n : 'general:titleTrashed',\n {\n label: getTranslation(singularLabel, i18n),\n title,\n },\n ) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}`, serverURL }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n deletePermanently,\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={collectionConfig.trash ? 'general:aboutToTrash' : 'general:aboutToDelete'}\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAwB9E,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAuUA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAwB9E,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAyUA,CAAA"}
@@ -86,7 +86,8 @@ export const DocumentControls = props => {
86
86
  const {
87
87
  admin: t1,
88
88
  localization,
89
- routes: t2
89
+ routes: t2,
90
+ serverURL
90
91
  } = config;
91
92
  const {
92
93
  dateFormat
@@ -265,7 +266,8 @@ export const DocumentControls = props => {
265
266
  }) : _jsx(PopupList.Button, {
266
267
  href: formatAdminURL({
267
268
  adminRoute,
268
- path: `/collections/${collectionConfig?.slug}/create`
269
+ path: `/collections/${collectionConfig?.slug}/create`,
270
+ serverURL
269
271
  }),
270
272
  id: "action-create",
271
273
  children: i18n.t("general:createNew")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","undefined","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t1","localization","routes","t2","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t3","t4","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","_jsxs","className","children","_jsx","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}:&nbsp;\n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","undefined","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t1","localization","routes","t2","serverURL","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t3","t4","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","_jsxs","className","children","_jsx","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}:&nbsp;\n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n serverURL,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAa9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0K7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAa9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+K7C,CAAA"}
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { useRouter } from 'next/navigation.js';
7
- import { formatAdminURL, hasDraftsEnabled } from 'payload/shared';
7
+ import { formatAdminURL, formatApiURL, hasDraftsEnabled } from 'payload/shared';
8
8
  import * as qs from 'qs-esm';
9
9
  import React, { useCallback, useMemo } from 'react';
10
10
  import { toast } from 'sonner';
@@ -84,9 +84,13 @@ export const DuplicateDocument = ({
84
84
  credentials: 'include'
85
85
  };
86
86
  try {
87
- const res = await requests.post(`${serverURL}${apiRoute}/${slug}/${id}/duplicate${qs.stringify(queryParams, {
88
- addQueryPrefix: true
89
- })}`, {
87
+ const res = await requests.post(formatApiURL({
88
+ apiRoute,
89
+ path: `/${slug}/${id}/duplicate${qs.stringify(queryParams, {
90
+ addQueryPrefix: true
91
+ })}`,
92
+ serverURL
93
+ }), {
90
94
  body: JSON.stringify(hasDraftsEnabled(collectionConfig) ? {
91
95
  _status: 'draft'
92
96
  } : {}),
@@ -105,7 +109,8 @@ export const DuplicateDocument = ({
105
109
  if (redirectAfterDuplicate) {
106
110
  return startRouteTransition(() => router.push(formatAdminURL({
107
111
  adminRoute,
108
- path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`
112
+ path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`,
113
+ serverURL
109
114
  })));
110
115
  }
111
116
  if (typeof onDuplicate === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","hasDraftsEnabled","qs","React","useCallback","useMemo","toast","useForm","useFormModified","useConfig","useLocale","useRouteTransition","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","SelectLocalesDrawer","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","selectLocales","singularLabel","router","modified","openModal","code","localeCode","setModified","startRouteTransition","config","localization","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","i18n","t","modalSlug","drawerSlug","isDuplicateByLocaleEnabled","fields","handleDuplicate","args","selectedLocales","hasSelectedLocales","length","queryParams","locale","headers","language","credentials","res","post","stringify","addQueryPrefix","body","JSON","_status","doc","errors","message","json","status","success","label","push","path","error","_error","handleConfirmWithoutSaving","buttonLabel","_jsxs","Fragment","_jsx","Button","onClick","confirmLabel","heading","onConfirm"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { SelectLocalesDrawer } from './SelectLocalesDrawer/index.js'\n\nexport type Props = {\n readonly id: number | string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly selectLocales?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n selectLocales,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { openModal } = useModal()\n const { code: localeCode } = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n localization,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n const drawerSlug = `duplicate-locales-${id}`\n\n const isDuplicateByLocaleEnabled = useMemo(() => {\n if (selectLocales && collectionConfig) {\n return traverseForLocalizedFields(collectionConfig.fields)\n }\n return false\n }, [collectionConfig, selectLocales])\n\n const handleDuplicate = useCallback(\n async (args?: { selectedLocales?: string[] }) => {\n const { selectedLocales } = args || {}\n const hasSelectedLocales = selectedLocales && selectedLocales.length > 0\n\n const queryParams: Record<string, string | string[]> = {}\n if (localeCode) {\n queryParams.locale = localeCode\n }\n if (hasSelectedLocales) {\n queryParams.selectedLocales = selectedLocales\n }\n\n const headers = {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n }\n\n try {\n const res = await requests.post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${qs.stringify(queryParams, {\n addQueryPrefix: true,\n })}`,\n {\n body: JSON.stringify(hasDraftsEnabled(collectionConfig) ? { _status: 'draft' } : {}),\n headers,\n },\n )\n\n const { doc, errors, message } = await res.json()\n\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n } catch (_error) {\n toast.error(t('error:unspecific', { label: getTranslation(singularLabel, i18n) }))\n }\n },\n [\n adminRoute,\n apiRoute,\n collectionConfig,\n i18n,\n id,\n localeCode,\n onDuplicate,\n redirectAfterDuplicate,\n router,\n serverURL,\n setModified,\n singularLabel,\n slug,\n startRouteTransition,\n t,\n ],\n )\n\n const handleConfirmWithoutSaving = useCallback(async () => {\n if (selectLocales) {\n openModal(drawerSlug)\n } else {\n await handleDuplicate()\n }\n }, [handleDuplicate, drawerSlug, selectLocales, openModal])\n\n const buttonLabel = selectLocales\n ? `${t('general:duplicate')} ${t('localization:selectedLocales')}`\n : t('general:duplicate')\n\n if (!selectLocales || isDuplicateByLocaleEnabled) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={`action-duplicate${isDuplicateByLocaleEnabled ? `-locales` : ''}`}\n onClick={() => {\n if (modified) {\n openModal(modalSlug)\n } else if (selectLocales) {\n openModal(drawerSlug)\n } else {\n void handleDuplicate()\n }\n }}\n >\n {buttonLabel}\n </PopupList.Button>\n <ConfirmationModal\n body={t('general:unsavedChangesDuplicate')}\n confirmLabel={t('general:duplicateWithoutSaving')}\n heading={t('general:unsavedChanges')}\n modalSlug={modalSlug}\n onConfirm={handleConfirmWithoutSaving}\n />\n {selectLocales && localization && (\n <SelectLocalesDrawer\n localization={localization}\n onConfirm={handleDuplicate}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","formatApiURL","hasDraftsEnabled","qs","React","useCallback","useMemo","toast","useForm","useFormModified","useConfig","useLocale","useRouteTransition","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","SelectLocalesDrawer","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","selectLocales","singularLabel","router","modified","openModal","code","localeCode","setModified","startRouteTransition","config","localization","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","i18n","t","modalSlug","drawerSlug","isDuplicateByLocaleEnabled","fields","handleDuplicate","args","selectedLocales","hasSelectedLocales","length","queryParams","locale","headers","language","credentials","res","post","path","stringify","addQueryPrefix","body","JSON","_status","doc","errors","message","json","status","success","label","push","error","_error","handleConfirmWithoutSaving","buttonLabel","_jsxs","Fragment","_jsx","Button","onClick","confirmLabel","heading","onConfirm"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL, formatApiURL, hasDraftsEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { SelectLocalesDrawer } from './SelectLocalesDrawer/index.js'\n\nexport type Props = {\n readonly id: number | string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly selectLocales?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n selectLocales,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { openModal } = useModal()\n const { code: localeCode } = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n localization,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n const drawerSlug = `duplicate-locales-${id}`\n\n const isDuplicateByLocaleEnabled = useMemo(() => {\n if (selectLocales && collectionConfig) {\n return traverseForLocalizedFields(collectionConfig.fields)\n }\n return false\n }, [collectionConfig, selectLocales])\n\n const handleDuplicate = useCallback(\n async (args?: { selectedLocales?: string[] }) => {\n const { selectedLocales } = args || {}\n const hasSelectedLocales = selectedLocales && selectedLocales.length > 0\n\n const queryParams: Record<string, string | string[]> = {}\n if (localeCode) {\n queryParams.locale = localeCode\n }\n if (hasSelectedLocales) {\n queryParams.selectedLocales = selectedLocales\n }\n\n const headers = {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n }\n\n try {\n const res = await requests.post(\n formatApiURL({\n apiRoute,\n path: `/${slug}/${id}/duplicate${qs.stringify(queryParams, {\n addQueryPrefix: true,\n })}`,\n serverURL,\n }),\n {\n body: JSON.stringify(hasDraftsEnabled(collectionConfig) ? { _status: 'draft' } : {}),\n headers,\n },\n )\n\n const { doc, errors, message } = await res.json()\n\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`,\n serverURL,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n } catch (_error) {\n toast.error(t('error:unspecific', { label: getTranslation(singularLabel, i18n) }))\n }\n },\n [\n adminRoute,\n apiRoute,\n collectionConfig,\n i18n,\n id,\n localeCode,\n onDuplicate,\n redirectAfterDuplicate,\n router,\n serverURL,\n setModified,\n singularLabel,\n slug,\n startRouteTransition,\n t,\n ],\n )\n\n const handleConfirmWithoutSaving = useCallback(async () => {\n if (selectLocales) {\n openModal(drawerSlug)\n } else {\n await handleDuplicate()\n }\n }, [handleDuplicate, drawerSlug, selectLocales, openModal])\n\n const buttonLabel = selectLocales\n ? `${t('general:duplicate')} ${t('localization:selectedLocales')}`\n : t('general:duplicate')\n\n if (!selectLocales || isDuplicateByLocaleEnabled) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={`action-duplicate${isDuplicateByLocaleEnabled ? `-locales` : ''}`}\n onClick={() => {\n if (modified) {\n openModal(modalSlug)\n } else if (selectLocales) {\n openModal(drawerSlug)\n } else {\n void handleDuplicate()\n }\n }}\n >\n {buttonLabel}\n </PopupList.Button>\n <ConfirmationModal\n body={t('general:unsavedChangesDuplicate')}\n confirmLabel={t('general:duplicateWithoutSaving')}\n heading={t('general:unsavedChanges')}\n modalSlug={modalSlug}\n onConfirm={handleConfirmWithoutSaving}\n />\n {selectLocales && localization && (\n <SelectLocalesDrawer\n localization={localization}\n onConfirm={handleDuplicate}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,SAAS,CAAA;AAOhD,OAAO,KAAoD,MAAM,OAAO,CAAA;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAkBvE,OAAO,cAAc,CAAA;AACrB,OAAO,qCAAqC,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AA+E1D,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAClD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA0QtE,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,SAAS,CAAA;AAYhD,OAAO,KAAoD,MAAM,OAAO,CAAA;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAkBvE,OAAO,cAAc,CAAA;AACrB,OAAO,qCAAqC,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AA+E1D,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAClD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAsRtE,CAAA"}
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { useModal } from '@faceless-ui/modal';
6
6
  import { getTranslation } from '@payloadcms/translations';
7
7
  import { useRouter, useSearchParams } from 'next/navigation.js';
8
- import { combineWhereConstraints, mergeListSearchAndWhere, unflatten } from 'payload/shared';
8
+ import { combineWhereConstraints, formatApiURL, mergeListSearchAndWhere, unflatten } from 'payload/shared';
9
9
  import * as qs from 'qs-esm';
10
10
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
11
11
  import { useForm } from '../../forms/Form/context.js';
@@ -399,14 +399,26 @@ export const EditManyDrawerContent = props => {
399
399
  className: `${baseClass}__document-actions`,
400
400
  children: collection?.versions?.drafts ? /*#__PURE__*/_jsxs(React.Fragment, {
401
401
  children: [/*#__PURE__*/_jsx(SaveDraftButton, {
402
- action: `${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`,
402
+ action: formatApiURL({
403
+ apiRoute,
404
+ path: `/${collection.slug}${queryString}&draft=true`,
405
+ serverURL
406
+ }),
403
407
  disabled: selectedFields.length === 0
404
408
  }), /*#__PURE__*/_jsx(PublishButton, {
405
- action: `${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`,
409
+ action: formatApiURL({
410
+ apiRoute,
411
+ path: `/${collection.slug}${queryString}&draft=true`,
412
+ serverURL
413
+ }),
406
414
  disabled: selectedFields.length === 0
407
415
  })]
408
416
  }) : /*#__PURE__*/_jsx(Submit, {
409
- action: `${serverURL}${apiRoute}/${collection.slug}${queryString}`,
417
+ action: formatApiURL({
418
+ apiRoute,
419
+ path: `/${collection.slug}${queryString}`,
420
+ serverURL
421
+ }),
410
422
  disabled: selectedFields.length === 0
411
423
  })
412
424
  })