@payloadcms/ui 3.0.0-beta.102 → 3.0.0-beta.104
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/DeleteDocument/index.d.ts +9 -6
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +40 -8
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +8 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +26 -8
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +97 -35
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +5 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts +1 -0
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +2 -2
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts +6 -3
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +101 -151
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +4 -2
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +2 -2
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +6 -0
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +2 -2
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts +5 -5
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +48 -41
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/Password/types.d.ts +2 -2
- package/dist/fields/Password/types.d.ts.map +1 -1
- package/dist/fields/Password/types.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +64 -16
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +17 -0
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +11 -4
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/Row/index.scss +12 -2
- package/dist/fields/Select/Input.d.ts +1 -1
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Text/types.d.ts +1 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/types.d.ts +1 -1
- package/dist/fields/Textarea/types.d.ts.map +1 -1
- package/dist/fields/Textarea/types.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.js +31 -11
- package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +18 -1
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -5
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import type { SanitizedCollectionConfig } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import type { DocumentInfoContext } from '../../providers/DocumentInfo/index.js';
|
|
3
4
|
import './index.scss';
|
|
4
5
|
export type Props = {
|
|
5
|
-
buttonId?: string;
|
|
6
|
-
collectionSlug: SanitizedCollectionConfig['slug'];
|
|
7
|
-
id?: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
readonly buttonId?: string;
|
|
7
|
+
readonly collectionSlug: SanitizedCollectionConfig['slug'];
|
|
8
|
+
readonly id?: string;
|
|
9
|
+
readonly onDelete?: DocumentInfoContext['onDelete'];
|
|
10
|
+
readonly redirectAfterDelete?: boolean;
|
|
11
|
+
readonly singularLabel: SanitizedCollectionConfig['labels']['singular'];
|
|
12
|
+
readonly title?: string;
|
|
13
|
+
readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle'];
|
|
11
14
|
};
|
|
12
15
|
export declare const DeleteDocument: React.FC<Props>;
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0B,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKhF,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAahF,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,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACnD,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,CA2L1C,CAAA"}
|
|
@@ -4,15 +4,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
import { Modal, useModal } from '@faceless-ui/modal';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { useRouter } from 'next/navigation.js';
|
|
7
|
-
import React, { useCallback, useState } from 'react';
|
|
7
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
8
8
|
import { toast } from 'sonner';
|
|
9
9
|
import { useForm } from '../../forms/Form/context.js';
|
|
10
10
|
import { useConfig } from '../../providers/Config/index.js';
|
|
11
11
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
12
|
+
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
12
13
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
13
14
|
import { requests } from '../../utilities/api.js';
|
|
14
15
|
import { formatAdminURL } from '../../utilities/formatAdminURL.js';
|
|
15
16
|
import { Button } from '../Button/index.js';
|
|
17
|
+
import { drawerZBase } from '../Drawer/index.js';
|
|
16
18
|
import { PopupList } from '../Popup/index.js';
|
|
17
19
|
import { Translation } from '../Translation/index.js';
|
|
18
20
|
import './index.scss';
|
|
@@ -22,6 +24,8 @@ export const DeleteDocument = props => {
|
|
|
22
24
|
id,
|
|
23
25
|
buttonId,
|
|
24
26
|
collectionSlug,
|
|
27
|
+
onDelete,
|
|
28
|
+
redirectAfterDelete = true,
|
|
25
29
|
singularLabel,
|
|
26
30
|
title: titleFromProps
|
|
27
31
|
} = props;
|
|
@@ -32,13 +36,18 @@ export const DeleteDocument = props => {
|
|
|
32
36
|
api
|
|
33
37
|
},
|
|
34
38
|
serverURL
|
|
35
|
-
}
|
|
39
|
+
},
|
|
40
|
+
getEntityConfig
|
|
36
41
|
} = useConfig();
|
|
42
|
+
const collectionConfig = getEntityConfig({
|
|
43
|
+
collectionSlug
|
|
44
|
+
});
|
|
37
45
|
const {
|
|
38
46
|
setModified
|
|
39
47
|
} = useForm();
|
|
40
48
|
const [deleting, setDeleting] = useState(false);
|
|
41
49
|
const {
|
|
50
|
+
closeModal,
|
|
42
51
|
toggleModal
|
|
43
52
|
} = useModal();
|
|
44
53
|
const router = useRouter();
|
|
@@ -49,6 +58,7 @@ export const DeleteDocument = props => {
|
|
|
49
58
|
const {
|
|
50
59
|
title
|
|
51
60
|
} = useDocumentInfo();
|
|
61
|
+
const editDepth = useEditDepth();
|
|
52
62
|
const titleToRender = titleFromProps || title || id;
|
|
53
63
|
const modalSlug = `delete-${id}`;
|
|
54
64
|
const addDefaultError = useCallback(() => {
|
|
@@ -57,6 +67,11 @@ export const DeleteDocument = props => {
|
|
|
57
67
|
title
|
|
58
68
|
}));
|
|
59
69
|
}, [t, title]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
return () => {
|
|
72
|
+
closeModal(modalSlug);
|
|
73
|
+
};
|
|
74
|
+
}, [closeModal, modalSlug]);
|
|
60
75
|
const handleDelete = useCallback(async () => {
|
|
61
76
|
setDeleting(true);
|
|
62
77
|
setModified(false);
|
|
@@ -76,10 +91,20 @@ export const DeleteDocument = props => {
|
|
|
76
91
|
label: getTranslation(singularLabel, i18n),
|
|
77
92
|
title
|
|
78
93
|
}) || json.message);
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
94
|
+
if (redirectAfterDelete) {
|
|
95
|
+
return router.push(formatAdminURL({
|
|
96
|
+
adminRoute,
|
|
97
|
+
path: `/collections/${collectionSlug}`
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
if (typeof onDelete === 'function') {
|
|
101
|
+
await onDelete({
|
|
102
|
+
id,
|
|
103
|
+
collectionConfig
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
toggleModal(modalSlug);
|
|
107
|
+
return;
|
|
83
108
|
}
|
|
84
109
|
toggleModal(modalSlug);
|
|
85
110
|
if (json.errors) {
|
|
@@ -95,7 +120,7 @@ export const DeleteDocument = props => {
|
|
|
95
120
|
} catch (e) {
|
|
96
121
|
addDefaultError();
|
|
97
122
|
}
|
|
98
|
-
}, [setModified, serverURL, api, collectionSlug, id, toggleModal, modalSlug, t, singularLabel, i18n, title, router, adminRoute, addDefaultError]);
|
|
123
|
+
}, [setModified, serverURL, api, collectionSlug, id, toggleModal, modalSlug, t, singularLabel, i18n, title, router, adminRoute, addDefaultError, redirectAfterDelete, onDelete, collectionConfig]);
|
|
99
124
|
if (id) {
|
|
100
125
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
101
126
|
children: [/*#__PURE__*/_jsx(PopupList.Button, {
|
|
@@ -108,6 +133,9 @@ export const DeleteDocument = props => {
|
|
|
108
133
|
}), /*#__PURE__*/_jsx(Modal, {
|
|
109
134
|
className: baseClass,
|
|
110
135
|
slug: modalSlug,
|
|
136
|
+
style: {
|
|
137
|
+
zIndex: drawerZBase + editDepth
|
|
138
|
+
},
|
|
111
139
|
children: /*#__PURE__*/_jsxs("div", {
|
|
112
140
|
className: `${baseClass}__wrapper`,
|
|
113
141
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
@@ -142,7 +170,11 @@ export const DeleteDocument = props => {
|
|
|
142
170
|
children: t('general:cancel')
|
|
143
171
|
}), /*#__PURE__*/_jsx(Button, {
|
|
144
172
|
id: "confirm-delete",
|
|
145
|
-
onClick:
|
|
173
|
+
onClick: () => {
|
|
174
|
+
if (!deleting) {
|
|
175
|
+
void handleDelete();
|
|
176
|
+
}
|
|
177
|
+
},
|
|
146
178
|
size: "large",
|
|
147
179
|
children: deleting ? t('general:deleting') : t('general:confirm')
|
|
148
180
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","requests","formatAdminURL","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","_jsxs","Fragment","_jsx","onClick","className","slug","elements","1","children","i18nKey","variables","buttonStyle","undefined","size","type"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/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 buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-delete\"\n onClick={deleting ? undefined : handleDelete}\n size=\"large\"\n >\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","deleting","setDeleting","closeModal","toggleModal","router","i18n","t","editDepth","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","_jsxs","Fragment","_jsx","onClick","className","slug","style","zIndex","elements","1","children","i18nKey","variables","buttonStyle","undefined","size","type"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentInfoContext } from '../../providers/DocumentInfo/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/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?: DocumentInfoContext['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 }) as ClientCollectionConfig\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { closeModal, toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n const editDepth = useEditDepth()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n useEffect(() => {\n return () => {\n closeModal(modalSlug)\n }\n }, [closeModal, modalSlug])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n if (redirectAfterDelete) {\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n toggleModal(modalSlug)\n\n return\n }\n\n toggleModal(modalSlug)\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal\n className={baseClass}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-delete\"\n onClick={() => {\n if (!deleting) {\n void handleDelete()\n }\n }}\n size=\"large\"\n >\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import type { CollectionPermission, GlobalPermission, SanitizedCollectionConfig } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js';
|
|
3
4
|
import './index.scss';
|
|
4
5
|
export declare const DocumentControls: React.FC<{
|
|
5
6
|
readonly apiURL: string;
|
|
6
7
|
readonly data?: any;
|
|
7
8
|
readonly disableActions?: boolean;
|
|
9
|
+
readonly disableCreate?: boolean;
|
|
8
10
|
readonly hasPublishPermission?: boolean;
|
|
9
11
|
readonly hasSavePermission?: boolean;
|
|
10
12
|
id?: number | string;
|
|
11
13
|
readonly isAccountView?: boolean;
|
|
12
14
|
readonly isEditing?: boolean;
|
|
15
|
+
readonly onDelete?: DocumentInfoContext['onDelete'];
|
|
16
|
+
readonly onDrawerCreate?: () => void;
|
|
17
|
+
readonly onDuplicate?: DocumentInfoContext['onDuplicate'];
|
|
18
|
+
readonly onSave?: DocumentInfoContext['onSave'];
|
|
13
19
|
readonly permissions: CollectionPermission | GlobalPermission | null;
|
|
20
|
+
readonly redirectAfterDelete?: boolean;
|
|
21
|
+
readonly redirectAfterDuplicate?: boolean;
|
|
14
22
|
readonly slug: SanitizedCollectionConfig['slug'];
|
|
15
23
|
}>;
|
|
16
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAiBhF,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACnD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAEpC,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC/C,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IACpE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACjD,CA4OA,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import React, { Fragment, useEffect } from 'react';
|
|
7
7
|
import { useConfig } from '../../providers/Config/index.js';
|
|
8
|
+
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
8
9
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
9
10
|
import { formatAdminURL } from '../../utilities/formatAdminURL.js';
|
|
10
11
|
import { formatDate } from '../../utilities/formatDate.js';
|
|
@@ -27,14 +28,21 @@ export const DocumentControls = props => {
|
|
|
27
28
|
slug,
|
|
28
29
|
data,
|
|
29
30
|
disableActions,
|
|
31
|
+
disableCreate,
|
|
30
32
|
hasSavePermission,
|
|
31
33
|
isAccountView,
|
|
32
34
|
isEditing,
|
|
33
|
-
|
|
35
|
+
onDelete,
|
|
36
|
+
onDrawerCreate,
|
|
37
|
+
onDuplicate,
|
|
38
|
+
permissions,
|
|
39
|
+
redirectAfterDelete,
|
|
40
|
+
redirectAfterDuplicate
|
|
34
41
|
} = props;
|
|
35
42
|
const {
|
|
36
43
|
i18n
|
|
37
44
|
} = useTranslation();
|
|
45
|
+
const editDepth = useEditDepth();
|
|
38
46
|
const {
|
|
39
47
|
config,
|
|
40
48
|
getEntityConfig
|
|
@@ -172,15 +180,23 @@ export const DocumentControls = props => {
|
|
|
172
180
|
verticalAlign: "bottom",
|
|
173
181
|
children: _jsxs(PopupList.ButtonGroup, {
|
|
174
182
|
children: [hasCreatePermission && _jsxs(React.Fragment, {
|
|
175
|
-
children: [_jsx(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
183
|
+
children: [!disableCreate && _jsx(Fragment, {
|
|
184
|
+
children: editDepth > 1 ? _jsx(PopupList.Button, {
|
|
185
|
+
id: "action-create",
|
|
186
|
+
onClick: onDrawerCreate,
|
|
187
|
+
children: i18n.t("general:createNew")
|
|
188
|
+
}) : _jsx(PopupList.Button, {
|
|
189
|
+
href: formatAdminURL({
|
|
190
|
+
adminRoute,
|
|
191
|
+
path: `/collections/${collectionConfig?.slug}/create`
|
|
192
|
+
}),
|
|
193
|
+
id: "action-create",
|
|
194
|
+
children: i18n.t("general:createNew")
|
|
195
|
+
})
|
|
182
196
|
}), !collectionConfig.disableDuplicate && isEditing && _jsx(DuplicateDocument, {
|
|
183
197
|
id: id.toString(),
|
|
198
|
+
onDuplicate,
|
|
199
|
+
redirectAfterDuplicate,
|
|
184
200
|
singularLabel: collectionConfig?.labels?.singular,
|
|
185
201
|
slug: collectionConfig?.slug
|
|
186
202
|
})]
|
|
@@ -188,6 +204,8 @@ export const DocumentControls = props => {
|
|
|
188
204
|
buttonId: "action-delete",
|
|
189
205
|
collectionSlug: collectionConfig?.slug,
|
|
190
206
|
id: id.toString(),
|
|
207
|
+
onDelete,
|
|
208
|
+
redirectAfterDelete,
|
|
191
209
|
singularLabel: collectionConfig?.labels?.singular,
|
|
192
210
|
useAsTitle: collectionConfig?.admin?.useAsTitle
|
|
193
211
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useConfig","useTranslation","formatAdminURL","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t0","routes","t1","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","t2","t3","date","pattern","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","_jsxs","className","children","_jsx","t","label","labels","singular","filter","join","autosave","collection","global","publishedDocUpdatedAt","timestamps","title","_isPreviewEnabled","CustomComponent","components","edit","elements","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n CollectionPermission,\n GlobalPermission,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly data?: any\n readonly disableActions?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly permissions: CollectionPermission | GlobalPermission | null\n readonly slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug: slug }) as ClientGlobalConfig\n\n const {\n admin: { dateFormat },\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 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 =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\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 return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\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 {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\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`}>{i18n.t('general:lastModified')}: </p>\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 {(collectionConfig?._isPreviewEnabled || globalConfig?._isPreviewEnabled) && (\n <PreviewButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n }\n />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n }\n />\n )}\n <PublishButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n }\n />\n </React.Fragment>\n ) : (\n <SaveButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n }\n />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\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 {!collectionConfig.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\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 singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\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","React","Fragment","useEffect","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreate","onDuplicate","permissions","redirectAfterDelete","redirectAfterDuplicate","i18n","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t0","routes","t1","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","t2","t3","date","pattern","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","_jsxs","className","children","_jsx","t","label","labels","singular","filter","join","autosave","collection","global","publishedDocUpdatedAt","timestamps","title","_isPreviewEnabled","CustomComponent","components","edit","elements","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","onClick","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n CollectionPermission,\n GlobalPermission,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentInfoContext } from '../../providers/DocumentInfo/types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentInfoContext['onDelete']\n readonly onDrawerCreate?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentInfoContext['onDuplicate']\n readonly onSave?: DocumentInfoContext['onSave']\n readonly permissions: CollectionPermission | GlobalPermission | null\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreate,\n onDuplicate,\n permissions,\n redirectAfterDelete,\n redirectAfterDuplicate,\n } = props\n\n const { i18n } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug: slug }) as ClientGlobalConfig\n\n const {\n admin: { dateFormat },\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 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 =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\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 return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\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 {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\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`}>{i18n.t('general:lastModified')}: </p>\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 {(collectionConfig?._isPreviewEnabled || globalConfig?._isPreviewEnabled) && (\n <PreviewButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n }\n />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n }\n />\n )}\n <PublishButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n }\n />\n </React.Fragment>\n ) : (\n <SaveButton\n CustomComponent={\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n }\n />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreate}>\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 && 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 </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":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAcrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAcrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAoI/D,CAAA"}
|
|
@@ -17,14 +17,19 @@ import { IDLabel } from '../IDLabel/index.js';
|
|
|
17
17
|
import { RenderTitle } from '../RenderTitle/index.js';
|
|
18
18
|
import { baseClass } from './index.js';
|
|
19
19
|
export const DocumentDrawerContent = t0 => {
|
|
20
|
-
const $ = _c(
|
|
20
|
+
const $ = _c(44);
|
|
21
21
|
const {
|
|
22
22
|
id: existingDocID,
|
|
23
23
|
AfterFields,
|
|
24
24
|
collectionSlug,
|
|
25
|
+
disableActions,
|
|
25
26
|
drawerSlug,
|
|
26
27
|
Header,
|
|
27
|
-
|
|
28
|
+
onDelete: onDeleteFromProps,
|
|
29
|
+
onDuplicate: onDuplicateFromProps,
|
|
30
|
+
onSave: onSaveFromProps,
|
|
31
|
+
redirectAfterDelete,
|
|
32
|
+
redirectAfterDuplicate
|
|
28
33
|
} = t0;
|
|
29
34
|
const {
|
|
30
35
|
config
|
|
@@ -103,27 +108,74 @@ export const DocumentDrawerContent = t0 => {
|
|
|
103
108
|
}
|
|
104
109
|
const onSave = t5;
|
|
105
110
|
let t6;
|
|
106
|
-
if ($[12] !==
|
|
107
|
-
t6 =
|
|
111
|
+
if ($[12] !== onDuplicateFromProps || $[13] !== collectionConfig) {
|
|
112
|
+
t6 = args_0 => {
|
|
113
|
+
setDocID(args_0.doc.id);
|
|
114
|
+
if (typeof onDuplicateFromProps === "function") {
|
|
115
|
+
onDuplicateFromProps({
|
|
116
|
+
...args_0,
|
|
117
|
+
collectionConfig
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
$[12] = onDuplicateFromProps;
|
|
122
|
+
$[13] = collectionConfig;
|
|
123
|
+
$[14] = t6;
|
|
124
|
+
} else {
|
|
125
|
+
t6 = $[14];
|
|
126
|
+
}
|
|
127
|
+
const onDuplicate = t6;
|
|
128
|
+
let t7;
|
|
129
|
+
if ($[15] !== onDeleteFromProps || $[16] !== collectionConfig || $[17] !== closeModal || $[18] !== drawerSlug) {
|
|
130
|
+
t7 = args_1 => {
|
|
131
|
+
if (typeof onDeleteFromProps === "function") {
|
|
132
|
+
onDeleteFromProps({
|
|
133
|
+
...args_1,
|
|
134
|
+
collectionConfig
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
closeModal(drawerSlug);
|
|
138
|
+
};
|
|
139
|
+
$[15] = onDeleteFromProps;
|
|
140
|
+
$[16] = collectionConfig;
|
|
141
|
+
$[17] = closeModal;
|
|
142
|
+
$[18] = drawerSlug;
|
|
143
|
+
$[19] = t7;
|
|
144
|
+
} else {
|
|
145
|
+
t7 = $[19];
|
|
146
|
+
}
|
|
147
|
+
const onDelete = t7;
|
|
148
|
+
let t8;
|
|
149
|
+
if ($[20] !== Header) {
|
|
150
|
+
t8 = Header || _jsx(RenderTitle, {
|
|
108
151
|
element: "span"
|
|
109
152
|
});
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
153
|
+
$[20] = Header;
|
|
154
|
+
$[21] = t8;
|
|
112
155
|
} else {
|
|
113
|
-
|
|
156
|
+
t8 = $[21];
|
|
114
157
|
}
|
|
115
|
-
let
|
|
116
|
-
if ($[
|
|
117
|
-
let
|
|
118
|
-
if ($[
|
|
119
|
-
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
122
|
-
$[
|
|
158
|
+
let t9;
|
|
159
|
+
if ($[22] !== t8 || $[23] !== t || $[24] !== toggleModal || $[25] !== drawerSlug || $[26] !== redirectAfterDelete || $[27] !== redirectAfterDuplicate || $[28] !== Edit || $[29] !== AfterFields || $[30] !== apiURL || $[31] !== collectionConfig.slug || $[32] !== disableActions || $[33] !== docID || $[34] !== isEditing || $[35] !== onDelete || $[36] !== onDuplicate || $[37] !== onLoadError || $[38] !== onSave) {
|
|
160
|
+
let t10;
|
|
161
|
+
if ($[40] !== toggleModal || $[41] !== drawerSlug) {
|
|
162
|
+
t10 = () => toggleModal(drawerSlug);
|
|
163
|
+
$[40] = toggleModal;
|
|
164
|
+
$[41] = drawerSlug;
|
|
165
|
+
$[42] = t10;
|
|
166
|
+
} else {
|
|
167
|
+
t10 = $[42];
|
|
168
|
+
}
|
|
169
|
+
let t11;
|
|
170
|
+
if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
|
|
171
|
+
t11 = () => {
|
|
172
|
+
setDocID(null);
|
|
173
|
+
};
|
|
174
|
+
$[43] = t11;
|
|
123
175
|
} else {
|
|
124
|
-
|
|
176
|
+
t11 = $[43];
|
|
125
177
|
}
|
|
126
|
-
|
|
178
|
+
t9 = _jsx(DocumentInfoProvider, {
|
|
127
179
|
AfterFields,
|
|
128
180
|
apiURL,
|
|
129
181
|
BeforeDocument: _jsxs(Gutter, {
|
|
@@ -132,44 +184,54 @@ export const DocumentDrawerContent = t0 => {
|
|
|
132
184
|
className: `${baseClass}__header-content`,
|
|
133
185
|
children: [_jsx("h2", {
|
|
134
186
|
className: `${baseClass}__header-text`,
|
|
135
|
-
children:
|
|
187
|
+
children: t8
|
|
136
188
|
}), _jsx("button", {
|
|
137
189
|
"aria-label": t("general:close"),
|
|
138
190
|
className: `${baseClass}__header-close`,
|
|
139
|
-
onClick:
|
|
191
|
+
onClick: t10,
|
|
140
192
|
type: "button",
|
|
141
193
|
children: _jsx(XIcon, {})
|
|
142
194
|
})]
|
|
143
195
|
}), _jsx(DocumentTitle, {})]
|
|
144
196
|
}),
|
|
145
197
|
collectionSlug: collectionConfig.slug,
|
|
146
|
-
disableActions
|
|
198
|
+
disableActions,
|
|
147
199
|
disableLeaveWithoutSaving: true,
|
|
148
200
|
id: docID,
|
|
149
201
|
isEditing,
|
|
202
|
+
onDelete,
|
|
203
|
+
onDrawerCreate: t11,
|
|
204
|
+
onDuplicate,
|
|
150
205
|
onLoadError,
|
|
151
206
|
onSave,
|
|
207
|
+
redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,
|
|
208
|
+
redirectAfterDuplicate: redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,
|
|
152
209
|
children: _jsx(RenderComponent, {
|
|
153
210
|
mappedComponent: Edit
|
|
154
211
|
})
|
|
155
212
|
});
|
|
156
|
-
$[
|
|
157
|
-
$[
|
|
158
|
-
$[
|
|
159
|
-
$[
|
|
160
|
-
$[
|
|
161
|
-
$[
|
|
162
|
-
$[
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
-
$[
|
|
167
|
-
$[
|
|
168
|
-
$[
|
|
213
|
+
$[22] = t8;
|
|
214
|
+
$[23] = t;
|
|
215
|
+
$[24] = toggleModal;
|
|
216
|
+
$[25] = drawerSlug;
|
|
217
|
+
$[26] = redirectAfterDelete;
|
|
218
|
+
$[27] = redirectAfterDuplicate;
|
|
219
|
+
$[28] = Edit;
|
|
220
|
+
$[29] = AfterFields;
|
|
221
|
+
$[30] = apiURL;
|
|
222
|
+
$[31] = collectionConfig.slug;
|
|
223
|
+
$[32] = disableActions;
|
|
224
|
+
$[33] = docID;
|
|
225
|
+
$[34] = isEditing;
|
|
226
|
+
$[35] = onDelete;
|
|
227
|
+
$[36] = onDuplicate;
|
|
228
|
+
$[37] = onLoadError;
|
|
229
|
+
$[38] = onSave;
|
|
230
|
+
$[39] = t9;
|
|
169
231
|
} else {
|
|
170
|
-
|
|
232
|
+
t9 = $[39];
|
|
171
233
|
}
|
|
172
|
-
return
|
|
234
|
+
return t9;
|
|
173
235
|
};
|
|
174
236
|
const DocumentTitle = () => {
|
|
175
237
|
const $ = _c(3);
|