@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.
Files changed (115) hide show
  1. package/dist/elements/AddNewRelation/index.js +16 -18
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/GenerateConfirmation/index.js +66 -30
  4. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  5. package/dist/elements/Localizer/index.js +4 -4
  6. package/dist/elements/Localizer/index.js.map +1 -1
  7. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
  8. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  9. package/dist/elements/PublishButton/ScheduleDrawer/index.js +5 -3
  10. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  11. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  12. package/dist/elements/PublishButton/index.js +127 -302
  13. package/dist/elements/PublishButton/index.js.map +1 -1
  14. package/dist/elements/Status/index.js +92 -168
  15. package/dist/elements/Status/index.js.map +1 -1
  16. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +4 -4
  17. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  18. package/dist/elements/Table/OrderableTable.js +0 -1
  19. package/dist/elements/Table/OrderableTable.js.map +1 -1
  20. package/dist/elements/Table/index.d.ts.map +1 -1
  21. package/dist/elements/Table/index.js +1 -1
  22. package/dist/elements/Table/index.js.map +1 -1
  23. package/dist/elements/WhereBuilder/Condition/Date/index.d.ts +1 -1
  24. package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
  25. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  26. package/dist/elements/WhereBuilder/Condition/Date/types.d.ts +1 -1
  27. package/dist/elements/WhereBuilder/Condition/Date/types.d.ts.map +1 -1
  28. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  29. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts +2 -2
  30. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts.map +1 -1
  31. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  32. package/dist/elements/WhereBuilder/Condition/Number/index.d.ts +1 -1
  33. package/dist/elements/WhereBuilder/Condition/Number/index.d.ts.map +1 -1
  34. package/dist/elements/WhereBuilder/Condition/Number/index.js +103 -17
  35. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  36. package/dist/elements/WhereBuilder/Condition/Number/types.d.ts +2 -2
  37. package/dist/elements/WhereBuilder/Condition/Number/types.d.ts.map +1 -1
  38. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  39. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts +1 -1
  40. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  41. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  42. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts +1 -1
  43. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
  44. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  45. package/dist/elements/WhereBuilder/Condition/Select/index.d.ts +1 -1
  46. package/dist/elements/WhereBuilder/Condition/Select/index.d.ts.map +1 -1
  47. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  48. package/dist/elements/WhereBuilder/Condition/Select/types.d.ts +1 -1
  49. package/dist/elements/WhereBuilder/Condition/Select/types.d.ts.map +1 -1
  50. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  51. package/dist/elements/WhereBuilder/Condition/Text/index.d.ts +1 -1
  52. package/dist/elements/WhereBuilder/Condition/Text/index.d.ts.map +1 -1
  53. package/dist/elements/WhereBuilder/Condition/Text/index.js +102 -17
  54. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  55. package/dist/elements/WhereBuilder/Condition/Text/types.d.ts +2 -2
  56. package/dist/elements/WhereBuilder/Condition/Text/types.d.ts.map +1 -1
  57. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  58. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -2
  59. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  60. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  61. package/dist/elements/WhereBuilder/index.js +5 -5
  62. package/dist/elements/WhereBuilder/index.js.map +1 -1
  63. package/dist/elements/WhereBuilder/types.d.ts +3 -2
  64. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  65. package/dist/elements/WhereBuilder/types.js.map +1 -1
  66. package/dist/exports/client/{CodeEditor-J4IKAVAK.js → CodeEditor-7N7BMHRP.js} +2 -2
  67. package/dist/exports/client/{DatePicker-DMHV2M2L.js → DatePicker-4DPXLCID.js} +2 -2
  68. package/dist/exports/client/{chunk-3AA2TJQ5.js → chunk-OA4JPMVI.js} +1 -1
  69. package/dist/exports/client/{chunk-3AA2TJQ5.js.map → chunk-OA4JPMVI.js.map} +1 -1
  70. package/dist/exports/client/{chunk-PKQOCWZD.js → chunk-QPA2ZA5J.js} +1 -1
  71. package/dist/exports/client/{chunk-PKQOCWZD.js.map → chunk-QPA2ZA5J.js.map} +1 -1
  72. package/dist/exports/client/index.d.ts +3 -0
  73. package/dist/exports/client/index.d.ts.map +1 -1
  74. package/dist/exports/client/index.js +23 -23
  75. package/dist/exports/client/index.js.map +4 -4
  76. package/dist/fields/Tabs/index.js +2 -2
  77. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  78. package/dist/forms/Form/fieldReducer.js +16 -0
  79. package/dist/forms/Form/fieldReducer.js.map +1 -1
  80. package/dist/forms/Form/index.d.ts.map +1 -1
  81. package/dist/forms/Form/index.js +37 -54
  82. package/dist/forms/Form/index.js.map +1 -1
  83. package/dist/forms/Form/mergeServerFormState.d.ts +8 -9
  84. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  85. package/dist/forms/Form/mergeServerFormState.js +50 -101
  86. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  87. package/dist/forms/Form/types.d.ts +7 -1
  88. package/dist/forms/Form/types.d.ts.map +1 -1
  89. package/dist/forms/Form/types.js.map +1 -1
  90. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  91. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +16 -5
  92. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  93. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  94. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  95. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  96. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  97. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  98. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  99. package/dist/styles.css +1 -1
  100. package/dist/utilities/renderTable.d.ts.map +1 -1
  101. package/dist/utilities/renderTable.js +1 -5
  102. package/dist/utilities/renderTable.js.map +1 -1
  103. package/dist/views/Edit/Auth/index.js +2 -2
  104. package/dist/views/Edit/Auth/index.js.map +1 -1
  105. package/package.json +9 -9
  106. package/dist/forms/Form/mergeErrorPaths.d.ts +0 -5
  107. package/dist/forms/Form/mergeErrorPaths.d.ts.map +0 -1
  108. package/dist/forms/Form/mergeErrorPaths.js +0 -30
  109. package/dist/forms/Form/mergeErrorPaths.js.map +0 -1
  110. package/dist/utilities/arraysHaveSameStrings.d.ts +0 -2
  111. package/dist/utilities/arraysHaveSameStrings.d.ts.map +0 -1
  112. package/dist/utilities/arraysHaveSameStrings.js +0 -17
  113. package/dist/utilities/arraysHaveSameStrings.js.map +0 -1
  114. /package/dist/exports/client/{CodeEditor-J4IKAVAK.js.map → CodeEditor-7N7BMHRP.js.map} +0 -0
  115. /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(t0) {
20
- const $ = _c(74);
21
- const {
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: t1,
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
- let t2;
66
- if ($[0] !== labelProp || $[1] !== t) {
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
- let t4;
79
- if ($[3] !== collectionSlug || $[4] !== getEntityConfig) {
80
- t4 = getEntityConfig({
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
- let t4;
94
- if ($[6] !== getEntityConfig || $[7] !== globalSlug) {
95
- t4 = getEntityConfig({
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
- t3 = undefined;
108
- }
109
- const entityConfig = t3;
73
+ }, [collectionSlug, globalSlug, getEntityConfig]);
110
74
  const hasNewerVersions = unpublishedVersionCount > 0;
111
- const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== "uploading";
112
- const scheduledPublishEnabled = typeof entityConfig?.versions?.drafts === "object" && entityConfig?.versions?.drafts.schedulePublish;
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 === "update" && !modified;
116
- let t4;
117
- if ($[9] !== api || $[10] !== collectionSlug || $[11] !== disabled || $[12] !== globalSlug || $[13] !== id || $[14] !== localeCode || $[15] !== serverURL || $[16] !== submit) {
118
- t4 = async () => {
119
- if (disabled) {
120
- return;
121
- }
122
- const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`;
123
- let action;
124
- let method = "POST";
125
- if (collectionSlug) {
126
- action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ""}${search}`;
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
- const params = qs.stringify({
223
- publishSpecificLocale: locale
224
- });
225
- const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${"/" + id}` : ""}`}${params ? "?" + params : ""}`;
226
- submit({
227
- action: action_0,
228
- overrides: {
229
- _status: "published"
230
- }
231
- });
232
- setHasPublishedDoc(true);
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
- $[47] = activeLocaleLabel;
277
- $[48] = label;
278
- $[49] = publishAll;
279
- $[50] = t;
280
- $[51] = t12;
281
- } else {
282
- t12 = $[51];
283
- }
284
- const defaultLabel = t12;
285
- let t13;
286
- if ($[52] !== activeLocale || $[53] !== publish || $[54] !== publishAll || $[55] !== publishSpecificLocale) {
287
- t13 = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish;
288
- $[52] = activeLocale;
289
- $[53] = publish;
290
- $[54] = publishAll;
291
- $[55] = publishSpecificLocale;
292
- $[56] = t13;
293
- } else {
294
- t13 = $[56];
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
- t14 = _jsxs(React.Fragment, {
310
- children: [_jsx(FormSubmit, {
311
- buttonId: "action-save",
312
- disabled: !canPublish,
313
- enableSubMenu: canSchedulePublish,
314
- onClick: defaultPublish,
315
- size: "medium",
316
- SubMenuPopupContent: localization || canSchedulePublish ? t16 => {
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
- $[57] = activeLocaleLabel;
345
- $[58] = canPublish;
346
- $[59] = canSchedulePublish;
347
- $[60] = defaultLabel;
348
- $[61] = defaultPublish;
349
- $[62] = drawerSlug;
350
- $[63] = hasNewerVersions;
351
- $[64] = hasPublishPermission;
352
- $[65] = isModalOpen;
353
- $[66] = label;
354
- $[67] = localization;
355
- $[68] = publishAll;
356
- $[69] = secondaryPublish;
357
- $[70] = t;
358
- $[71] = toggleModal;
359
- $[72] = t14;
360
- $[73] = t15;
361
- } else {
362
- t14 = $[72];
363
- t15 = $[73];
364
- }
365
- if (t15 !== Symbol.for("react.early_return_sentinel")) {
366
- return t15;
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 t14;
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":[]}