@payloadcms/ui 3.34.0-canary.4 → 3.34.0
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/AddNewRelation/index.js +16 -18
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +66 -30
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +4 -4
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +5 -3
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +127 -302
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/Status/index.js +92 -168
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +4 -4
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.js +0 -1
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/types.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts +2 -2
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +103 -17
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/types.d.ts +2 -2
- package/dist/elements/WhereBuilder/Condition/Number/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/types.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +102 -17
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.d.ts +2 -2
- package/dist/elements/WhereBuilder/Condition/Text/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -2
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +5 -5
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +3 -2
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/exports/client/{CodeEditor-J4IKAVAK.js → CodeEditor-7N7BMHRP.js} +2 -2
- package/dist/exports/client/{DatePicker-DMHV2M2L.js → DatePicker-4DPXLCID.js} +2 -2
- package/dist/exports/client/{chunk-3AA2TJQ5.js → chunk-OA4JPMVI.js} +1 -1
- package/dist/exports/client/{chunk-3AA2TJQ5.js.map → chunk-OA4JPMVI.js.map} +1 -1
- package/dist/exports/client/{chunk-PKQOCWZD.js → chunk-QPA2ZA5J.js} +1 -1
- package/dist/exports/client/{chunk-PKQOCWZD.js.map → chunk-QPA2ZA5J.js.map} +1 -1
- package/dist/exports/client/index.d.ts +3 -0
- 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/fields/Tabs/index.js +2 -2
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +16 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +37 -54
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts +8 -9
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +50 -101
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +7 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +16 -5
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +1 -5
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +2 -2
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/package.json +9 -9
- package/dist/forms/Form/mergeErrorPaths.d.ts +0 -5
- package/dist/forms/Form/mergeErrorPaths.d.ts.map +0 -1
- package/dist/forms/Form/mergeErrorPaths.js +0 -30
- package/dist/forms/Form/mergeErrorPaths.js.map +0 -1
- package/dist/utilities/arraysHaveSameStrings.d.ts +0 -2
- package/dist/utilities/arraysHaveSameStrings.d.ts.map +0 -1
- package/dist/utilities/arraysHaveSameStrings.js +0 -17
- package/dist/utilities/arraysHaveSameStrings.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-J4IKAVAK.js.map → CodeEditor-7N7BMHRP.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-DMHV2M2L.js.map → DatePicker-4DPXLCID.js.map} +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
4
|
import { useModal } from '@faceless-ui/modal';
|
|
6
5
|
import * as qs from 'qs-esm';
|
|
@@ -16,11 +15,9 @@ import { useOperation } from '../../providers/Operation/index.js';
|
|
|
16
15
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
17
16
|
import { PopupList } from '../Popup/index.js';
|
|
18
17
|
import { ScheduleDrawer } from './ScheduleDrawer/index.js';
|
|
19
|
-
export function PublishButton(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
label: labelProp
|
|
23
|
-
} = t0;
|
|
18
|
+
export function PublishButton({
|
|
19
|
+
label: labelProp
|
|
20
|
+
}) {
|
|
24
21
|
const {
|
|
25
22
|
id,
|
|
26
23
|
collectionSlug,
|
|
@@ -53,318 +50,146 @@ export function PublishButton(t0) {
|
|
|
53
50
|
const drawerSlug = `schedule-publish-${id}`;
|
|
54
51
|
const {
|
|
55
52
|
localization,
|
|
56
|
-
routes:
|
|
53
|
+
routes: {
|
|
54
|
+
api
|
|
55
|
+
},
|
|
57
56
|
serverURL
|
|
58
57
|
} = config;
|
|
59
|
-
const {
|
|
60
|
-
api
|
|
61
|
-
} = t1;
|
|
62
58
|
const {
|
|
63
59
|
t
|
|
64
60
|
} = useTranslation();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
t2 = labelProp || t("version:publishChanges");
|
|
68
|
-
$[0] = labelProp;
|
|
69
|
-
$[1] = t;
|
|
70
|
-
$[2] = t2;
|
|
71
|
-
} else {
|
|
72
|
-
t2 = $[2];
|
|
73
|
-
}
|
|
74
|
-
const label = t2;
|
|
75
|
-
let t3;
|
|
76
|
-
bb0: {
|
|
61
|
+
const label = labelProp || t('version:publishChanges');
|
|
62
|
+
const entityConfig = React.useMemo(() => {
|
|
77
63
|
if (collectionSlug) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
collectionSlug
|
|
82
|
-
});
|
|
83
|
-
$[3] = collectionSlug;
|
|
84
|
-
$[4] = getEntityConfig;
|
|
85
|
-
$[5] = t4;
|
|
86
|
-
} else {
|
|
87
|
-
t4 = $[5];
|
|
88
|
-
}
|
|
89
|
-
t3 = t4;
|
|
90
|
-
break bb0;
|
|
64
|
+
return getEntityConfig({
|
|
65
|
+
collectionSlug
|
|
66
|
+
});
|
|
91
67
|
}
|
|
92
68
|
if (globalSlug) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
globalSlug
|
|
97
|
-
});
|
|
98
|
-
$[6] = getEntityConfig;
|
|
99
|
-
$[7] = globalSlug;
|
|
100
|
-
$[8] = t4;
|
|
101
|
-
} else {
|
|
102
|
-
t4 = $[8];
|
|
103
|
-
}
|
|
104
|
-
t3 = t4;
|
|
105
|
-
break bb0;
|
|
69
|
+
return getEntityConfig({
|
|
70
|
+
globalSlug
|
|
71
|
+
});
|
|
106
72
|
}
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
const entityConfig = t3;
|
|
73
|
+
}, [collectionSlug, globalSlug, getEntityConfig]);
|
|
110
74
|
const hasNewerVersions = unpublishedVersionCount > 0;
|
|
111
|
-
const
|
|
112
|
-
const
|
|
75
|
+
const schedulePublish = typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.schedulePublish;
|
|
76
|
+
const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== 'uploading';
|
|
77
|
+
const scheduledPublishEnabled = Boolean(schedulePublish);
|
|
113
78
|
const canSchedulePublish = Boolean(scheduledPublishEnabled && hasPublishPermission && (globalSlug || collectionSlug && id) && !modified);
|
|
114
79
|
const operation = useOperation();
|
|
115
|
-
const disabled = operation ===
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
if (id) {
|
|
128
|
-
method = "PATCH";
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (globalSlug) {
|
|
132
|
-
action = `${serverURL}${api}/globals/${globalSlug}${search}`;
|
|
133
|
-
}
|
|
134
|
-
await submit({
|
|
135
|
-
action,
|
|
136
|
-
method,
|
|
137
|
-
overrides: {
|
|
138
|
-
_status: "draft"
|
|
139
|
-
},
|
|
140
|
-
skipValidation: true
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
$[9] = api;
|
|
144
|
-
$[10] = collectionSlug;
|
|
145
|
-
$[11] = disabled;
|
|
146
|
-
$[12] = globalSlug;
|
|
147
|
-
$[13] = id;
|
|
148
|
-
$[14] = localeCode;
|
|
149
|
-
$[15] = serverURL;
|
|
150
|
-
$[16] = submit;
|
|
151
|
-
$[17] = t4;
|
|
152
|
-
} else {
|
|
153
|
-
t4 = $[17];
|
|
154
|
-
}
|
|
155
|
-
const saveDraft = t4;
|
|
156
|
-
let t5;
|
|
157
|
-
if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
|
|
158
|
-
t5 = ["s"];
|
|
159
|
-
$[18] = t5;
|
|
160
|
-
} else {
|
|
161
|
-
t5 = $[18];
|
|
162
|
-
}
|
|
163
|
-
let t6;
|
|
164
|
-
if ($[19] !== editDepth) {
|
|
165
|
-
t6 = {
|
|
166
|
-
cmdCtrlKey: true,
|
|
167
|
-
editDepth,
|
|
168
|
-
keyCodes: t5
|
|
169
|
-
};
|
|
170
|
-
$[19] = editDepth;
|
|
171
|
-
$[20] = t6;
|
|
172
|
-
} else {
|
|
173
|
-
t6 = $[20];
|
|
174
|
-
}
|
|
175
|
-
let t7;
|
|
176
|
-
if ($[21] !== docConfig || $[22] !== saveDraft) {
|
|
177
|
-
t7 = e => {
|
|
178
|
-
e.preventDefault();
|
|
179
|
-
e.stopPropagation();
|
|
180
|
-
if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {
|
|
181
|
-
saveDraft();
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
$[21] = docConfig;
|
|
185
|
-
$[22] = saveDraft;
|
|
186
|
-
$[23] = t7;
|
|
187
|
-
} else {
|
|
188
|
-
t7 = $[23];
|
|
189
|
-
}
|
|
190
|
-
useHotkey(t6, t7);
|
|
191
|
-
let t8;
|
|
192
|
-
if ($[24] !== setHasPublishedDoc || $[25] !== setMostRecentVersionIsAutosaved || $[26] !== setUnpublishedVersionCount || $[27] !== submit || $[28] !== uploadStatus) {
|
|
193
|
-
t8 = () => {
|
|
194
|
-
if (uploadStatus === "uploading") {
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
submit({
|
|
198
|
-
overrides: {
|
|
199
|
-
_status: "published"
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
setUnpublishedVersionCount(0);
|
|
203
|
-
setMostRecentVersionIsAutosaved(false);
|
|
204
|
-
setHasPublishedDoc(true);
|
|
205
|
-
};
|
|
206
|
-
$[24] = setHasPublishedDoc;
|
|
207
|
-
$[25] = setMostRecentVersionIsAutosaved;
|
|
208
|
-
$[26] = setUnpublishedVersionCount;
|
|
209
|
-
$[27] = submit;
|
|
210
|
-
$[28] = uploadStatus;
|
|
211
|
-
$[29] = t8;
|
|
212
|
-
} else {
|
|
213
|
-
t8 = $[29];
|
|
214
|
-
}
|
|
215
|
-
const publish = t8;
|
|
216
|
-
let t9;
|
|
217
|
-
if ($[30] !== api || $[31] !== collectionSlug || $[32] !== globalSlug || $[33] !== id || $[34] !== serverURL || $[35] !== setHasPublishedDoc || $[36] !== submit || $[37] !== uploadStatus) {
|
|
218
|
-
t9 = locale => {
|
|
219
|
-
if (uploadStatus === "uploading") {
|
|
220
|
-
return;
|
|
80
|
+
const disabled = operation === 'update' && !modified;
|
|
81
|
+
const saveDraft = useCallback(async () => {
|
|
82
|
+
if (disabled) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`;
|
|
86
|
+
let action;
|
|
87
|
+
let method = 'POST';
|
|
88
|
+
if (collectionSlug) {
|
|
89
|
+
action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`;
|
|
90
|
+
if (id) {
|
|
91
|
+
method = 'PATCH';
|
|
221
92
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
};
|
|
234
|
-
$[30] = api;
|
|
235
|
-
$[31] = collectionSlug;
|
|
236
|
-
$[32] = globalSlug;
|
|
237
|
-
$[33] = id;
|
|
238
|
-
$[34] = serverURL;
|
|
239
|
-
$[35] = setHasPublishedDoc;
|
|
240
|
-
$[36] = submit;
|
|
241
|
-
$[37] = uploadStatus;
|
|
242
|
-
$[38] = t9;
|
|
243
|
-
} else {
|
|
244
|
-
t9 = $[38];
|
|
245
|
-
}
|
|
246
|
-
const publishSpecificLocale = t9;
|
|
247
|
-
const publishAll = !localization || localization && localization.defaultLocalePublishOption !== "active";
|
|
248
|
-
let t10;
|
|
249
|
-
if ($[39] !== localeCode || $[40] !== localization) {
|
|
250
|
-
t10 = localization && localization?.locales.find(locale_0 => typeof locale_0 === "string" ? locale_0 === localeCode : locale_0.code === localeCode);
|
|
251
|
-
$[39] = localeCode;
|
|
252
|
-
$[40] = localization;
|
|
253
|
-
$[41] = t10;
|
|
254
|
-
} else {
|
|
255
|
-
t10 = $[41];
|
|
256
|
-
}
|
|
257
|
-
const activeLocale = t10;
|
|
258
|
-
const activeLocaleLabel = activeLocale && (typeof activeLocale.label === "string" ? activeLocale.label : activeLocale.label?.[localeCode] ?? undefined);
|
|
259
|
-
let t11;
|
|
260
|
-
if ($[42] !== activeLocale || $[43] !== publish || $[44] !== publishAll || $[45] !== publishSpecificLocale) {
|
|
261
|
-
t11 = publishAll ? publish : () => publishSpecificLocale(activeLocale.code);
|
|
262
|
-
$[42] = activeLocale;
|
|
263
|
-
$[43] = publish;
|
|
264
|
-
$[44] = publishAll;
|
|
265
|
-
$[45] = publishSpecificLocale;
|
|
266
|
-
$[46] = t11;
|
|
267
|
-
} else {
|
|
268
|
-
t11 = $[46];
|
|
269
|
-
}
|
|
270
|
-
const defaultPublish = t11;
|
|
271
|
-
let t12;
|
|
272
|
-
if ($[47] !== activeLocaleLabel || $[48] !== label || $[49] !== publishAll || $[50] !== t) {
|
|
273
|
-
t12 = publishAll ? label : t("version:publishIn", {
|
|
274
|
-
locale: activeLocaleLabel
|
|
93
|
+
}
|
|
94
|
+
if (globalSlug) {
|
|
95
|
+
action = `${serverURL}${api}/globals/${globalSlug}${search}`;
|
|
96
|
+
}
|
|
97
|
+
await submit({
|
|
98
|
+
action,
|
|
99
|
+
method,
|
|
100
|
+
overrides: {
|
|
101
|
+
_status: 'draft'
|
|
102
|
+
},
|
|
103
|
+
skipValidation: true
|
|
275
104
|
});
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
296
|
-
const secondaryPublish = t13;
|
|
297
|
-
let t14;
|
|
298
|
-
let t15;
|
|
299
|
-
if ($[57] !== activeLocaleLabel || $[58] !== canPublish || $[59] !== canSchedulePublish || $[60] !== defaultLabel || $[61] !== defaultPublish || $[62] !== drawerSlug || $[63] !== hasNewerVersions || $[64] !== hasPublishPermission || $[65] !== isModalOpen || $[66] !== label || $[67] !== localization || $[68] !== publishAll || $[69] !== secondaryPublish || $[70] !== t || $[71] !== toggleModal) {
|
|
300
|
-
t15 = Symbol.for("react.early_return_sentinel");
|
|
301
|
-
bb1: {
|
|
302
|
-
const secondaryLabel = publishAll ? t("version:publishIn", {
|
|
303
|
-
locale: activeLocaleLabel
|
|
304
|
-
}) : t("version:publishAllLocales");
|
|
305
|
-
if (!hasPublishPermission) {
|
|
306
|
-
t15 = null;
|
|
307
|
-
break bb1;
|
|
105
|
+
}, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled]);
|
|
106
|
+
useHotkey({
|
|
107
|
+
cmdCtrlKey: true,
|
|
108
|
+
editDepth,
|
|
109
|
+
keyCodes: ['s']
|
|
110
|
+
}, e => {
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
e.stopPropagation();
|
|
113
|
+
if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {
|
|
114
|
+
void saveDraft();
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const publish = useCallback(() => {
|
|
118
|
+
if (uploadStatus === 'uploading') {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
void submit({
|
|
122
|
+
overrides: {
|
|
123
|
+
_status: 'published'
|
|
308
124
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const {
|
|
318
|
-
close
|
|
319
|
-
} = t16;
|
|
320
|
-
return _jsxs(React.Fragment, {
|
|
321
|
-
children: [canSchedulePublish && _jsx(PopupList.ButtonGroup, {
|
|
322
|
-
children: _jsx(PopupList.Button, {
|
|
323
|
-
id: "schedule-publish",
|
|
324
|
-
onClick: () => [toggleModal(drawerSlug), close()],
|
|
325
|
-
children: t("version:schedulePublish")
|
|
326
|
-
})
|
|
327
|
-
}, "schedule-publish"), localization && canPublish && _jsx(PopupList.ButtonGroup, {
|
|
328
|
-
children: _jsx(PopupList.Button, {
|
|
329
|
-
id: "publish-locale",
|
|
330
|
-
onClick: secondaryPublish,
|
|
331
|
-
children: secondaryLabel
|
|
332
|
-
})
|
|
333
|
-
})]
|
|
334
|
-
});
|
|
335
|
-
} : undefined,
|
|
336
|
-
type: "button",
|
|
337
|
-
children: localization ? defaultLabel : label
|
|
338
|
-
}), canSchedulePublish && isModalOpen(drawerSlug) && _jsx(ScheduleDrawer, {
|
|
339
|
-
defaultType: !hasNewerVersions ? "unpublish" : "publish",
|
|
340
|
-
slug: drawerSlug
|
|
341
|
-
})]
|
|
342
|
-
});
|
|
125
|
+
});
|
|
126
|
+
setUnpublishedVersionCount(0);
|
|
127
|
+
setMostRecentVersionIsAutosaved(false);
|
|
128
|
+
setHasPublishedDoc(true);
|
|
129
|
+
}, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
|
|
130
|
+
const publishSpecificLocale = useCallback(locale => {
|
|
131
|
+
if (uploadStatus === 'uploading') {
|
|
132
|
+
return;
|
|
343
133
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
134
|
+
const params = qs.stringify({
|
|
135
|
+
publishSpecificLocale: locale
|
|
136
|
+
});
|
|
137
|
+
const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`}${params ? '?' + params : ''}`;
|
|
138
|
+
void submit({
|
|
139
|
+
action: action_0,
|
|
140
|
+
overrides: {
|
|
141
|
+
_status: 'published'
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
setHasPublishedDoc(true);
|
|
145
|
+
}, [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus]);
|
|
146
|
+
const publishAll = !localization || localization && localization.defaultLocalePublishOption !== 'active';
|
|
147
|
+
const activeLocale = localization && localization?.locales.find(locale_0 => typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode);
|
|
148
|
+
const activeLocaleLabel = activeLocale && (typeof activeLocale.label === 'string' ? activeLocale.label : activeLocale.label?.[localeCode] ?? undefined);
|
|
149
|
+
const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code);
|
|
150
|
+
const defaultLabel = publishAll ? label : t('version:publishIn', {
|
|
151
|
+
locale: activeLocaleLabel
|
|
152
|
+
});
|
|
153
|
+
const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish;
|
|
154
|
+
const secondaryLabel = publishAll ? t('version:publishIn', {
|
|
155
|
+
locale: activeLocaleLabel
|
|
156
|
+
}) : t('version:publishAllLocales');
|
|
157
|
+
if (!hasPublishPermission) {
|
|
158
|
+
return null;
|
|
367
159
|
}
|
|
368
|
-
return
|
|
160
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
161
|
+
children: [/*#__PURE__*/_jsx(FormSubmit, {
|
|
162
|
+
buttonId: "action-save",
|
|
163
|
+
disabled: !canPublish,
|
|
164
|
+
enableSubMenu: canSchedulePublish,
|
|
165
|
+
onClick: defaultPublish,
|
|
166
|
+
size: "medium",
|
|
167
|
+
SubMenuPopupContent: localization || canSchedulePublish ? ({
|
|
168
|
+
close
|
|
169
|
+
}) => {
|
|
170
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
171
|
+
children: [canSchedulePublish && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
172
|
+
children: /*#__PURE__*/_jsx(PopupList.Button, {
|
|
173
|
+
id: "schedule-publish",
|
|
174
|
+
onClick: () => [toggleModal(drawerSlug), close()],
|
|
175
|
+
children: t('version:schedulePublish')
|
|
176
|
+
})
|
|
177
|
+
}, "schedule-publish"), localization && canPublish && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
178
|
+
children: /*#__PURE__*/_jsx(PopupList.Button, {
|
|
179
|
+
id: "publish-locale",
|
|
180
|
+
onClick: secondaryPublish,
|
|
181
|
+
children: secondaryLabel
|
|
182
|
+
})
|
|
183
|
+
})]
|
|
184
|
+
});
|
|
185
|
+
} : undefined,
|
|
186
|
+
type: "button",
|
|
187
|
+
children: localization ? defaultLabel : label
|
|
188
|
+
}), canSchedulePublish && isModalOpen(drawerSlug) && /*#__PURE__*/_jsx(ScheduleDrawer, {
|
|
189
|
+
defaultType: !hasNewerVersions ? 'unpublish' : 'publish',
|
|
190
|
+
schedulePublishConfig: typeof schedulePublish === 'object' && schedulePublish,
|
|
191
|
+
slug: drawerSlug
|
|
192
|
+
})]
|
|
193
|
+
});
|
|
369
194
|
}
|
|
370
195
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","t0","$","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","t1","serverURL","api","t","t2","t3","bb0","t4","undefined","entityConfig","hasNewerVersions","canPublish","scheduledPublishEnabled","versions","drafts","schedulePublish","canSchedulePublish","Boolean","operation","disabled","search","action","method","overrides","_status","skipValidation","saveDraft","t5","Symbol","for","t6","cmdCtrlKey","keyCodes","t7","e","preventDefault","stopPropagation","autosave","t8","publish","t9","locale","params","stringify","publishSpecificLocale","action_0","publishAll","defaultLocalePublishOption","t10","locales","find","locale_0","activeLocale","activeLocaleLabel","t11","defaultPublish","t12","defaultLabel","t13","secondaryPublish","t14","t15","bb1","secondaryLabel","_jsxs","Fragment","children","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","t16","close","ButtonGroup","Button","type","defaultType","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n !modified,\n )\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n const publishAll =\n !localization || (localization && localization.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization && canPublish && (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-locale\" onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","schedulePublish","versions","drafts","canPublish","scheduledPublishEnabled","Boolean","canSchedulePublish","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","autosave","publish","publishSpecificLocale","locale","params","stringify","publishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","defaultPublish","defaultLabel","secondaryPublish","secondaryLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const schedulePublish =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = Boolean(schedulePublish)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n !modified,\n )\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n const publishAll =\n !localization || (localization && localization.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization && canPublish && (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-locale\" onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={typeof schedulePublish === 'object' && schedulePublish}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|