@payloadcms/ui 3.24.0-canary.4c8cafd → 3.24.0-canary.58e9eb5
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/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +143 -108
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +22 -20
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.d.ts +19 -0
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -0
- package/dist/elements/ConfirmationModal/index.js +143 -0
- package/dist/elements/ConfirmationModal/index.js.map +1 -0
- package/dist/elements/{GenerateConfirmation → ConfirmationModal}/index.scss +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +39 -80
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.scss +0 -29
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +24 -44
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.scss +0 -29
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts +0 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +38 -54
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +3 -2
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.d.ts +1 -0
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.d.ts +1 -2
- package/dist/elements/GenerateConfirmation/index.d.ts.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +28 -47
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -1
- package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +63 -114
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +1 -0
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +14 -0
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +5 -0
- package/dist/elements/PreviewButton/index.d.ts +2 -1
- package/dist/elements/PreviewButton/index.d.ts.map +1 -1
- package/dist/elements/PreviewButton/index.js +2 -2
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts +2 -3
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +2 -2
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +0 -1
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +27 -46
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts +7 -2
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +69 -23
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.scss +6 -0
- package/dist/elements/SaveButton/index.d.ts +2 -3
- package/dist/elements/SaveButton/index.d.ts.map +1 -1
- package/dist/elements/SaveButton/index.js +3 -3
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.d.ts +2 -1
- package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +2 -2
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +179 -154
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Status/index.scss +0 -41
- package/dist/elements/StayLoggedIn/index.d.ts +0 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +53 -77
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +1 -9
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +20 -0
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js +200 -0
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts +2 -3
- package/dist/elements/TableColumns/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/index.js +4 -3
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +1 -2
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +22 -43
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +5 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.d.ts +2 -5
- package/dist/elements/ViewDescription/index.d.ts.map +1 -1
- package/dist/elements/ViewDescription/index.js +2 -2
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/exports/client/CodeEditor-L6GW2VQ6.js.map +0 -1
- package/dist/exports/client/DatePicker-THCU4KZJ.js.map +0 -1
- package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -1
- package/dist/exports/client/chunk-EG3ZOHFS.js.map +0 -1
- package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -1
- package/dist/exports/client/index.d.ts +46 -4
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -5
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +1 -2
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +19 -5
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +1 -0
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +2 -0
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts +1 -0
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +19 -8
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.d.ts.map +1 -1
- package/dist/forms/Form/initContextState.js +2 -0
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +6 -0
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +7 -0
- package/dist/icons/Dots/index.d.ts.map +1 -0
- package/dist/icons/Dots/index.js +12 -0
- package/dist/icons/Dots/index.js.map +1 -0
- package/dist/icons/Dots/index.scss +27 -0
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +2 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +5 -6
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildTableState.d.ts +1 -2
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +72 -19
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +20 -14
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +3 -6
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/renderTable.d.ts +6 -4
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +49 -17
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +61 -62
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts +2 -2
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +3 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts +2 -25
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +6 -3
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/types.d.ts +1 -18
- package/dist/views/List/types.d.ts.map +1 -1
- package/dist/views/List/types.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/DuplicateDocument/index.scss +0 -42
- package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
- package/dist/elements/PublishMany/index.scss +0 -39
- package/dist/elements/StayLoggedIn/index.scss +0 -40
- package/dist/elements/UnpublishMany/index.scss +0 -39
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Modal, useModal } from '@faceless-ui/modal';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
8
|
+
import { useTranslation } from '../../providers/Translation/index.js';
|
|
9
|
+
import { Button } from '../Button/index.js';
|
|
10
|
+
import { drawerZBase } from '../Drawer/index.js';
|
|
11
|
+
import './index.scss';
|
|
12
|
+
const baseClass = 'confirmation-modal';
|
|
13
|
+
export function ConfirmationModal(props) {
|
|
14
|
+
const $ = _c(31);
|
|
15
|
+
const {
|
|
16
|
+
body,
|
|
17
|
+
cancelLabel,
|
|
18
|
+
confirmingLabel,
|
|
19
|
+
confirmLabel,
|
|
20
|
+
heading,
|
|
21
|
+
modalSlug,
|
|
22
|
+
onCancel,
|
|
23
|
+
onConfirm
|
|
24
|
+
} = props;
|
|
25
|
+
const editDepth = useEditDepth();
|
|
26
|
+
const [confirming, setConfirming] = React.useState(false);
|
|
27
|
+
const {
|
|
28
|
+
closeModal
|
|
29
|
+
} = useModal();
|
|
30
|
+
const {
|
|
31
|
+
t
|
|
32
|
+
} = useTranslation();
|
|
33
|
+
const t0 = drawerZBase + editDepth;
|
|
34
|
+
let t1;
|
|
35
|
+
if ($[0] !== body || $[1] !== cancelLabel || $[2] !== closeModal || $[3] !== confirmLabel || $[4] !== confirming || $[5] !== confirmingLabel || $[6] !== heading || $[7] !== modalSlug || $[8] !== onCancel || $[9] !== onConfirm || $[10] !== t || $[11] !== t0) {
|
|
36
|
+
let t2;
|
|
37
|
+
if ($[13] !== closeModal || $[14] !== confirming || $[15] !== modalSlug || $[16] !== onCancel) {
|
|
38
|
+
t2 = confirming ? undefined : () => {
|
|
39
|
+
closeModal(modalSlug);
|
|
40
|
+
if (typeof onCancel === "function") {
|
|
41
|
+
onCancel();
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
$[13] = closeModal;
|
|
45
|
+
$[14] = confirming;
|
|
46
|
+
$[15] = modalSlug;
|
|
47
|
+
$[16] = onCancel;
|
|
48
|
+
$[17] = t2;
|
|
49
|
+
} else {
|
|
50
|
+
t2 = $[17];
|
|
51
|
+
}
|
|
52
|
+
let t3;
|
|
53
|
+
if ($[18] !== cancelLabel || $[19] !== t) {
|
|
54
|
+
t3 = cancelLabel || t("general:cancel");
|
|
55
|
+
$[18] = cancelLabel;
|
|
56
|
+
$[19] = t;
|
|
57
|
+
$[20] = t3;
|
|
58
|
+
} else {
|
|
59
|
+
t3 = $[20];
|
|
60
|
+
}
|
|
61
|
+
let t4;
|
|
62
|
+
if ($[21] !== closeModal || $[22] !== confirming || $[23] !== modalSlug || $[24] !== onConfirm) {
|
|
63
|
+
t4 = () => {
|
|
64
|
+
if (!confirming) {
|
|
65
|
+
setConfirming(true);
|
|
66
|
+
onConfirm({
|
|
67
|
+
closeConfirmationModal: () => closeModal(modalSlug),
|
|
68
|
+
setConfirming: state => setConfirming(state)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
$[21] = closeModal;
|
|
73
|
+
$[22] = confirming;
|
|
74
|
+
$[23] = modalSlug;
|
|
75
|
+
$[24] = onConfirm;
|
|
76
|
+
$[25] = t4;
|
|
77
|
+
} else {
|
|
78
|
+
t4 = $[25];
|
|
79
|
+
}
|
|
80
|
+
let t5;
|
|
81
|
+
if ($[26] !== confirmLabel || $[27] !== confirming || $[28] !== confirmingLabel || $[29] !== t) {
|
|
82
|
+
t5 = confirming ? confirmingLabel || t("general:loading") : confirmLabel || t("general:confirm");
|
|
83
|
+
$[26] = confirmLabel;
|
|
84
|
+
$[27] = confirming;
|
|
85
|
+
$[28] = confirmingLabel;
|
|
86
|
+
$[29] = t;
|
|
87
|
+
$[30] = t5;
|
|
88
|
+
} else {
|
|
89
|
+
t5 = $[30];
|
|
90
|
+
}
|
|
91
|
+
t1 = _jsx(Modal, {
|
|
92
|
+
className: baseClass,
|
|
93
|
+
slug: modalSlug,
|
|
94
|
+
style: {
|
|
95
|
+
zIndex: t0
|
|
96
|
+
},
|
|
97
|
+
children: _jsxs("div", {
|
|
98
|
+
className: `${baseClass}__wrapper`,
|
|
99
|
+
children: [_jsxs("div", {
|
|
100
|
+
className: `${baseClass}__content`,
|
|
101
|
+
children: [_jsx("h1", {
|
|
102
|
+
children: heading
|
|
103
|
+
}), _jsx("p", {
|
|
104
|
+
children: body
|
|
105
|
+
})]
|
|
106
|
+
}), _jsxs("div", {
|
|
107
|
+
className: `${baseClass}__controls`,
|
|
108
|
+
children: [_jsx(Button, {
|
|
109
|
+
buttonStyle: "secondary",
|
|
110
|
+
disabled: confirming,
|
|
111
|
+
id: "confirm-cancel",
|
|
112
|
+
onClick: t2,
|
|
113
|
+
size: "large",
|
|
114
|
+
type: "button",
|
|
115
|
+
children: t3
|
|
116
|
+
}), _jsx(Button, {
|
|
117
|
+
id: "confirm-action",
|
|
118
|
+
onClick: t4,
|
|
119
|
+
size: "large",
|
|
120
|
+
children: t5
|
|
121
|
+
})]
|
|
122
|
+
})]
|
|
123
|
+
})
|
|
124
|
+
});
|
|
125
|
+
$[0] = body;
|
|
126
|
+
$[1] = cancelLabel;
|
|
127
|
+
$[2] = closeModal;
|
|
128
|
+
$[3] = confirmLabel;
|
|
129
|
+
$[4] = confirming;
|
|
130
|
+
$[5] = confirmingLabel;
|
|
131
|
+
$[6] = heading;
|
|
132
|
+
$[7] = modalSlug;
|
|
133
|
+
$[8] = onCancel;
|
|
134
|
+
$[9] = onConfirm;
|
|
135
|
+
$[10] = t;
|
|
136
|
+
$[11] = t0;
|
|
137
|
+
$[12] = t1;
|
|
138
|
+
} else {
|
|
139
|
+
t1 = $[12];
|
|
140
|
+
}
|
|
141
|
+
return t1;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useEditDepth","useTranslation","Button","drawerZBase","baseClass","ConfirmationModal","props","$","body","cancelLabel","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onConfirm","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","undefined","t3","t4","closeConfirmationModal","state","t5","_jsx","className","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 from 'react'\n\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnConfirm = (args: {\n closeConfirmationModal: () => void\n setConfirming: (state: boolean) => void\n}) => Promise<void> | void\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: OnConfirm\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel,\n onConfirm,\n } = props\n\n const editDepth = useEditDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n return (\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>{heading}</h1>\n <p>{body}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={\n confirming\n ? undefined\n : () => {\n closeModal(modalSlug)\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n }\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-action\"\n onClick={() => {\n if (!confirming) {\n setConfirming(true)\n void onConfirm({\n closeConfirmationModal: () => closeModal(modalSlug),\n setConfirming: (state) => setConfirming(state),\n })\n }\n }}\n size=\"large\"\n >\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/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAI1C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAY9E,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwJ1C,CAAA"}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import {
|
|
4
|
+
import { useModal } from '@faceless-ui/modal';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { useRouter } from 'next/navigation.js';
|
|
7
|
-
import React, { useCallback
|
|
7
|
+
import React, { useCallback } 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';
|
|
13
12
|
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
14
13
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
14
|
import { requests } from '../../utilities/api.js';
|
|
16
15
|
import { formatAdminURL } from '../../utilities/formatAdminURL.js';
|
|
17
|
-
import {
|
|
18
|
-
import { drawerZBase } from '../Drawer/index.js';
|
|
16
|
+
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
19
17
|
import { PopupList } from '../Popup/index.js';
|
|
20
18
|
import { Translation } from '../Translation/index.js';
|
|
21
19
|
import './index.scss';
|
|
22
|
-
const baseClass = 'delete-document';
|
|
23
20
|
export const DeleteDocument = props => {
|
|
24
21
|
const {
|
|
25
22
|
id,
|
|
@@ -46,11 +43,6 @@ export const DeleteDocument = props => {
|
|
|
46
43
|
const {
|
|
47
44
|
setModified
|
|
48
45
|
} = useForm();
|
|
49
|
-
const [deleting, setDeleting] = useState(false);
|
|
50
|
-
const {
|
|
51
|
-
closeModal,
|
|
52
|
-
toggleModal
|
|
53
|
-
} = useModal();
|
|
54
46
|
const router = useRouter();
|
|
55
47
|
const {
|
|
56
48
|
i18n,
|
|
@@ -59,25 +51,23 @@ export const DeleteDocument = props => {
|
|
|
59
51
|
const {
|
|
60
52
|
title
|
|
61
53
|
} = useDocumentInfo();
|
|
62
|
-
const editDepth = useEditDepth();
|
|
63
54
|
const {
|
|
64
55
|
startRouteTransition
|
|
65
56
|
} = useRouteTransition();
|
|
57
|
+
const {
|
|
58
|
+
openModal
|
|
59
|
+
} = useModal();
|
|
66
60
|
const titleToRender = titleFromProps || title || id;
|
|
67
61
|
const modalSlug = `delete-${id}`;
|
|
68
62
|
const addDefaultError = useCallback(() => {
|
|
69
|
-
setDeleting(false);
|
|
70
63
|
toast.error(t('error:deletingTitle', {
|
|
71
64
|
title
|
|
72
65
|
}));
|
|
73
66
|
}, [t, title]);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}, [closeModal, modalSlug]);
|
|
79
|
-
const handleDelete = useCallback(async () => {
|
|
80
|
-
setDeleting(true);
|
|
67
|
+
const handleDelete = useCallback(async ({
|
|
68
|
+
closeConfirmationModal,
|
|
69
|
+
setConfirming
|
|
70
|
+
}) => {
|
|
81
71
|
setModified(false);
|
|
82
72
|
try {
|
|
83
73
|
await requests.delete(`${serverURL}${api}/${collectionSlug}/${id}`, {
|
|
@@ -88,9 +78,9 @@ export const DeleteDocument = props => {
|
|
|
88
78
|
}).then(async res => {
|
|
89
79
|
try {
|
|
90
80
|
const json = await res.json();
|
|
81
|
+
setConfirming(false);
|
|
82
|
+
closeConfirmationModal();
|
|
91
83
|
if (res.status < 400) {
|
|
92
|
-
setDeleting(false);
|
|
93
|
-
toggleModal(modalSlug);
|
|
94
84
|
toast.success(t('general:titleDeleted', {
|
|
95
85
|
label: getTranslation(singularLabel, i18n),
|
|
96
86
|
title
|
|
@@ -107,83 +97,52 @@ export const DeleteDocument = props => {
|
|
|
107
97
|
collectionConfig
|
|
108
98
|
});
|
|
109
99
|
}
|
|
110
|
-
toggleModal(modalSlug);
|
|
111
100
|
return;
|
|
112
101
|
}
|
|
113
|
-
toggleModal(modalSlug);
|
|
114
102
|
if (json.errors) {
|
|
115
103
|
json.errors.forEach(error => toast.error(error.message));
|
|
116
104
|
} else {
|
|
117
105
|
addDefaultError();
|
|
118
106
|
}
|
|
119
107
|
return false;
|
|
120
|
-
} catch (
|
|
108
|
+
} catch (_err_0) {
|
|
121
109
|
return addDefaultError();
|
|
122
110
|
}
|
|
123
111
|
});
|
|
124
|
-
} catch (
|
|
125
|
-
|
|
112
|
+
} catch (_err) {
|
|
113
|
+
setConfirming(false);
|
|
114
|
+
closeConfirmationModal();
|
|
115
|
+
return addDefaultError();
|
|
126
116
|
}
|
|
127
|
-
}, [setModified, serverURL, api, collectionSlug, id,
|
|
117
|
+
}, [setModified, serverURL, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition]);
|
|
128
118
|
if (id) {
|
|
129
119
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
130
120
|
children: [/*#__PURE__*/_jsx(PopupList.Button, {
|
|
131
121
|
id: buttonId,
|
|
132
122
|
onClick: () => {
|
|
133
|
-
|
|
134
|
-
toggleModal(modalSlug);
|
|
123
|
+
openModal(modalSlug);
|
|
135
124
|
},
|
|
136
125
|
children: t('general:delete')
|
|
137
|
-
}), /*#__PURE__*/_jsx(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
},
|
|
158
|
-
i18nKey: "general:aboutToDelete",
|
|
159
|
-
t: t,
|
|
160
|
-
variables: {
|
|
161
|
-
label: getTranslation(singularLabel, i18n),
|
|
162
|
-
title: titleToRender
|
|
163
|
-
}
|
|
164
|
-
})
|
|
165
|
-
})]
|
|
166
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
167
|
-
className: `${baseClass}__controls`,
|
|
168
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
169
|
-
buttonStyle: "secondary",
|
|
170
|
-
id: "confirm-cancel",
|
|
171
|
-
onClick: deleting ? undefined : () => toggleModal(modalSlug),
|
|
172
|
-
size: "large",
|
|
173
|
-
type: "button",
|
|
174
|
-
children: t('general:cancel')
|
|
175
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
176
|
-
id: "confirm-delete",
|
|
177
|
-
onClick: () => {
|
|
178
|
-
if (!deleting) {
|
|
179
|
-
void handleDelete();
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
|
-
size: "large",
|
|
183
|
-
children: deleting ? t('general:deleting') : t('general:confirm')
|
|
184
|
-
})]
|
|
185
|
-
})]
|
|
186
|
-
})
|
|
126
|
+
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
127
|
+
body: /*#__PURE__*/_jsx(Translation, {
|
|
128
|
+
elements: {
|
|
129
|
+
'1': ({
|
|
130
|
+
children
|
|
131
|
+
}) => /*#__PURE__*/_jsx("strong", {
|
|
132
|
+
children: children
|
|
133
|
+
})
|
|
134
|
+
},
|
|
135
|
+
i18nKey: "general:aboutToDelete",
|
|
136
|
+
t: t,
|
|
137
|
+
variables: {
|
|
138
|
+
label: getTranslation(singularLabel, i18n),
|
|
139
|
+
title: titleToRender
|
|
140
|
+
}
|
|
141
|
+
}),
|
|
142
|
+
confirmingLabel: t('general:deleting'),
|
|
143
|
+
heading: t('general:confirmDeletion'),
|
|
144
|
+
modalSlug: modalSlug,
|
|
145
|
+
onConfirm: handleDelete
|
|
187
146
|
})]
|
|
188
147
|
});
|
|
189
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useRouteTransition","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","startRouteTransition","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 { 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 { DocumentDrawerContextType } from '../DocumentDrawer/Provider.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 { useRouteTransition } from '../../providers/RouteTransition/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?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const [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 const { startRouteTransition } = useRouteTransition()\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 startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n 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 startRouteTransition,\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
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useRouteTransition","useTranslation","requests","formatAdminURL","ConfirmationModal","PopupList","Translation","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","router","i18n","t","startRouteTransition","openModal","titleToRender","modalSlug","addDefaultError","error","handleDelete","closeConfirmationModal","setConfirming","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","_err","_jsxs","Fragment","_jsx","Button","onClick","body","elements","1","children","i18nKey","variables","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { OnConfirm } from '../ConfirmationModal/index.js'\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete: OnConfirm = useCallback(\n async ({ closeConfirmationModal, setConfirming }) => {\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 setConfirming(false)\n closeConfirmationModal()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n if (redirectAfterDelete) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n ),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n } catch (_err) {\n setConfirming(false)\n closeConfirmationModal()\n return addDefaultError()\n }\n },\n [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n ],\n )\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <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 }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,34 +11,5 @@
|
|
|
11
11
|
&__toggle {
|
|
12
12
|
@extend %btn-reset;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
&__wrapper {
|
|
16
|
-
z-index: 1;
|
|
17
|
-
position: relative;
|
|
18
|
-
display: flex;
|
|
19
|
-
flex-direction: column;
|
|
20
|
-
gap: base(0.8);
|
|
21
|
-
padding: base(2);
|
|
22
|
-
max-width: base(36);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
&__content {
|
|
26
|
-
display: flex;
|
|
27
|
-
flex-direction: column;
|
|
28
|
-
gap: base(0.4);
|
|
29
|
-
|
|
30
|
-
> * {
|
|
31
|
-
margin: 0;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
&__controls {
|
|
36
|
-
display: flex;
|
|
37
|
-
gap: base(0.4);
|
|
38
|
-
|
|
39
|
-
.btn {
|
|
40
|
-
margin: 0;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
14
|
}
|
|
44
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6ItC,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import {
|
|
4
|
+
import { useModal } from '@faceless-ui/modal';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
7
7
|
import * as qs from 'qs-esm';
|
|
8
|
-
import React, { useCallback
|
|
8
|
+
import React, { useCallback } from 'react';
|
|
9
9
|
import { toast } from 'sonner';
|
|
10
10
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
11
11
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -14,7 +14,7 @@ import { SelectAllStatus, useSelection } from '../../providers/Selection/index.j
|
|
|
14
14
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
15
|
import { requests } from '../../utilities/api.js';
|
|
16
16
|
import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
|
|
17
|
-
import {
|
|
17
|
+
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
18
18
|
import { Pill } from '../Pill/index.js';
|
|
19
19
|
import './index.scss';
|
|
20
20
|
const baseClass = 'delete-documents';
|
|
@@ -41,7 +41,7 @@ export const DeleteMany = props => {
|
|
|
41
41
|
}
|
|
42
42
|
} = useConfig();
|
|
43
43
|
const {
|
|
44
|
-
|
|
44
|
+
openModal
|
|
45
45
|
} = useModal();
|
|
46
46
|
const {
|
|
47
47
|
count,
|
|
@@ -53,7 +53,6 @@ export const DeleteMany = props => {
|
|
|
53
53
|
i18n,
|
|
54
54
|
t
|
|
55
55
|
} = useTranslation();
|
|
56
|
-
const [deleting, setDeleting] = useState(false);
|
|
57
56
|
const router = useRouter();
|
|
58
57
|
const searchParams = useSearchParams();
|
|
59
58
|
const {
|
|
@@ -65,8 +64,10 @@ export const DeleteMany = props => {
|
|
|
65
64
|
const addDefaultError = useCallback(() => {
|
|
66
65
|
toast.error(t('error:unknown'));
|
|
67
66
|
}, [t]);
|
|
68
|
-
const handleDelete = useCallback(async (
|
|
69
|
-
|
|
67
|
+
const handleDelete = useCallback(async ({
|
|
68
|
+
closeConfirmationModal,
|
|
69
|
+
setConfirming
|
|
70
|
+
}) => {
|
|
70
71
|
const queryWithSearch = mergeListSearchAndWhere({
|
|
71
72
|
collectionConfig: collection,
|
|
72
73
|
search: searchParams.get('search')
|
|
@@ -80,7 +81,8 @@ export const DeleteMany = props => {
|
|
|
80
81
|
}).then(async res => {
|
|
81
82
|
try {
|
|
82
83
|
const json = await res.json();
|
|
83
|
-
|
|
84
|
+
setConfirming(false);
|
|
85
|
+
closeConfirmationModal();
|
|
84
86
|
const deletedDocs = json?.docs.length || 0;
|
|
85
87
|
const successLabel = deletedDocs > 1 ? plural : singular;
|
|
86
88
|
if (res.status < 400 || deletedDocs > 0) {
|
|
@@ -107,14 +109,16 @@ export const DeleteMany = props => {
|
|
|
107
109
|
description: json.errors.map(error_0 => error_0.message).join('\n')
|
|
108
110
|
});
|
|
109
111
|
} else {
|
|
110
|
-
addDefaultError();
|
|
112
|
+
return addDefaultError();
|
|
111
113
|
}
|
|
112
114
|
return false;
|
|
113
115
|
} catch (_err) {
|
|
116
|
+
setConfirming(false);
|
|
117
|
+
closeConfirmationModal();
|
|
114
118
|
return addDefaultError();
|
|
115
119
|
}
|
|
116
120
|
});
|
|
117
|
-
}, [searchParams, addDefaultError, api, getQueryParams, i18n,
|
|
121
|
+
}, [searchParams, addDefaultError, api, getQueryParams, i18n, plural, router, selectAll, serverURL, singular, slug, t, toggleAll, clearRouteCache, collection]);
|
|
118
122
|
if (selectAll === SelectAllStatus.None || !hasDeletePermission) {
|
|
119
123
|
return null;
|
|
120
124
|
}
|
|
@@ -122,42 +126,18 @@ export const DeleteMany = props => {
|
|
|
122
126
|
children: [/*#__PURE__*/_jsx(Pill, {
|
|
123
127
|
className: `${baseClass}__toggle`,
|
|
124
128
|
onClick: () => {
|
|
125
|
-
|
|
126
|
-
toggleModal(modalSlug);
|
|
129
|
+
openModal(modalSlug);
|
|
127
130
|
},
|
|
128
131
|
children: t('general:delete')
|
|
129
|
-
}), /*#__PURE__*/_jsx(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}), /*#__PURE__*/_jsx("p", {
|
|
139
|
-
children: t('general:aboutToDeleteCount', {
|
|
140
|
-
count,
|
|
141
|
-
label: getTranslation(plural, i18n)
|
|
142
|
-
})
|
|
143
|
-
})]
|
|
144
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
145
|
-
className: `${baseClass}__controls`,
|
|
146
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
147
|
-
buttonStyle: "secondary",
|
|
148
|
-
id: "confirm-cancel",
|
|
149
|
-
onClick: deleting ? undefined : () => toggleModal(modalSlug),
|
|
150
|
-
size: "large",
|
|
151
|
-
type: "button",
|
|
152
|
-
children: t('general:cancel')
|
|
153
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
154
|
-
id: "confirm-delete",
|
|
155
|
-
onClick: deleting ? undefined : handleDelete,
|
|
156
|
-
size: "large",
|
|
157
|
-
children: deleting ? t('general:deleting') : t('general:confirm')
|
|
158
|
-
})]
|
|
159
|
-
})]
|
|
160
|
-
})
|
|
132
|
+
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
133
|
+
body: t('general:aboutToDeleteCount', {
|
|
134
|
+
count,
|
|
135
|
+
label: getTranslation(count > 1 ? plural : singular, i18n)
|
|
136
|
+
}),
|
|
137
|
+
confirmingLabel: t('general:deleting'),
|
|
138
|
+
heading: t('general:confirmDeletion'),
|
|
139
|
+
modalSlug: modalSlug,
|
|
140
|
+
onConfirm: handleDelete
|
|
161
141
|
})]
|
|
162
142
|
});
|
|
163
143
|
};
|