@payloadcms/ui 3.62.0 → 3.63.0-internal.1f56403
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +5 -1
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +16 -7
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.d.ts +16 -0
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.d.ts.map +1 -0
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +103 -0
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -0
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.scss +24 -0
- package/dist/elements/DuplicateDocument/index.d.ts +2 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +82 -38
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -64
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.d.ts +1 -1
- package/dist/elements/withMergedProps/index.js +1 -1
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAK1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAK1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBAkF9D"}
|
|
@@ -25,7 +25,8 @@ export function ConfirmationModal(props) {
|
|
|
25
25
|
const editDepth = useDrawerDepth();
|
|
26
26
|
const [confirming, setConfirming] = React.useState(false);
|
|
27
27
|
const {
|
|
28
|
-
closeModal
|
|
28
|
+
closeModal,
|
|
29
|
+
isModalOpen
|
|
29
30
|
} = useModal();
|
|
30
31
|
const {
|
|
31
32
|
t
|
|
@@ -70,6 +71,9 @@ export function ConfirmationModal(props) {
|
|
|
70
71
|
t1 = $[9];
|
|
71
72
|
}
|
|
72
73
|
const onCancel = t1;
|
|
74
|
+
if (!isModalOpen(modalSlug)) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
73
77
|
let t2;
|
|
74
78
|
if ($[10] !== className) {
|
|
75
79
|
t2 = [baseClass, className].filter(Boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useTranslation","Button","drawerZBase","useDrawerDepth","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","_jsx","closeOnBlur","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase, useDrawerDepth } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useDrawerDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n // Fixes https://github.com/payloadcms/payload/issues/13778\n closeOnBlur={false}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {typeof heading === 'string' ? <h1>{heading}</h1> : heading}\n {typeof body === 'string' ? <p>{body}</p> : body}\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,KAAK,EAAEC,QAAQ,QAAQ;AAChC,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAEnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,EAAEC,cAAc,QAAQ;AAC5C,OAAO;AAEP,MAAMC,SAAA,GAAY;AAgBlB,OAAO,SAAAC,kBAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACL;IAAAa,IAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,eAAA;IAAAC,YAAA;IAAAC,OAAA;IAAAC,SAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,SAAA,EAAAC;EAAA,IAUIZ,KAAA;EAEJ,MAAAa,SAAA,GAAkBhB,cAAA;EAElB,OAAAiB,UAAA,EAAAC,aAAA,IAAoCvB,KAAA,CAAAwB,QAAA,MAAe;EAEnD;IAAAC;EAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useTranslation","Button","drawerZBase","useDrawerDepth","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","isModalOpen","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","_jsx","closeOnBlur","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase, useDrawerDepth } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useDrawerDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal, isModalOpen } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n if (!isModalOpen(modalSlug)) {\n return null\n }\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n // Fixes https://github.com/payloadcms/payload/issues/13778\n closeOnBlur={false}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {typeof heading === 'string' ? <h1>{heading}</h1> : heading}\n {typeof body === 'string' ? <p>{body}</p> : body}\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\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,
|
|
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,CA4UA,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { formatAdminURL } from 'payload/shared';
|
|
7
7
|
import React, { Fragment, useEffect } from 'react';
|
|
@@ -270,12 +270,21 @@ export const DocumentControls = props => {
|
|
|
270
270
|
id: "action-create",
|
|
271
271
|
children: i18n.t("general:createNew")
|
|
272
272
|
})
|
|
273
|
-
}), collectionConfig.disableDuplicate !== true && isEditing &&
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
273
|
+
}), collectionConfig.disableDuplicate !== true && isEditing && _jsxs(_Fragment, {
|
|
274
|
+
children: [_jsx(DuplicateDocument, {
|
|
275
|
+
id,
|
|
276
|
+
onDuplicate,
|
|
277
|
+
redirectAfterDuplicate,
|
|
278
|
+
singularLabel: collectionConfig?.labels?.singular,
|
|
279
|
+
slug: collectionConfig?.slug
|
|
280
|
+
}), localization && _jsx(DuplicateDocument, {
|
|
281
|
+
id,
|
|
282
|
+
onDuplicate,
|
|
283
|
+
redirectAfterDuplicate,
|
|
284
|
+
selectLocales: true,
|
|
285
|
+
singularLabel: collectionConfig?.labels?.singular,
|
|
286
|
+
slug: collectionConfig?.slug
|
|
287
|
+
})]
|
|
279
288
|
})]
|
|
280
289
|
}), hasDeletePermission && _jsx(DeleteDocument, {
|
|
281
290
|
buttonId: "action-delete",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","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","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","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","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 } 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 collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\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 {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\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')}: \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')}: </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 {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\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 <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\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","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","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","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 } 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 collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\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 {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\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')}: \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')}: </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 {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\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":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ClientConfig } from 'payload';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import './index.scss';
|
|
4
|
+
export type LocaleOption = {
|
|
5
|
+
label: string;
|
|
6
|
+
value: string;
|
|
7
|
+
};
|
|
8
|
+
export type SelectLocalesDrawerProps = {
|
|
9
|
+
readonly localization: Exclude<ClientConfig['localization'], false>;
|
|
10
|
+
readonly onConfirm: (args: {
|
|
11
|
+
selectedLocales: string[];
|
|
12
|
+
}) => Promise<void> | void;
|
|
13
|
+
readonly slug: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const SelectLocalesDrawer: React.FC<SelectLocalesDrawerProps>;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/DuplicateDocument/SelectLocalesDrawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK3C,OAAO,KAAyC,MAAM,OAAO,CAAA;AAO7D,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAA;IACnE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAiBD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAsFlE,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { useModal } from '@faceless-ui/modal';
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
+
import { setsAreEqual } from 'payload/shared';
|
|
7
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
8
|
+
import { CheckboxInput } from '../../../fields/Checkbox/index.js';
|
|
9
|
+
import { useTranslation } from '../../../providers/Translation/index.js';
|
|
10
|
+
import { DrawerHeader } from '../../BulkUpload/Header/index.js';
|
|
11
|
+
import { Button } from '../../Button/index.js';
|
|
12
|
+
import { Drawer } from '../../Drawer/index.js';
|
|
13
|
+
import './index.scss';
|
|
14
|
+
const getLocaleOptions = ({
|
|
15
|
+
i18n,
|
|
16
|
+
localization
|
|
17
|
+
}) => {
|
|
18
|
+
return localization.locales.map(locale => ({
|
|
19
|
+
label: getTranslation(locale.label, i18n),
|
|
20
|
+
value: locale.code
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
const baseClass = 'select-locales-drawer';
|
|
24
|
+
export const SelectLocalesDrawer = ({
|
|
25
|
+
slug,
|
|
26
|
+
localization,
|
|
27
|
+
onConfirm
|
|
28
|
+
}) => {
|
|
29
|
+
const {
|
|
30
|
+
i18n,
|
|
31
|
+
t
|
|
32
|
+
} = useTranslation();
|
|
33
|
+
const {
|
|
34
|
+
toggleModal
|
|
35
|
+
} = useModal();
|
|
36
|
+
const [selectedLocales, setSelectedLocales] = useState([]);
|
|
37
|
+
const localeOptions = useMemo(() => getLocaleOptions({
|
|
38
|
+
i18n,
|
|
39
|
+
localization
|
|
40
|
+
}), [localization, i18n]);
|
|
41
|
+
const allLocales = useMemo(() => localeOptions.map(locale => locale.value), [localeOptions]);
|
|
42
|
+
const allLocalesSelected = useMemo(() => setsAreEqual(new Set(selectedLocales), new Set(allLocales)), [selectedLocales, allLocales]);
|
|
43
|
+
const handleSelectAll = useCallback(() => {
|
|
44
|
+
setSelectedLocales(allLocalesSelected ? [] : [...allLocales]);
|
|
45
|
+
}, [allLocalesSelected, allLocales]);
|
|
46
|
+
const handleToggleLocale = useCallback(localeValue => {
|
|
47
|
+
setSelectedLocales(prev => prev.includes(localeValue) ? prev.filter(l => l !== localeValue) : [...prev, localeValue]);
|
|
48
|
+
}, []);
|
|
49
|
+
const handleConfirm = useCallback(async () => {
|
|
50
|
+
await onConfirm({
|
|
51
|
+
selectedLocales
|
|
52
|
+
});
|
|
53
|
+
toggleModal(slug);
|
|
54
|
+
}, [onConfirm, selectedLocales, slug, toggleModal]);
|
|
55
|
+
return /*#__PURE__*/_jsxs(Drawer, {
|
|
56
|
+
className: baseClass,
|
|
57
|
+
gutter: false,
|
|
58
|
+
Header: /*#__PURE__*/_jsx(DrawerHeader, {
|
|
59
|
+
onClose: () => {
|
|
60
|
+
toggleModal(slug);
|
|
61
|
+
},
|
|
62
|
+
title: `${t('general:duplicate')} ${t('localization:selectedLocales')}`
|
|
63
|
+
}),
|
|
64
|
+
slug: slug,
|
|
65
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
66
|
+
className: `${baseClass}__sub-header`,
|
|
67
|
+
children: [/*#__PURE__*/_jsx("span", {
|
|
68
|
+
children: t('localization:selectLocaleToDuplicate')
|
|
69
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
70
|
+
buttonStyle: "primary",
|
|
71
|
+
disabled: selectedLocales.length === 0,
|
|
72
|
+
iconPosition: "left",
|
|
73
|
+
id: "#action-duplicate-confirm",
|
|
74
|
+
onClick: handleConfirm,
|
|
75
|
+
size: "medium",
|
|
76
|
+
children: t('general:duplicate')
|
|
77
|
+
})]
|
|
78
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
79
|
+
className: `${baseClass}__content`,
|
|
80
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
81
|
+
className: `${baseClass}__item`,
|
|
82
|
+
children: /*#__PURE__*/_jsx(CheckboxInput, {
|
|
83
|
+
checked: allLocalesSelected,
|
|
84
|
+
id: "select-locale-all",
|
|
85
|
+
label: t('general:selectAll', {
|
|
86
|
+
count: allLocales.length,
|
|
87
|
+
label: t('general:locales')
|
|
88
|
+
}),
|
|
89
|
+
onToggle: handleSelectAll
|
|
90
|
+
})
|
|
91
|
+
}), localeOptions.map(locale_0 => /*#__PURE__*/_jsx("div", {
|
|
92
|
+
className: `${baseClass}__item`,
|
|
93
|
+
children: /*#__PURE__*/_jsx(CheckboxInput, {
|
|
94
|
+
checked: selectedLocales.includes(locale_0.value),
|
|
95
|
+
id: `select-locale-${locale_0.value}`,
|
|
96
|
+
label: locale_0.label,
|
|
97
|
+
onToggle: () => handleToggleLocale(locale_0.value)
|
|
98
|
+
})
|
|
99
|
+
}, locale_0.value))]
|
|
100
|
+
})]
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","setsAreEqual","React","useCallback","useMemo","useState","CheckboxInput","useTranslation","DrawerHeader","Button","Drawer","getLocaleOptions","i18n","localization","locales","map","locale","label","value","code","baseClass","SelectLocalesDrawer","slug","onConfirm","t","toggleModal","selectedLocales","setSelectedLocales","localeOptions","allLocales","allLocalesSelected","Set","handleSelectAll","handleToggleLocale","localeValue","prev","includes","filter","l","handleConfirm","_jsxs","className","gutter","Header","_jsx","onClose","title","buttonStyle","disabled","length","iconPosition","id","onClick","size","checked","count","onToggle"],"sources":["../../../../src/elements/DuplicateDocument/SelectLocalesDrawer/index.tsx"],"sourcesContent":["'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { setsAreEqual } from 'payload/shared'\nimport React, { useCallback, useMemo, useState } from 'react'\n\nimport { CheckboxInput } from '../../../fields/Checkbox/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { DrawerHeader } from '../../BulkUpload/Header/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport './index.scss'\n\nexport type LocaleOption = {\n label: string\n value: string\n}\n\nexport type SelectLocalesDrawerProps = {\n readonly localization: Exclude<ClientConfig['localization'], false>\n readonly onConfirm: (args: { selectedLocales: string[] }) => Promise<void> | void\n readonly slug: string\n}\n\nconst getLocaleOptions = ({\n i18n,\n localization,\n}: {\n i18n: I18nClient\n localization: SelectLocalesDrawerProps['localization']\n}): LocaleOption[] => {\n return localization.locales.map((locale) => ({\n label: getTranslation(locale.label, i18n),\n value: locale.code,\n }))\n}\n\nconst baseClass = 'select-locales-drawer'\n\nexport const SelectLocalesDrawer: React.FC<SelectLocalesDrawerProps> = ({\n slug,\n localization,\n onConfirm,\n}) => {\n const { i18n, t } = useTranslation()\n const { toggleModal } = useModal()\n const [selectedLocales, setSelectedLocales] = useState<string[]>([])\n\n const localeOptions = useMemo(\n () => getLocaleOptions({ i18n, localization }),\n [localization, i18n],\n )\n const allLocales = useMemo(() => localeOptions.map((locale) => locale.value), [localeOptions])\n const allLocalesSelected = useMemo(\n () => setsAreEqual(new Set(selectedLocales), new Set(allLocales)),\n [selectedLocales, allLocales],\n )\n\n const handleSelectAll = useCallback(() => {\n setSelectedLocales(allLocalesSelected ? [] : [...allLocales])\n }, [allLocalesSelected, allLocales])\n\n const handleToggleLocale = useCallback((localeValue: string) => {\n setSelectedLocales((prev) =>\n prev.includes(localeValue) ? prev.filter((l) => l !== localeValue) : [...prev, localeValue],\n )\n }, [])\n\n const handleConfirm = useCallback(async () => {\n await onConfirm({ selectedLocales })\n toggleModal(slug)\n }, [onConfirm, selectedLocales, slug, toggleModal])\n\n return (\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(slug)\n }}\n title={`${t('general:duplicate')} ${t('localization:selectedLocales')}`}\n />\n }\n slug={slug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>{t('localization:selectLocaleToDuplicate')}</span>\n <Button\n buttonStyle=\"primary\"\n disabled={selectedLocales.length === 0}\n iconPosition=\"left\"\n id=\"#action-duplicate-confirm\"\n onClick={handleConfirm}\n size=\"medium\"\n >\n {t('general:duplicate')}\n </Button>\n </div>\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__item`}>\n <CheckboxInput\n checked={allLocalesSelected}\n id=\"select-locale-all\"\n label={t('general:selectAll', {\n count: allLocales.length,\n label: t('general:locales'),\n })}\n onToggle={handleSelectAll}\n />\n </div>\n {localeOptions.map((locale) => (\n <div className={`${baseClass}__item`} key={locale.value}>\n <CheckboxInput\n checked={selectedLocales.includes(locale.value)}\n id={`select-locale-${locale.value}`}\n label={locale.label}\n onToggle={() => handleToggleLocale(locale.value)}\n />\n </div>\n ))}\n </div>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@import '../../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
.select-locales-drawer {
|
|
4
|
+
&__sub-header {
|
|
5
|
+
padding: 0 var(--gutter-h);
|
|
6
|
+
display: flex;
|
|
7
|
+
justify-content: space-between;
|
|
8
|
+
align-items: center;
|
|
9
|
+
border-bottom: 1px solid var(--theme-border-color);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&__content {
|
|
13
|
+
padding: calc(var(--base) * 1.5) var(--gutter-h);
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
gap: calc(var(--base));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__item {
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: row;
|
|
22
|
+
gap: calc(var(--base) * 0.5);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -2,9 +2,10 @@ import type { SanitizedCollectionConfig } from 'payload';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js';
|
|
4
4
|
export type Props = {
|
|
5
|
-
readonly id: string;
|
|
5
|
+
readonly id: number | string;
|
|
6
6
|
readonly onDuplicate?: DocumentDrawerContextType['onDuplicate'];
|
|
7
7
|
readonly redirectAfterDuplicate?: boolean;
|
|
8
|
+
readonly selectLocales?: boolean;
|
|
8
9
|
readonly singularLabel: SanitizedCollectionConfig['labels']['singular'];
|
|
9
10
|
readonly slug: string;
|
|
10
11
|
};
|
|
@@ -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;
|
|
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"}
|
|
@@ -5,7 +5,8 @@ import { useModal } from '@faceless-ui/modal';
|
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { useRouter } from 'next/navigation.js';
|
|
7
7
|
import { formatAdminURL } from 'payload/shared';
|
|
8
|
-
import
|
|
8
|
+
import * as qs from 'qs-esm';
|
|
9
|
+
import React, { useCallback, useMemo } from 'react';
|
|
9
10
|
import { toast } from 'sonner';
|
|
10
11
|
import { useForm, useFormModified } from '../../forms/Form/context.js';
|
|
11
12
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -13,13 +14,16 @@ import { useLocale } from '../../providers/Locale/index.js';
|
|
|
13
14
|
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
14
15
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
16
|
import { requests } from '../../utilities/api.js';
|
|
17
|
+
import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
|
|
16
18
|
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
17
19
|
import { PopupList } from '../Popup/index.js';
|
|
20
|
+
import { SelectLocalesDrawer } from './SelectLocalesDrawer/index.js';
|
|
18
21
|
export const DuplicateDocument = ({
|
|
19
22
|
id,
|
|
20
23
|
slug,
|
|
21
24
|
onDuplicate,
|
|
22
25
|
redirectAfterDuplicate = true,
|
|
26
|
+
selectLocales,
|
|
23
27
|
singularLabel
|
|
24
28
|
}) => {
|
|
25
29
|
const router = useRouter();
|
|
@@ -27,7 +31,9 @@ export const DuplicateDocument = ({
|
|
|
27
31
|
const {
|
|
28
32
|
openModal
|
|
29
33
|
} = useModal();
|
|
30
|
-
const
|
|
34
|
+
const {
|
|
35
|
+
code: localeCode
|
|
36
|
+
} = useLocale();
|
|
31
37
|
const {
|
|
32
38
|
setModified
|
|
33
39
|
} = useForm();
|
|
@@ -36,6 +42,7 @@ export const DuplicateDocument = ({
|
|
|
36
42
|
} = useRouteTransition();
|
|
37
43
|
const {
|
|
38
44
|
config: {
|
|
45
|
+
localization,
|
|
39
46
|
routes: {
|
|
40
47
|
admin: adminRoute,
|
|
41
48
|
api: apiRoute
|
|
@@ -47,22 +54,42 @@ export const DuplicateDocument = ({
|
|
|
47
54
|
const collectionConfig = getEntityConfig({
|
|
48
55
|
collectionSlug: slug
|
|
49
56
|
});
|
|
50
|
-
const [renderModal, setRenderModal] = React.useState(false);
|
|
51
57
|
const {
|
|
52
58
|
i18n,
|
|
53
59
|
t
|
|
54
60
|
} = useTranslation();
|
|
55
61
|
const modalSlug = `duplicate-${id}`;
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
const drawerSlug = `duplicate-locales-${id}`;
|
|
63
|
+
const isDuplicateByLocaleEnabled = useMemo(() => {
|
|
64
|
+
if (selectLocales && collectionConfig) {
|
|
65
|
+
return traverseForLocalizedFields(collectionConfig.fields);
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}, [collectionConfig, selectLocales]);
|
|
69
|
+
const handleDuplicate = useCallback(async args => {
|
|
70
|
+
const {
|
|
71
|
+
selectedLocales
|
|
72
|
+
} = args || {};
|
|
73
|
+
const hasSelectedLocales = selectedLocales && selectedLocales.length > 0;
|
|
74
|
+
const queryParams = {};
|
|
75
|
+
if (localeCode) {
|
|
76
|
+
queryParams.locale = localeCode;
|
|
77
|
+
}
|
|
78
|
+
if (hasSelectedLocales) {
|
|
79
|
+
queryParams.selectedLocales = selectedLocales;
|
|
80
|
+
}
|
|
81
|
+
const headers = {
|
|
82
|
+
'Accept-Language': i18n.language,
|
|
83
|
+
'Content-Type': 'application/json',
|
|
84
|
+
credentials: 'include'
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
const res = await requests.post(`${serverURL}${apiRoute}/${slug}/${id}/duplicate${qs.stringify(queryParams, {
|
|
88
|
+
addQueryPrefix: true
|
|
89
|
+
})}`, {
|
|
90
|
+
body: JSON.stringify({}),
|
|
91
|
+
headers
|
|
92
|
+
});
|
|
66
93
|
const {
|
|
67
94
|
doc,
|
|
68
95
|
errors,
|
|
@@ -76,7 +103,7 @@ export const DuplicateDocument = ({
|
|
|
76
103
|
if (redirectAfterDuplicate) {
|
|
77
104
|
return startRouteTransition(() => router.push(formatAdminURL({
|
|
78
105
|
adminRoute,
|
|
79
|
-
path: `/collections/${slug}/${doc.id}${
|
|
106
|
+
path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`
|
|
80
107
|
})));
|
|
81
108
|
}
|
|
82
109
|
if (typeof onDuplicate === 'function') {
|
|
@@ -90,30 +117,47 @@ export const DuplicateDocument = ({
|
|
|
90
117
|
label: getTranslation(singularLabel, i18n)
|
|
91
118
|
}));
|
|
92
119
|
}
|
|
120
|
+
} catch (_error) {
|
|
121
|
+
toast.error(t('error:unspecific', {
|
|
122
|
+
label: getTranslation(singularLabel, i18n)
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
}, [adminRoute, apiRoute, collectionConfig, i18n, id, localeCode, onDuplicate, redirectAfterDuplicate, router, serverURL, setModified, singularLabel, slug, startRouteTransition, t]);
|
|
126
|
+
const handleConfirmWithoutSaving = useCallback(async () => {
|
|
127
|
+
if (selectLocales) {
|
|
128
|
+
openModal(drawerSlug);
|
|
129
|
+
} else {
|
|
130
|
+
await handleDuplicate();
|
|
131
|
+
}
|
|
132
|
+
}, [handleDuplicate, drawerSlug, selectLocales, openModal]);
|
|
133
|
+
const buttonLabel = selectLocales ? `${t('general:duplicate')} ${t('localization:selectedLocales')}` : t('general:duplicate');
|
|
134
|
+
if (!selectLocales || isDuplicateByLocaleEnabled) {
|
|
135
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
136
|
+
children: [/*#__PURE__*/_jsx(PopupList.Button, {
|
|
137
|
+
id: `action-duplicate${isDuplicateByLocaleEnabled ? `-locales` : ''}`,
|
|
138
|
+
onClick: () => {
|
|
139
|
+
if (modified) {
|
|
140
|
+
openModal(modalSlug);
|
|
141
|
+
} else if (selectLocales) {
|
|
142
|
+
openModal(drawerSlug);
|
|
143
|
+
} else {
|
|
144
|
+
void handleDuplicate();
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
children: buttonLabel
|
|
148
|
+
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
149
|
+
body: t('general:unsavedChangesDuplicate'),
|
|
150
|
+
confirmLabel: t('general:duplicateWithoutSaving'),
|
|
151
|
+
heading: t('general:unsavedChanges'),
|
|
152
|
+
modalSlug: modalSlug,
|
|
153
|
+
onConfirm: handleConfirmWithoutSaving
|
|
154
|
+
}), selectLocales && localization && /*#__PURE__*/_jsx(SelectLocalesDrawer, {
|
|
155
|
+
localization: localization,
|
|
156
|
+
onConfirm: handleDuplicate,
|
|
157
|
+
slug: drawerSlug
|
|
158
|
+
})]
|
|
93
159
|
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
setRenderModal(false);
|
|
97
|
-
await duplicate();
|
|
98
|
-
}, [duplicate]);
|
|
99
|
-
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
100
|
-
children: [/*#__PURE__*/_jsx(PopupList.Button, {
|
|
101
|
-
id: "action-duplicate",
|
|
102
|
-
onClick: () => {
|
|
103
|
-
if (modified) {
|
|
104
|
-
setRenderModal(true);
|
|
105
|
-
return openModal(modalSlug);
|
|
106
|
-
}
|
|
107
|
-
return duplicate();
|
|
108
|
-
},
|
|
109
|
-
children: t('general:duplicate')
|
|
110
|
-
}), renderModal && /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
111
|
-
body: t('general:unsavedChangesDuplicate'),
|
|
112
|
-
confirmLabel: t('general:duplicateWithoutSaving'),
|
|
113
|
-
heading: t('general:unsavedChanges'),
|
|
114
|
-
modalSlug: modalSlug,
|
|
115
|
-
onConfirm: onConfirm
|
|
116
|
-
})]
|
|
117
|
-
});
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
118
162
|
};
|
|
119
163
|
//# sourceMappingURL=index.js.map
|