@payloadcms/ui 3.29.0-internal.3471e81 → 3.29.0-internal.9400be9
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.js +1 -1
- 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 +143 -127
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.scss +3 -2
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +2 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -1
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +1 -1
- 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 +1 -2
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +0 -4
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts +3 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +122 -124
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js +7 -7
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditMany/index.scss +14 -3
- package/dist/elements/FieldSelect/index.d.ts +12 -7
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js +34 -131
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +19 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.js +57 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -0
- package/dist/elements/ListControls/index.d.ts +24 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +86 -115
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +9 -5
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +2 -4
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -3
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/Pill/index.d.ts +1 -1
- package/dist/elements/Pill/index.d.ts.map +1 -1
- package/dist/elements/Pill/index.js +0 -2
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/Pill/index.scss +6 -29
- package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
- package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +0 -1
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +1 -1
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +4 -3
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.js +2 -2
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildColumnState.js +1 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.js +1 -1
- package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
- package/dist/elements/TableColumns/context.d.ts.map +1 -0
- package/dist/elements/TableColumns/context.js.map +1 -0
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
- package/dist/elements/TableColumns/filterFields.js.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
- package/dist/elements/TableColumns/index.d.ts.map +1 -0
- package/dist/{providers → elements}/TableColumns/index.js +2 -4
- package/dist/elements/TableColumns/index.js.map +1 -0
- package/dist/{providers → elements}/TableColumns/types.d.ts +1 -1
- package/dist/elements/TableColumns/types.d.ts.map +1 -0
- package/dist/elements/TableColumns/types.js.map +1 -0
- package/dist/elements/Thumbnail/index.js +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +1 -1
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -18
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceFields.js +2 -2
- package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +8 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js +45 -0
- package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +4 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js +36 -0
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -0
- package/dist/exports/client/index.d.ts +2 -7
- 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 -4
- package/dist/exports/shared/index.d.ts +5 -10
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +1 -1
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/index.scss +12 -6
- package/dist/fields/Relationship/optionsReducer.js +1 -1
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/forms/Form/fieldReducer.js +1 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +1 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts +0 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +0 -2
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Dots/index.d.ts +0 -2
- package/dist/icons/Dots/index.d.ts.map +1 -1
- package/dist/icons/Dots/index.js +2 -5
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/Dots/index.scss +0 -14
- package/dist/providers/DocumentInfo/index.js +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +0 -1
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/ListQuery/context.d.ts +0 -2
- package/dist/providers/ListQuery/context.d.ts.map +1 -1
- package/dist/providers/ListQuery/context.js +0 -2
- package/dist/providers/ListQuery/context.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +13 -29
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/types.d.ts +3 -6
- package/dist/providers/ListQuery/types.d.ts.map +1 -1
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/Preferences/index.d.ts.map +1 -1
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +0 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/combineFieldLabel.d.ts +7 -0
- package/dist/utilities/combineFieldLabel.d.ts.map +1 -0
- package/dist/utilities/combineFieldLabel.js +31 -0
- package/dist/utilities/combineFieldLabel.js.map +1 -0
- package/dist/utilities/{formatDate.d.ts → formatDocTitle/formatDateTitle.d.ts} +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -0
- package/dist/utilities/{formatDate.js → formatDocTitle/formatDateTitle.js} +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -0
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts +19 -0
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts.map +1 -0
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +19 -0
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -0
- package/dist/utilities/{formatDocTitle.d.ts → formatDocTitle/index.d.ts} +2 -2
- package/dist/utilities/formatDocTitle/index.d.ts.map +1 -0
- package/dist/utilities/{formatDocTitle.js → formatDocTitle/index.js} +11 -3
- package/dist/utilities/formatDocTitle/index.js.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts +10 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.js +47 -0
- package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
- package/dist/utilities/renderTable.js +4 -4
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/upsertPreferences.d.ts +2 -7
- package/dist/utilities/upsertPreferences.d.ts.map +1 -1
- package/dist/utilities/upsertPreferences.js +5 -11
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +1 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -7
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +0 -8
- package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +0 -1
- package/dist/elements/ListControls/ActiveQueryPreset/index.js +0 -102
- package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +0 -1
- package/dist/elements/ListControls/ActiveQueryPreset/index.scss +0 -21
- package/dist/elements/ListControls/types.d.ts +0 -28
- package/dist/elements/ListControls/types.d.ts.map +0 -1
- package/dist/elements/ListControls/types.js.map +0 -1
- package/dist/elements/ListControls/useQueryPresets.d.ts +0 -17
- package/dist/elements/ListControls/useQueryPresets.d.ts.map +0 -1
- package/dist/elements/ListControls/useQueryPresets.js +0 -259
- package/dist/elements/ListControls/useQueryPresets.js.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.d.ts +0 -4
- package/dist/elements/Popup/PopupDivider/index.d.ts.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.js +0 -10
- package/dist/elements/Popup/PopupDivider/index.js.map +0 -1
- package/dist/elements/Popup/PopupDivider/index.scss +0 -10
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +0 -25
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +0 -11
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +0 -4
- package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +0 -23
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +0 -4
- package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +0 -64
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -28
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +0 -4
- package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +0 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +0 -118
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +0 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
- package/dist/icons/People/index.d.ts +0 -6
- package/dist/icons/People/index.d.ts.map +0 -1
- package/dist/icons/People/index.js +0 -18
- package/dist/icons/People/index.js.map +0 -1
- package/dist/icons/People/index.scss +0 -11
- package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildColumnState.js.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
- package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +0 -1
- package/dist/providers/TableColumns/context.d.ts.map +0 -1
- package/dist/providers/TableColumns/context.js.map +0 -1
- package/dist/providers/TableColumns/filterFields.d.ts.map +0 -1
- package/dist/providers/TableColumns/filterFields.js.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.d.ts.map +0 -1
- package/dist/providers/TableColumns/getInitialColumns.js.map +0 -1
- package/dist/providers/TableColumns/index.d.ts.map +0 -1
- package/dist/providers/TableColumns/index.js.map +0 -1
- package/dist/providers/TableColumns/types.d.ts.map +0 -1
- package/dist/providers/TableColumns/types.js +0 -2
- package/dist/providers/TableColumns/types.js.map +0 -1
- package/dist/utilities/formatDate.d.ts.map +0 -1
- package/dist/utilities/formatDate.js.map +0 -1
- package/dist/utilities/formatDocTitle.d.ts.map +0 -1
- package/dist/utilities/formatDocTitle.js.map +0 -1
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.scss +0 -0
- /package/dist/{providers → elements}/TableColumns/context.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/context.js +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/filterFields.js +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.d.ts +0 -0
- /package/dist/{providers → elements}/TableColumns/getInitialColumns.js +0 -0
- /package/dist/{providers → elements}/TableColumns/index.d.ts +0 -0
- /package/dist/elements/{ListControls → TableColumns}/types.js +0 -0
|
@@ -5,12 +5,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import { useModal } from '@faceless-ui/modal';
|
|
6
6
|
import { getTranslation } from '@payloadcms/translations';
|
|
7
7
|
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
8
|
-
import {
|
|
8
|
+
import { unflatten } from 'payload/shared';
|
|
9
9
|
import * as qs from 'qs-esm';
|
|
10
10
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
11
11
|
import { useForm } from '../../forms/Form/context.js';
|
|
12
12
|
import { Form } from '../../forms/Form/index.js';
|
|
13
|
-
import {
|
|
13
|
+
import { RenderField } from '../../forms/RenderFields/RenderField.js';
|
|
14
14
|
import { FormSubmit } from '../../forms/Submit/index.js';
|
|
15
15
|
import { XIcon } from '../../icons/X/index.js';
|
|
16
16
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
@@ -22,27 +22,17 @@ import { SelectAllStatus, useSelection } from '../../providers/Selection/index.j
|
|
|
22
22
|
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
23
23
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
24
24
|
import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
|
|
25
|
-
import {
|
|
25
|
+
import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
|
|
26
26
|
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
27
27
|
import { FieldSelect } from '../FieldSelect/index.js';
|
|
28
28
|
import { baseClass } from './index.js';
|
|
29
29
|
import './index.scss';
|
|
30
|
-
|
|
31
|
-
const filteredData = selected.reduce((acc, field) => {
|
|
32
|
-
const foundState = formState?.[field.path];
|
|
33
|
-
if (foundState) {
|
|
34
|
-
acc[field.path] = formState?.[field.path]?.value;
|
|
35
|
-
}
|
|
36
|
-
return acc;
|
|
37
|
-
}, {});
|
|
38
|
-
return filteredData;
|
|
39
|
-
};
|
|
30
|
+
import '../../forms/RenderFields/index.scss';
|
|
40
31
|
const Submit = t0 => {
|
|
41
|
-
const $ = _c(
|
|
32
|
+
const $ = _c(7);
|
|
42
33
|
const {
|
|
43
34
|
action,
|
|
44
|
-
disabled
|
|
45
|
-
selected
|
|
35
|
+
disabled
|
|
46
36
|
} = t0;
|
|
47
37
|
const {
|
|
48
38
|
submit
|
|
@@ -51,46 +41,43 @@ const Submit = t0 => {
|
|
|
51
41
|
t
|
|
52
42
|
} = useTranslation();
|
|
53
43
|
let t1;
|
|
54
|
-
if ($[0] !== action || $[1] !==
|
|
44
|
+
if ($[0] !== action || $[1] !== submit) {
|
|
55
45
|
t1 = () => {
|
|
56
46
|
submit({
|
|
57
47
|
action,
|
|
58
48
|
method: "PATCH",
|
|
59
|
-
overrides: formState => sanitizeUnselectedFields(formState, selected),
|
|
60
49
|
skipValidation: true
|
|
61
50
|
});
|
|
62
51
|
};
|
|
63
52
|
$[0] = action;
|
|
64
|
-
$[1] =
|
|
65
|
-
$[2] =
|
|
66
|
-
$[3] = t1;
|
|
53
|
+
$[1] = submit;
|
|
54
|
+
$[2] = t1;
|
|
67
55
|
} else {
|
|
68
|
-
t1 = $[
|
|
56
|
+
t1 = $[2];
|
|
69
57
|
}
|
|
70
58
|
const save = t1;
|
|
71
59
|
let t2;
|
|
72
|
-
if ($[
|
|
60
|
+
if ($[3] !== disabled || $[4] !== save || $[5] !== t) {
|
|
73
61
|
t2 = _jsx(FormSubmit, {
|
|
74
62
|
className: `${baseClass}__save`,
|
|
75
63
|
disabled,
|
|
76
64
|
onClick: save,
|
|
77
65
|
children: t("general:save")
|
|
78
66
|
});
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
67
|
+
$[3] = disabled;
|
|
68
|
+
$[4] = save;
|
|
69
|
+
$[5] = t;
|
|
70
|
+
$[6] = t2;
|
|
83
71
|
} else {
|
|
84
|
-
t2 = $[
|
|
72
|
+
t2 = $[6];
|
|
85
73
|
}
|
|
86
74
|
return t2;
|
|
87
75
|
};
|
|
88
76
|
const PublishButton = t0 => {
|
|
89
|
-
const $ = _c(
|
|
77
|
+
const $ = _c(7);
|
|
90
78
|
const {
|
|
91
79
|
action,
|
|
92
|
-
disabled
|
|
93
|
-
selected
|
|
80
|
+
disabled
|
|
94
81
|
} = t0;
|
|
95
82
|
const {
|
|
96
83
|
submit
|
|
@@ -99,49 +86,46 @@ const PublishButton = t0 => {
|
|
|
99
86
|
t
|
|
100
87
|
} = useTranslation();
|
|
101
88
|
let t1;
|
|
102
|
-
if ($[0] !== action || $[1] !==
|
|
89
|
+
if ($[0] !== action || $[1] !== submit) {
|
|
103
90
|
t1 = () => {
|
|
104
91
|
submit({
|
|
105
92
|
action,
|
|
106
93
|
method: "PATCH",
|
|
107
|
-
overrides:
|
|
108
|
-
...sanitizeUnselectedFields(formState, selected),
|
|
94
|
+
overrides: {
|
|
109
95
|
_status: "published"
|
|
110
|
-
}
|
|
96
|
+
},
|
|
111
97
|
skipValidation: true
|
|
112
98
|
});
|
|
113
99
|
};
|
|
114
100
|
$[0] = action;
|
|
115
|
-
$[1] =
|
|
116
|
-
$[2] =
|
|
117
|
-
$[3] = t1;
|
|
101
|
+
$[1] = submit;
|
|
102
|
+
$[2] = t1;
|
|
118
103
|
} else {
|
|
119
|
-
t1 = $[
|
|
104
|
+
t1 = $[2];
|
|
120
105
|
}
|
|
121
106
|
const save = t1;
|
|
122
107
|
let t2;
|
|
123
|
-
if ($[
|
|
108
|
+
if ($[3] !== disabled || $[4] !== save || $[5] !== t) {
|
|
124
109
|
t2 = _jsx(FormSubmit, {
|
|
125
110
|
className: `${baseClass}__publish`,
|
|
126
111
|
disabled,
|
|
127
112
|
onClick: save,
|
|
128
113
|
children: t("version:publishChanges")
|
|
129
114
|
});
|
|
130
|
-
$[
|
|
131
|
-
$[
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
115
|
+
$[3] = disabled;
|
|
116
|
+
$[4] = save;
|
|
117
|
+
$[5] = t;
|
|
118
|
+
$[6] = t2;
|
|
134
119
|
} else {
|
|
135
|
-
t2 = $[
|
|
120
|
+
t2 = $[6];
|
|
136
121
|
}
|
|
137
122
|
return t2;
|
|
138
123
|
};
|
|
139
124
|
const SaveDraftButton = t0 => {
|
|
140
|
-
const $ = _c(
|
|
125
|
+
const $ = _c(7);
|
|
141
126
|
const {
|
|
142
127
|
action,
|
|
143
|
-
disabled
|
|
144
|
-
selected
|
|
128
|
+
disabled
|
|
145
129
|
} = t0;
|
|
146
130
|
const {
|
|
147
131
|
submit
|
|
@@ -150,28 +134,26 @@ const SaveDraftButton = t0 => {
|
|
|
150
134
|
t
|
|
151
135
|
} = useTranslation();
|
|
152
136
|
let t1;
|
|
153
|
-
if ($[0] !== action || $[1] !==
|
|
137
|
+
if ($[0] !== action || $[1] !== submit) {
|
|
154
138
|
t1 = () => {
|
|
155
139
|
submit({
|
|
156
140
|
action,
|
|
157
141
|
method: "PATCH",
|
|
158
|
-
overrides:
|
|
159
|
-
...sanitizeUnselectedFields(formState, selected),
|
|
142
|
+
overrides: {
|
|
160
143
|
_status: "draft"
|
|
161
|
-
}
|
|
144
|
+
},
|
|
162
145
|
skipValidation: true
|
|
163
146
|
});
|
|
164
147
|
};
|
|
165
148
|
$[0] = action;
|
|
166
|
-
$[1] =
|
|
167
|
-
$[2] =
|
|
168
|
-
$[3] = t1;
|
|
149
|
+
$[1] = submit;
|
|
150
|
+
$[2] = t1;
|
|
169
151
|
} else {
|
|
170
|
-
t1 = $[
|
|
152
|
+
t1 = $[2];
|
|
171
153
|
}
|
|
172
154
|
const save = t1;
|
|
173
155
|
let t2;
|
|
174
|
-
if ($[
|
|
156
|
+
if ($[3] !== disabled || $[4] !== save || $[5] !== t) {
|
|
175
157
|
t2 = _jsx(FormSubmit, {
|
|
176
158
|
buttonStyle: "secondary",
|
|
177
159
|
className: `${baseClass}__draft`,
|
|
@@ -179,19 +161,18 @@ const SaveDraftButton = t0 => {
|
|
|
179
161
|
onClick: save,
|
|
180
162
|
children: t("version:saveDraft")
|
|
181
163
|
});
|
|
182
|
-
$[
|
|
183
|
-
$[
|
|
184
|
-
$[
|
|
185
|
-
$[
|
|
164
|
+
$[3] = disabled;
|
|
165
|
+
$[4] = save;
|
|
166
|
+
$[5] = t;
|
|
167
|
+
$[6] = t2;
|
|
186
168
|
} else {
|
|
187
|
-
t2 = $[
|
|
169
|
+
t2 = $[6];
|
|
188
170
|
}
|
|
189
171
|
return t2;
|
|
190
172
|
};
|
|
191
173
|
export const EditManyDrawerContent = props => {
|
|
192
174
|
const {
|
|
193
175
|
collection: {
|
|
194
|
-
slug,
|
|
195
176
|
fields,
|
|
196
177
|
labels: {
|
|
197
178
|
plural,
|
|
@@ -200,7 +181,8 @@ export const EditManyDrawerContent = props => {
|
|
|
200
181
|
} = {},
|
|
201
182
|
collection,
|
|
202
183
|
drawerSlug,
|
|
203
|
-
|
|
184
|
+
selectedFields,
|
|
185
|
+
setSelectedFields
|
|
204
186
|
} = props;
|
|
205
187
|
const {
|
|
206
188
|
permissions,
|
|
@@ -229,63 +211,41 @@ export const EditManyDrawerContent = props => {
|
|
|
229
211
|
i18n,
|
|
230
212
|
t
|
|
231
213
|
} = useTranslation();
|
|
232
|
-
const [
|
|
233
|
-
useEffect(() => {
|
|
234
|
-
setSelected(selectedFromProps);
|
|
235
|
-
}, [selectedFromProps]);
|
|
214
|
+
const [isInitializing, setIsInitializing] = useState(false);
|
|
236
215
|
const router = useRouter();
|
|
237
|
-
const [initialState, setInitialState] = useState();
|
|
238
|
-
const hasInitializedState = React.useRef(false);
|
|
239
216
|
const abortFormStateRef = React.useRef(null);
|
|
240
217
|
const {
|
|
241
218
|
clearRouteCache
|
|
242
219
|
} = useRouteCache();
|
|
243
|
-
const collectionPermissions = permissions?.collections?.[slug];
|
|
220
|
+
const collectionPermissions = permissions?.collections?.[collection.slug];
|
|
244
221
|
const searchParams = useSearchParams();
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
state: result
|
|
252
|
-
} = await getFormState({
|
|
253
|
-
collectionSlug: slug,
|
|
254
|
-
data: {},
|
|
255
|
-
docPermissions: collectionPermissions,
|
|
256
|
-
docPreferences: null,
|
|
257
|
-
operation: 'update',
|
|
258
|
-
schemaPath: slug,
|
|
259
|
-
signal: controller.signal,
|
|
260
|
-
skipValidation: true
|
|
261
|
-
});
|
|
262
|
-
setInitialState(result);
|
|
263
|
-
hasInitializedState.current = true;
|
|
264
|
-
};
|
|
265
|
-
void getInitialState();
|
|
266
|
-
}
|
|
267
|
-
return () => {
|
|
268
|
-
abortAndIgnore(controller);
|
|
269
|
-
};
|
|
270
|
-
}, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions]);
|
|
222
|
+
const select = useMemo(() => {
|
|
223
|
+
return unflatten(selectedFields.reduce((acc, field) => {
|
|
224
|
+
acc[field.path] = true;
|
|
225
|
+
return acc;
|
|
226
|
+
}, {}));
|
|
227
|
+
}, [selectedFields]);
|
|
271
228
|
const onChange = useCallback(async ({
|
|
272
|
-
formState: prevFormState
|
|
229
|
+
formState: prevFormState,
|
|
230
|
+
submitted
|
|
273
231
|
}) => {
|
|
274
|
-
const
|
|
232
|
+
const controller = handleAbortRef(abortFormStateRef);
|
|
275
233
|
const {
|
|
276
234
|
state
|
|
277
235
|
} = await getFormState({
|
|
278
|
-
collectionSlug: slug,
|
|
236
|
+
collectionSlug: collection.slug,
|
|
279
237
|
docPermissions: collectionPermissions,
|
|
280
238
|
docPreferences: null,
|
|
281
239
|
formState: prevFormState,
|
|
282
240
|
operation: 'update',
|
|
283
|
-
schemaPath: slug,
|
|
284
|
-
|
|
241
|
+
schemaPath: collection.slug,
|
|
242
|
+
select,
|
|
243
|
+
signal: controller.signal,
|
|
244
|
+
skipValidation: !submitted
|
|
285
245
|
});
|
|
286
246
|
abortFormStateRef.current = null;
|
|
287
247
|
return state;
|
|
288
|
-
}, [getFormState,
|
|
248
|
+
}, [getFormState, collection, collectionPermissions, select]);
|
|
289
249
|
useEffect(() => {
|
|
290
250
|
const abortFormState = abortFormStateRef.current;
|
|
291
251
|
return () => {
|
|
@@ -310,13 +270,46 @@ export const EditManyDrawerContent = props => {
|
|
|
310
270
|
;
|
|
311
271
|
closeModal(drawerSlug);
|
|
312
272
|
};
|
|
273
|
+
const onFieldSelect = useCallback(async ({
|
|
274
|
+
dispatchFields,
|
|
275
|
+
formState,
|
|
276
|
+
selected
|
|
277
|
+
}) => {
|
|
278
|
+
setIsInitializing(true);
|
|
279
|
+
if (selected === null) {
|
|
280
|
+
setSelectedFields([]);
|
|
281
|
+
} else {
|
|
282
|
+
setSelectedFields(selected.map(({
|
|
283
|
+
value
|
|
284
|
+
}) => value));
|
|
285
|
+
}
|
|
286
|
+
const {
|
|
287
|
+
state: state_0
|
|
288
|
+
} = await getFormState({
|
|
289
|
+
collectionSlug: collection.slug,
|
|
290
|
+
docPermissions: collectionPermissions,
|
|
291
|
+
docPreferences: null,
|
|
292
|
+
formState,
|
|
293
|
+
operation: 'update',
|
|
294
|
+
schemaPath: collection.slug,
|
|
295
|
+
select: unflatten(selected.reduce((acc_0, option) => {
|
|
296
|
+
acc_0[option.value.path] = true;
|
|
297
|
+
return acc_0;
|
|
298
|
+
}, {})),
|
|
299
|
+
skipValidation: true
|
|
300
|
+
});
|
|
301
|
+
dispatchFields({
|
|
302
|
+
type: 'UPDATE_MANY',
|
|
303
|
+
formState: state_0
|
|
304
|
+
});
|
|
305
|
+
setIsInitializing(false);
|
|
306
|
+
}, [getFormState, collection.slug, collectionPermissions, setSelectedFields]);
|
|
313
307
|
return /*#__PURE__*/_jsx(DocumentInfoProvider, {
|
|
314
|
-
collectionSlug: slug,
|
|
308
|
+
collectionSlug: collection.slug,
|
|
315
309
|
currentEditor: user,
|
|
316
310
|
hasPublishedDoc: false,
|
|
317
311
|
id: null,
|
|
318
312
|
initialData: {},
|
|
319
|
-
initialState: initialState,
|
|
320
313
|
isLocked: false,
|
|
321
314
|
lastUpdateTime: 0,
|
|
322
315
|
mostRecentVersionIsAutosaved: false,
|
|
@@ -344,19 +337,27 @@ export const EditManyDrawerContent = props => {
|
|
|
344
337
|
})]
|
|
345
338
|
}), /*#__PURE__*/_jsxs(Form, {
|
|
346
339
|
className: `${baseClass}__form`,
|
|
347
|
-
|
|
340
|
+
isInitializing: isInitializing,
|
|
348
341
|
onChange: [onChange],
|
|
349
342
|
onSuccess: onSuccess,
|
|
350
343
|
children: [/*#__PURE__*/_jsx(FieldSelect, {
|
|
351
|
-
fields:
|
|
352
|
-
|
|
353
|
-
}),
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
344
|
+
fields: fields,
|
|
345
|
+
onChange: onFieldSelect
|
|
346
|
+
}), selectedFields.length === 0 ? null : /*#__PURE__*/_jsx("div", {
|
|
347
|
+
className: "render-fields",
|
|
348
|
+
children: selectedFields.map((field_0, i) => {
|
|
349
|
+
const {
|
|
350
|
+
path
|
|
351
|
+
} = field_0;
|
|
352
|
+
return /*#__PURE__*/_jsx(RenderField, {
|
|
353
|
+
clientFieldConfig: field_0,
|
|
354
|
+
indexPath: "",
|
|
355
|
+
parentPath: "",
|
|
356
|
+
parentSchemaPath: "",
|
|
357
|
+
path: path,
|
|
358
|
+
permissions: collectionPermissions.fields === undefined || collectionPermissions.fields === null || collectionPermissions.fields === true ? true : 'name' in field_0 ? collectionPermissions.fields?.[field_0.name] : undefined
|
|
359
|
+
}, `${path}-${i}`);
|
|
360
|
+
})
|
|
360
361
|
}), /*#__PURE__*/_jsx("div", {
|
|
361
362
|
className: `${baseClass}__sidebar-wrap`,
|
|
362
363
|
children: /*#__PURE__*/_jsx("div", {
|
|
@@ -367,18 +368,15 @@ export const EditManyDrawerContent = props => {
|
|
|
367
368
|
className: `${baseClass}__document-actions`,
|
|
368
369
|
children: collection?.versions?.drafts ? /*#__PURE__*/_jsxs(React.Fragment, {
|
|
369
370
|
children: [/*#__PURE__*/_jsx(SaveDraftButton, {
|
|
370
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
|
|
371
|
-
disabled:
|
|
372
|
-
selected: selected
|
|
371
|
+
action: `${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`,
|
|
372
|
+
disabled: selectedFields.length === 0
|
|
373
373
|
}), /*#__PURE__*/_jsx(PublishButton, {
|
|
374
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
|
|
375
|
-
disabled:
|
|
376
|
-
selected: selected
|
|
374
|
+
action: `${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`,
|
|
375
|
+
disabled: selectedFields.length === 0
|
|
377
376
|
})]
|
|
378
377
|
}) : /*#__PURE__*/_jsx(Submit, {
|
|
379
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}`,
|
|
380
|
-
disabled:
|
|
381
|
-
selected: selected
|
|
378
|
+
action: `${serverURL}${apiRoute}/${collection.slug}${queryString}`,
|
|
379
|
+
disabled: selectedFields.length === 0
|
|
382
380
|
})
|
|
383
381
|
})
|
|
384
382
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","filterOutUploadFields","parseSearchParams","FieldSelect","baseClass","sanitizeUnselectedFields","formState","selected","filteredData","reduce","acc","field","foundState","path","value","Submit","t0","$","action","disabled","submit","t","t1","method","overrides","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","slug","fields","labels","plural","singular","drawerSlug","selectedFromProps","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","setSelected","router","initialState","setInitialState","hasInitializedState","useRef","abortFormStateRef","clearRouteCache","collectionPermissions","collections","searchParams","filteredFields","controller","AbortController","current","getInitialState","state","result","collectionSlug","data","docPermissions","docPreferences","operation","schemaPath","signal","onChange","prevFormState","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","type","length","parentIndexPath","parentPath","parentSchemaPath","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldWithPathClient, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport { baseClass, type EditManyProps } from './index.js'\nimport './index.scss'\n\nconst sanitizeUnselectedFields = (formState: FormState, selected: FieldWithPathClient[]) => {\n const filteredData = selected.reduce((acc, field) => {\n const foundState = formState?.[field.path]\n\n if (foundState) {\n acc[field.path] = formState?.[field.path]?.value\n }\n\n return acc\n }, {} as FormData)\n\n return filteredData\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n readonly selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => sanitizeUnselectedFields(formState, selected),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'published',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'draft',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditManyDrawerContent: React.FC<\n {\n drawerSlug: string\n selected: FieldWithPathClient[]\n } & EditManyProps\n> = (props) => {\n const {\n collection: { slug, fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n selected: selectedFromProps,\n } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n useEffect(() => {\n setSelected(selectedFromProps)\n }, [selectedFromProps])\n\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[slug]\n const searchParams = useSearchParams()\n\n const filteredFields = filterOutUploadFields(fields)\n\n React.useEffect(() => {\n const controller = new AbortController()\n\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const { state: result } = await getFormState({\n collectionSlug: slug,\n data: {},\n docPermissions: collectionPermissions,\n docPreferences: null,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, slug, collectionPermissions],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n return (\n <DocumentInfoProvider\n collectionSlug={slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n initialState={initialState}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={filteredFields} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields\n fields={selected}\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={slug}\n permissions={collectionPermissions?.fields}\n readOnly={false}\n />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${queryString}`}\n disabled={selected.length === 0}\n selected={selected}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,uBAAuB,QAAQ;AACxC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAIjE,SAASC,OAAO,QAAQ;AACxB,SAASC,IAAI,QAAQ;AACrB,SAASC,YAAY,QAAQ;AAC7B,SAASC,UAAU,QAAQ;AAC3B,SAASC,KAAK,QAAQ;AACtB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,WAAW,QAAQ;AAC5B,SAASC,SAAS,QAA4B;AAC9C,OAAO;AAEP,MAAMC,wBAAA,GAA2BA,CAACC,SAAA,EAAsBC,QAAA;EACtD,MAAMC,YAAA,GAAeD,QAAA,CAASE,MAAM,CAAC,CAACC,GAAA,EAAKC,KAAA;IACzC,MAAMC,UAAA,GAAaN,SAAA,GAAYK,KAAA,CAAME,IAAI,CAAC;IAE1C,IAAID,UAAA,EAAY;MACdF,GAAG,CAACC,KAAA,CAAME,IAAI,CAAC,GAAGP,SAAA,GAAYK,KAAA,CAAME,IAAI,CAAC,EAAEC,KAAA;IAC7C;IAEA,OAAOJ,GAAA;EACT,GAAG,CAAC;EAEJ,OAAOF,YAAA;AACT;AAEA,MAAMO,MAAA,GAIDC,EAAA;EAAA,MAAAC,CAAA,GAAA5C,EAAA;EAAC;IAAA6C,MAAA;IAAAC,QAAA;IAAAZ;EAAA,IAAAS,EAA8B;EAClC;IAAAI;EAAA,IAAmBnC,OAAA;EACnB;IAAAoC;EAAA,IAAcvB,cAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAL,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAV,QAAA,IAAAU,CAAA,QAAAG,MAAA;IAEWE,EAAA,GAAAA,CAAA;MAClBF,MAAA;QAAAF,MAAA;QAAAK,MAAA,EAEK;QAAAC,SAAA,EAAAlB,SAAA,IACkBD,wBAAA,CAAyBC,SAAA,EAAWC,QAAA;QAAAkB,cAAA;MAAA,CAEhE;IAAA;IACFR,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAV,QAAA;IAAAU,CAAA,MAAAG,MAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAPA,MAAAS,IAAA,GAAaJ,EAOgB;EAAA,IAAAK,EAAA;EAAA,IAAAV,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAS,IAAA,IAAAT,CAAA,QAAAI,CAAA;IAG3BM,EAAA,GAAAC,IAAA,CAAAxC,UAAA;MAAAyC,SAAA,EAAuB,GAAAzB,SAAA,QAAoB;MAAAe,QAAA;MAAAW,OAAA,EAA+BJ,IAAA;MAAAK,QAAA,EACvEV,CAAA,CAAE;IAAA,C;;;;;;;;SADLM,E;CAIJ;AAEA,MAAMK,aAAA,GAIDhB,EAAA;EAAA,MAAAC,CAAA,GAAA5C,EAAA;EAAC;IAAA6C,MAAA;IAAAC,QAAA;IAAAZ;EAAA,IAAAS,EAA8B;EAClC;IAAAI;EAAA,IAAmBnC,OAAA;EACnB;IAAAoC;EAAA,IAAcvB,cAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAL,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAV,QAAA,IAAAU,CAAA,QAAAG,MAAA;IAEWE,EAAA,GAAAA,CAAA;MAClBF,MAAA;QAAAF,MAAA;QAAAK,MAAA,EAEK;QAAAC,SAAA,EAAAlB,SAAA;UAAA,GAEHD,wBAAA,CAAyBC,SAAA,EAAWC,QAAA,CAAS;UAAA0B,OAAA,EACvC;QAAA;QAAAR,cAAA;MAAA,CAGb;IAAA;IACFR,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAV,QAAA;IAAAU,CAAA,MAAAG,MAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAVA,MAAAS,IAAA,GAAaJ,EAUgB;EAAA,IAAAK,EAAA;EAAA,IAAAV,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAS,IAAA,IAAAT,CAAA,QAAAI,CAAA;IAG3BM,EAAA,GAAAC,IAAA,CAAAxC,UAAA;MAAAyC,SAAA,EAAuB,GAAAzB,SAAA,WAAuB;MAAAe,QAAA;MAAAW,OAAA,EAA+BJ,IAAA;MAAAK,QAAA,EAC1EV,CAAA,CAAE;IAAA,C;;;;;;;;SADLM,E;CAIJ;AAEA,MAAMO,eAAA,GAIDlB,EAAA;EAAA,MAAAC,CAAA,GAAA5C,EAAA;EAAC;IAAA6C,MAAA;IAAAC,QAAA;IAAAZ;EAAA,IAAAS,EAA8B;EAClC;IAAAI;EAAA,IAAmBnC,OAAA;EACnB;IAAAoC;EAAA,IAAcvB,cAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAL,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAV,QAAA,IAAAU,CAAA,QAAAG,MAAA;IAEWE,EAAA,GAAAA,CAAA;MAClBF,MAAA;QAAAF,MAAA;QAAAK,MAAA,EAEK;QAAAC,SAAA,EAAAlB,SAAA;UAAA,GAEHD,wBAAA,CAAyBC,SAAA,EAAWC,QAAA,CAAS;UAAA0B,OAAA,EACvC;QAAA;QAAAR,cAAA;MAAA,CAGb;IAAA;IACFR,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAV,QAAA;IAAAU,CAAA,MAAAG,MAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAVA,MAAAS,IAAA,GAAaJ,EAUgB;EAAA,IAAAK,EAAA;EAAA,IAAAV,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAS,IAAA,IAAAT,CAAA,QAAAI,CAAA;IAG3BM,EAAA,GAAAC,IAAA,CAAAxC,UAAA;MAAA+C,WAAA,EACc;MAAAN,SAAA,EACD,GAAAzB,SAAA,SAAqB;MAAAe,QAAA;MAAAW,OAAA,EAEvBJ,IAAA;MAAAK,QAAA,EAERV,CAAA,CAAE;IAAA,C;;;;;;;;SANLM,E;CASJ;AAEA,OAAO,MAAMS,qBAAA,GAKRC,KAAA;EACH,MAAM;IACJC,UAAA,EAAY;MAAEC,IAAI;MAAEC,MAAM;MAAEC,MAAA,EAAQ;QAAEC,MAAM;QAAEC;MAAQ;IAAE,CAAE,GAAG,CAAC,CAAC;IAC/DL,UAAU;IACVM,UAAU;IACVrC,QAAA,EAAUsC;EAAiB,CAC5B,GAAGR,KAAA;EAEJ,MAAM;IAAES,WAAW;IAAEC;EAAI,CAAE,GAAGzD,OAAA;EAE9B,MAAM;IAAE0D;EAAU,CAAE,GAAG1E,QAAA;EAEvB,MAAM;IACJ2E,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,GAAA,EAAKC;MAAQ,CAAE;MACzBC;IAAS;EACV,CACF,GAAG9D,SAAA;EAEJ,MAAM;IAAE+D;EAAY,CAAE,GAAGzD,kBAAA;EAEzB,MAAM;IAAE0D,KAAK;IAAEC,cAAc;IAAEC;EAAS,CAAE,GAAG7D,YAAA;EAC7C,MAAM;IAAE8D,IAAI;IAAErC;EAAC,CAAE,GAAGvB,cAAA;EACpB,MAAM,CAACS,QAAA,EAAUoD,WAAA,CAAY,GAAG3E,QAAA,CAAgC,EAAE;EAElEF,SAAA,CAAU;IACR6E,WAAA,CAAYd,iBAAA;EACd,GAAG,CAACA,iBAAA,CAAkB;EAEtB,MAAMe,MAAA,GAASpF,SAAA;EACf,MAAM,CAACqF,YAAA,EAAcC,eAAA,CAAgB,GAAG9E,QAAA;EACxC,MAAM+E,mBAAA,GAAsBnF,KAAA,CAAMoF,MAAM,CAAC;EACzC,MAAMC,iBAAA,GAAoBrF,KAAA,CAAMoF,MAAM,CAAkB;EACxD,MAAM;IAAEE;EAAe,CAAE,GAAGxE,aAAA;EAC5B,MAAMyE,qBAAA,GAAwBrB,WAAA,EAAasB,WAAA,GAAc7B,IAAA,CAAK;EAC9D,MAAM8B,YAAA,GAAe5F,eAAA;EAErB,MAAM6F,cAAA,GAAiBrE,qBAAA,CAAsBuC,MAAA;EAE7C5D,KAAA,CAAME,SAAS,CAAC;IACd,MAAMyF,UAAA,GAAa,IAAIC,eAAA;IAEvB,IAAI,CAACT,mBAAA,CAAoBU,OAAO,EAAE;MAChC,MAAMC,eAAA,GAAkB,MAAAA,CAAA;QACtB,MAAM;UAAEC,KAAA,EAAOC;QAAM,CAAE,GAAG,MAAMtB,YAAA,CAAa;UAC3CuB,cAAA,EAAgBtC,IAAA;UAChBuC,IAAA,EAAM,CAAC;UACPC,cAAA,EAAgBZ,qBAAA;UAChBa,cAAA,EAAgB;UAChBC,SAAA,EAAW;UACXC,UAAA,EAAY3C,IAAA;UACZ4C,MAAA,EAAQZ,UAAA,CAAWY,MAAM;UACzB1D,cAAA,EAAgB;QAClB;QAEAqC,eAAA,CAAgBc,MAAA;QAChBb,mBAAA,CAAoBU,OAAO,GAAG;MAChC;MAEA,KAAKC,eAAA;IACP;IAEA,OAAO;MACL3E,cAAA,CAAewE,UAAA;IACjB;EACF,GAAG,CAACnB,QAAA,EAAUW,mBAAA,EAAqBV,SAAA,EAAWd,IAAA,EAAMe,YAAA,EAAcP,IAAA,EAAMoB,qBAAA,CAAsB;EAE9F,MAAMiB,QAAA,GAAqCvG,WAAA,CACzC,OAAO;IAAEyB,SAAA,EAAW+E;EAAa,CAAE;IACjC,MAAMd,YAAA,GAAavE,cAAA,CAAeiE,iBAAA;IAElC,MAAM;MAAEU;IAAK,CAAE,GAAG,MAAMrB,YAAA,CAAa;MACnCuB,cAAA,EAAgBtC,IAAA;MAChBwC,cAAA,EAAgBZ,qBAAA;MAChBa,cAAA,EAAgB;MAChB1E,SAAA,EAAW+E,aAAA;MACXJ,SAAA,EAAW;MACXC,UAAA,EAAY3C,IAAA;MACZ4C,MAAA,EAAQZ,YAAA,CAAWY;IACrB;IAEAlB,iBAAA,CAAkBQ,OAAO,GAAG;IAE5B,OAAOE,KAAA;EACT,GACA,CAACrB,YAAA,EAAcf,IAAA,EAAM4B,qBAAA,CAAsB;EAG7CrF,SAAA,CAAU;IACR,MAAMwG,cAAA,GAAiBrB,iBAAA,CAAkBQ,OAAO;IAEhD,OAAO;MACL1E,cAAA,CAAeuF,cAAA;IACjB;EACF,GAAG,EAAE;EAEL,MAAMC,WAAA,GAAcxG,OAAA,CAAQ;IAC1B,MAAMyG,eAAA,GAAkB9G,uBAAA,CAAwB;MAC9C+G,gBAAA,EAAkBnD,UAAA;MAClBoD,MAAA,EAAQrB,YAAA,CAAasB,GAAG,CAAC;IAC3B;IAEA,OAAOnC,cAAA,CAAegC,eAAA;EACxB,GAAG,CAAClD,UAAA,EAAY+B,YAAA,EAAcb,cAAA,CAAe;EAE7C,MAAMoC,SAAA,GAAYA,CAAA;IAChBhC,MAAA,CAAOiC,OAAO,CACZlH,EAAA,CAAGmH,SAAS,CACV;MACE,GAAG5F,iBAAA,CAAkBmE,YAAA,CAAa;MAClC0B,IAAA,EAAMtC,SAAA,KAAc9D,eAAA,CAAgBqG,YAAY,GAAG,MAAMC;IAC3D,GACA;MAAEC,cAAA,EAAgB;IAAK;IAG3BhC,eAAA,GAAkB;IAAA;IAClBlB,UAAA,CAAWJ,UAAA;EACb;EAEA,oBACEhB,IAAA,CAACpC,oBAAA;IACCqF,cAAA,EAAgBtC,IAAA;IAChB4D,aAAA,EAAepD,IAAA;IACfqD,eAAA,EAAiB;IACjBC,EAAA,EAAI;IACJC,WAAA,EAAa,CAAC;IACdzC,YAAA,EAAcA,YAAA;IACd0C,QAAA,EAAU;IACVC,cAAA,EAAgB;IAChBC,4BAAA,EAA8B;IAC9BC,uBAAA,EAAyB;IACzBC,YAAA,EAAc;cAEd,aAAA/E,IAAA,CAACnC,gBAAA;MAAiBqB,KAAA,EAAM;gBACtB,aAAA8F,KAAA,CAAC;QAAI/E,SAAA,EAAW,GAAGzB,SAAA,QAAiB;gCAClCwG,KAAA,CAAC;UAAI/E,SAAA,EAAW,GAAGzB,SAAA,UAAmB;kCACpCwB,IAAA,CAAC;YAAGC,SAAA,EAAW,GAAGzB,SAAA,iBAA0B;sBACzCiB,CAAA,CAAE,wBAAwB;cACzBkC,KAAA;cACAsD,KAAA,EAAOtI,cAAA,CAAegF,KAAA,GAAQ,IAAIb,MAAA,GAASC,QAAA,EAAUe,IAAA;YACvD;2BAEF9B,IAAA,CAAC;YACC,cAAYP,CAAA,CAAE;YACdQ,SAAA,EAAW,GAAGzB,SAAA,iBAA0B;YACxCiG,EAAA,EAAI,iBAAiBzD,UAAA,EAAY;YACjCd,OAAA,EAASA,CAAA,KAAMkB,UAAA,CAAWJ,UAAA;YAC1BkE,IAAA,EAAK;sBAEL,aAAAlF,IAAA,CAACvC,KAAA;;yBAGLuH,KAAA,CAAC1H,IAAA;UACC2C,SAAA,EAAW,GAAGzB,SAAA,QAAiB;UAC/ByD,YAAA,EAAcA,YAAA;UACduB,QAAA,EAAU,CAACA,QAAA,CAAS;UACpBQ,SAAA,EAAWA,SAAA;kCAEXhE,IAAA,CAACzB,WAAA;YAAYqC,MAAA,EAAQ8B,cAAA;YAAgBX,WAAA,EAAaA;cACjDpD,QAAA,CAASwG,MAAM,KAAK,IAAI,oBACvBnF,IAAA,CAACzC,YAAA;YACCqD,MAAA,EAAQjC,QAAA;YACRyG,eAAA,EAAgB;YAChBC,UAAA,EAAW;YACXC,gBAAA,EAAkB3E,IAAA;YAClBO,WAAA,EAAaqB,qBAAA,EAAuB3B,MAAA;YACpC2E,QAAA,EAAU;2BAGdvF,IAAA,CAAC;YAAIC,SAAA,EAAW,GAAGzB,SAAA,gBAAyB;sBAC1C,aAAAwB,IAAA,CAAC;cAAIC,SAAA,EAAW,GAAGzB,SAAA,WAAoB;wBACrC,aAAAwB,IAAA,CAAC;gBAAIC,SAAA,EAAW,GAAGzB,SAAA,uBAAgC;0BACjD,aAAAwB,IAAA,CAAC;kBAAIC,SAAA,EAAW,GAAGzB,SAAA,oBAA6B;4BAC7CkC,UAAA,EAAY8E,QAAA,EAAUC,MAAA,gBACrBT,KAAA,CAAChI,KAAA,CAAM0I,QAAQ;4CACb1F,IAAA,CAACM,eAAA;sBACChB,MAAA,EAAQ,GAAGmC,SAAA,GAAYD,QAAA,IAAYb,IAAA,GAAOgD,WAAA,aAAwB;sBAClEpE,QAAA,EAAUZ,QAAA,CAASwG,MAAM,KAAK;sBAC9BxG,QAAA,EAAUA;qCAEZqB,IAAA,CAACI,aAAA;sBACCd,MAAA,EAAQ,GAAGmC,SAAA,GAAYD,QAAA,IAAYb,IAAA,GAAOgD,WAAA,aAAwB;sBAClEpE,QAAA,EAAUZ,QAAA,CAASwG,MAAM,KAAK;sBAC9BxG,QAAA,EAAUA;;oCAIdqB,IAAA,CAACb,MAAA;oBACCG,MAAA,EAAQ,GAAGmC,SAAA,GAAYD,QAAA,IAAYb,IAAA,GAAOgD,WAAA,EAAa;oBACvDpE,QAAA,EAAUZ,QAAA,CAASwG,MAAM,KAAK;oBAC9BxG,QAAA,EAAUA;;;;;;;;;;AAYlC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","mergeListSearchAndWhere","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","drawerSlug","selectedFields","setSelectedFields","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","field","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","onFieldSelect","dispatchFields","selected","map","value","option","type","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","i","clientFieldConfig","indexPath","parentPath","parentSchemaPath","name","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldWithPathClient, SelectType } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { unflatten } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport { baseClass, type EditManyProps } from './index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditManyDrawerContent: React.FC<\n {\n drawerSlug: string\n selectedFields: FieldWithPathClient[]\n setSelectedFields: React.Dispatch<React.SetStateAction<FieldWithPathClient[]>>\n } & EditManyProps\n> = (props) => {\n const {\n collection: { fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n selectedFields,\n setSelectedFields,\n } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, field) => {\n acc[field.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n if (selected === null) {\n setSelectedFields([])\n } else {\n setSelectedFields(selected.map(({ value }) => value))\n }\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={fields} onChange={onFieldSelect} />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((field, i) => {\n const { path } = field\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={\n collectionPermissions.fields === undefined ||\n collectionPermissions.fields === null ||\n collectionPermissions.fields === true\n ? true\n : 'name' in field\n ? collectionPermissions.fields?.[field.name]\n : undefined\n }\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}`}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -39,20 +39,19 @@ export const EditMany = props => {
|
|
|
39
39
|
} else {
|
|
40
40
|
t1 = $[0];
|
|
41
41
|
}
|
|
42
|
-
const [
|
|
42
|
+
const [selectedFields, setSelectedFields] = useState(t1);
|
|
43
43
|
const collectionPermissions = permissions?.collections?.[slug];
|
|
44
|
-
const hasUpdatePermission = collectionPermissions?.update;
|
|
45
44
|
const drawerSlug = `edit-${slug}`;
|
|
46
|
-
if (selectAll === SelectAllStatus.None || !
|
|
45
|
+
if (selectAll === SelectAllStatus.None || !collectionPermissions?.update) {
|
|
47
46
|
return null;
|
|
48
47
|
}
|
|
49
48
|
let t2;
|
|
50
|
-
if ($[1] !== drawerSlug || $[2] !== openModal || $[3] !== props.collection || $[4] !==
|
|
49
|
+
if ($[1] !== drawerSlug || $[2] !== openModal || $[3] !== props.collection || $[4] !== selectedFields || $[5] !== t) {
|
|
51
50
|
let t3;
|
|
52
51
|
if ($[7] !== drawerSlug || $[8] !== openModal) {
|
|
53
52
|
t3 = () => {
|
|
54
53
|
openModal(drawerSlug);
|
|
55
|
-
|
|
54
|
+
setSelectedFields([]);
|
|
56
55
|
};
|
|
57
56
|
$[7] = drawerSlug;
|
|
58
57
|
$[8] = openModal;
|
|
@@ -75,7 +74,8 @@ export const EditMany = props => {
|
|
|
75
74
|
children: _jsx(EditManyDrawerContent, {
|
|
76
75
|
collection: props.collection,
|
|
77
76
|
drawerSlug,
|
|
78
|
-
|
|
77
|
+
selectedFields,
|
|
78
|
+
setSelectedFields
|
|
79
79
|
})
|
|
80
80
|
})
|
|
81
81
|
})]
|
|
@@ -83,7 +83,7 @@ export const EditMany = props => {
|
|
|
83
83
|
$[1] = drawerSlug;
|
|
84
84
|
$[2] = openModal;
|
|
85
85
|
$[3] = props.collection;
|
|
86
|
-
$[4] =
|
|
86
|
+
$[4] = selectedFields;
|
|
87
87
|
$[5] = t;
|
|
88
88
|
$[6] = t2;
|
|
89
89
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","openModal","selectAll","t","t1","Symbol","for","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","openModal","selectAll","t","t1","Symbol","for","selectedFields","setSelectedFields","collectionPermissions","collections","drawerSlug","None","update","t2","t3","_jsxs","className","children","_jsx","onClick","type","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selectedFields, setSelectedFields] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !collectionPermissions?.update) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <button\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(drawerSlug)\n setSelectedFields([])\n }}\n type=\"button\"\n >\n {t('general:edit')}\n </button>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selectedFields={selectedFields}\n setSelectedFields={setSelectedFields}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBd,OAAA;EACxB;IAAAe;EAAA,IAAsBlB,QAAA;EAEtB;IAAAmB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IAC8DF,EAAA;IAAER,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAA9E,OAAAW,cAAA,EAAAC,iBAAA,IAA4CvB,QAAA,CAAgCmB,EAAE;EAE9E,MAAAK,qBAAA,GAA8BT,WAAA,EAAAU,WAAA,GAA2BX,IAAA;EAEzD,MAAAY,UAAA,GAAmB,QAAQZ,IAAA,EAAM;EAAA,IAE7BG,SAAA,KAAAd,eAAA,CAAAwB,IAAkC,KAAKH,qBAAA,EAAAI,MAAuB;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAe,UAAA,IAAAf,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAW,cAAA,IAAAX,CAAA,QAAAO,CAAA;IAAA,IAAAY,EAAA;IAAA,IAAAnB,CAAA,QAAAe,UAAA,IAAAf,CAAA,QAAAK,SAAA;MASnDc,EAAA,GAAAA,CAAA;QACPd,SAAA,CAAUU,UAAA;QACVH,iBAAA,GAAoB;MAAA;MACtBZ,CAAA,MAAAe,UAAA;MAAAf,CAAA,MAAAK,SAAA;MAAAL,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IAPJkB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAxB,SAAA;MAAAyB,QAAA,GACCC,IAAA,CAAC;QAAA,cACahB,CAAA,CAAE;QAAAc,SAAA,EACH,GAAAxB,SAAA,UAAsB;QAAA2B,OAAA,EACxBL,EAGT;QAAAM,IAAA,EACK;QAAAH,QAAA,EAEJf,CAAA,CAAE;MAAA,C,GAELgB,IAAA,CAAAhC,iBAAA;QAAA+B,QAAA,EACEC,IAAA,CAAA5B,MAAA;UAAA+B,MAAA;UAAAvB,IAAA,EAA4BY,UAAA;UAAAO,QAAA,EAC1BC,IAAA,CAAA3B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAc,UAAA;YAAAJ,cAAA;YAAAC;UAAA,C;;;;;;;;;;;;;SAfpBM,E;CAwBJ","ignoreList":[]}
|
|
@@ -124,14 +124,26 @@
|
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
&__save {
|
|
128
|
+
width: calc(50% - #{base(1)});
|
|
129
|
+
|
|
130
|
+
@include mid-break {
|
|
131
|
+
width: 100%;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&__publish,
|
|
136
|
+
&__draft {
|
|
137
|
+
width: 100%;
|
|
138
|
+
}
|
|
139
|
+
|
|
127
140
|
&__document-actions {
|
|
128
141
|
display: flex;
|
|
129
|
-
flex-wrap: wrap;
|
|
130
142
|
padding: base(1);
|
|
131
143
|
gap: base(0.5);
|
|
132
144
|
|
|
133
145
|
.form-submit {
|
|
134
|
-
width:
|
|
146
|
+
width: 100%;
|
|
135
147
|
|
|
136
148
|
@include mid-break {
|
|
137
149
|
width: auto;
|
|
@@ -139,7 +151,6 @@
|
|
|
139
151
|
}
|
|
140
152
|
|
|
141
153
|
.btn {
|
|
142
|
-
width: 100%;
|
|
143
154
|
padding-left: base(0.5);
|
|
144
155
|
padding-right: base(0.5);
|
|
145
156
|
margin-bottom: 0;
|