@strapi/content-releases 5.0.0-beta.9 → 5.0.0-rc.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 (98) hide show
  1. package/LICENSE +17 -1
  2. package/dist/_chunks/{App-D_6Y9N2F.mjs → App-6gbM0io-.mjs} +215 -255
  3. package/dist/_chunks/App-6gbM0io-.mjs.map +1 -0
  4. package/dist/_chunks/{App-DUmziQ17.js → App-zzUitryC.js} +216 -257
  5. package/dist/_chunks/App-zzUitryC.js.map +1 -0
  6. package/dist/_chunks/SettingsPage-CTOl3Qtw.js +157 -0
  7. package/dist/_chunks/SettingsPage-CTOl3Qtw.js.map +1 -0
  8. package/dist/_chunks/SettingsPage-CuSH193e.mjs +157 -0
  9. package/dist/_chunks/SettingsPage-CuSH193e.mjs.map +1 -0
  10. package/dist/_chunks/{en-DtFJ5ViE.js → en-1_1re1mc.js} +7 -2
  11. package/dist/_chunks/en-1_1re1mc.js.map +1 -0
  12. package/dist/_chunks/{en-B9Ur3VsE.mjs → en-C3sq5KNP.mjs} +7 -2
  13. package/dist/_chunks/en-C3sq5KNP.mjs.map +1 -0
  14. package/dist/_chunks/{index-C5Hc767q.js → index-BxRiXenX.js} +518 -437
  15. package/dist/_chunks/index-BxRiXenX.js.map +1 -0
  16. package/dist/_chunks/{index-BomF0-yY.mjs → index-CuchqQ4_.mjs} +525 -444
  17. package/dist/_chunks/index-CuchqQ4_.mjs.map +1 -0
  18. package/dist/_chunks/validation-schemas-C7P2rhPu.mjs +29 -0
  19. package/dist/_chunks/validation-schemas-C7P2rhPu.mjs.map +1 -0
  20. package/dist/_chunks/validation-schemas-bib1fBc7.js +47 -0
  21. package/dist/_chunks/validation-schemas-bib1fBc7.js.map +1 -0
  22. package/dist/admin/index.js +1 -1
  23. package/dist/admin/index.mjs +2 -2
  24. package/dist/admin/src/components/ReleaseActionMenu.d.ts +2 -2
  25. package/dist/admin/src/components/{CMReleasesContainer.d.ts → ReleaseActionModal.d.ts} +3 -1
  26. package/dist/admin/src/components/ReleaseModal.d.ts +2 -1
  27. package/dist/admin/src/components/ReleasesPanel.d.ts +3 -0
  28. package/dist/admin/src/pages/SettingsPage.d.ts +1 -0
  29. package/dist/admin/src/services/release.d.ts +37 -32
  30. package/dist/admin/src/utils/time.d.ts +9 -0
  31. package/dist/server/index.js +784 -600
  32. package/dist/server/index.js.map +1 -1
  33. package/dist/server/index.mjs +785 -601
  34. package/dist/server/index.mjs.map +1 -1
  35. package/dist/server/src/bootstrap.d.ts.map +1 -1
  36. package/dist/server/src/constants.d.ts +11 -2
  37. package/dist/server/src/constants.d.ts.map +1 -1
  38. package/dist/server/src/content-types/index.d.ts +3 -5
  39. package/dist/server/src/content-types/index.d.ts.map +1 -1
  40. package/dist/server/src/content-types/release-action/index.d.ts +3 -5
  41. package/dist/server/src/content-types/release-action/index.d.ts.map +1 -1
  42. package/dist/server/src/content-types/release-action/schema.d.ts +3 -5
  43. package/dist/server/src/content-types/release-action/schema.d.ts.map +1 -1
  44. package/dist/server/src/controllers/index.d.ts +6 -3
  45. package/dist/server/src/controllers/index.d.ts.map +1 -1
  46. package/dist/server/src/controllers/release-action.d.ts +0 -1
  47. package/dist/server/src/controllers/release-action.d.ts.map +1 -1
  48. package/dist/server/src/controllers/release.d.ts +7 -2
  49. package/dist/server/src/controllers/release.d.ts.map +1 -1
  50. package/dist/server/src/controllers/settings.d.ts +11 -0
  51. package/dist/server/src/controllers/settings.d.ts.map +1 -0
  52. package/dist/server/src/controllers/validation/release-action.d.ts +7 -1
  53. package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -1
  54. package/dist/server/src/controllers/validation/release.d.ts +1 -0
  55. package/dist/server/src/controllers/validation/release.d.ts.map +1 -1
  56. package/dist/server/src/controllers/validation/settings.d.ts +2 -0
  57. package/dist/server/src/controllers/validation/settings.d.ts.map +1 -0
  58. package/dist/server/src/index.d.ts +66 -51
  59. package/dist/server/src/index.d.ts.map +1 -1
  60. package/dist/server/src/middlewares/documents.d.ts +6 -0
  61. package/dist/server/src/middlewares/documents.d.ts.map +1 -0
  62. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts +9 -0
  63. package/dist/server/src/migrations/database/5.0.0-document-id-in-actions.d.ts.map +1 -0
  64. package/dist/server/src/migrations/index.d.ts.map +1 -1
  65. package/dist/server/src/register.d.ts.map +1 -1
  66. package/dist/server/src/routes/index.d.ts +16 -0
  67. package/dist/server/src/routes/index.d.ts.map +1 -1
  68. package/dist/server/src/routes/release-action.d.ts.map +1 -1
  69. package/dist/server/src/routes/release.d.ts.map +1 -1
  70. package/dist/server/src/routes/settings.d.ts +18 -0
  71. package/dist/server/src/routes/settings.d.ts.map +1 -0
  72. package/dist/server/src/services/index.d.ts +38 -38
  73. package/dist/server/src/services/index.d.ts.map +1 -1
  74. package/dist/server/src/services/release-action.d.ts +36 -0
  75. package/dist/server/src/services/release-action.d.ts.map +1 -0
  76. package/dist/server/src/services/release.d.ts +6 -41
  77. package/dist/server/src/services/release.d.ts.map +1 -1
  78. package/dist/server/src/services/settings.d.ts +13 -0
  79. package/dist/server/src/services/settings.d.ts.map +1 -0
  80. package/dist/server/src/services/validation.d.ts +1 -1
  81. package/dist/server/src/services/validation.d.ts.map +1 -1
  82. package/dist/server/src/utils/index.d.ts +29 -8
  83. package/dist/server/src/utils/index.d.ts.map +1 -1
  84. package/dist/shared/contracts/release-actions.d.ts +6 -5
  85. package/dist/shared/contracts/release-actions.d.ts.map +1 -1
  86. package/dist/shared/contracts/releases.d.ts +6 -5
  87. package/dist/shared/contracts/releases.d.ts.map +1 -1
  88. package/dist/shared/contracts/settings.d.ts +39 -0
  89. package/dist/shared/contracts/settings.d.ts.map +1 -0
  90. package/dist/shared/validation-schemas.d.ts +1 -0
  91. package/dist/shared/validation-schemas.d.ts.map +1 -1
  92. package/package.json +10 -9
  93. package/dist/_chunks/App-DUmziQ17.js.map +0 -1
  94. package/dist/_chunks/App-D_6Y9N2F.mjs.map +0 -1
  95. package/dist/_chunks/en-B9Ur3VsE.mjs.map +0 -1
  96. package/dist/_chunks/en-DtFJ5ViE.js.map +0 -1
  97. package/dist/_chunks/index-BomF0-yY.mjs.map +0 -1
  98. package/dist/_chunks/index-C5Hc767q.js.map +0 -1
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const strapiAdmin = require("@strapi/admin/strapi-admin");
5
5
  const reactRouterDom = require("react-router-dom");
6
- const index = require("./index-C5Hc767q.js");
6
+ const index = require("./index-BxRiXenX.js");
7
7
  const React = require("react");
8
8
  const strapiAdmin$1 = require("@strapi/content-manager/strapi-admin");
9
9
  const designSystem = require("@strapi/design-system");
@@ -15,7 +15,7 @@ const reactIntl = require("react-intl");
15
15
  const styledComponents = require("styled-components");
16
16
  const dateFns = require("date-fns");
17
17
  const formik = require("formik");
18
- const yup = require("yup");
18
+ const validationSchemas = require("./validation-schemas-bib1fBc7.js");
19
19
  const reactRedux = require("react-redux");
20
20
  const ee = require("@strapi/admin/strapi-admin/ee");
21
21
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -39,7 +39,6 @@ function _interopNamespace(e) {
39
39
  }
40
40
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
41
41
  const format__default = /* @__PURE__ */ _interopDefault(format);
42
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
43
42
  const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
44
43
  const RelativeTime$1 = React__namespace.forwardRef(
45
44
  ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {
@@ -70,28 +69,9 @@ const RelativeTime$1 = React__namespace.forwardRef(
70
69
  );
71
70
  }
72
71
  );
73
- const RELEASE_SCHEMA = yup__namespace.object().shape({
74
- name: yup__namespace.string().trim().required(),
75
- scheduledAt: yup__namespace.string().nullable(),
76
- isScheduled: yup__namespace.boolean().optional(),
77
- time: yup__namespace.string().when("isScheduled", {
78
- is: true,
79
- then: yup__namespace.string().trim().required(),
80
- otherwise: yup__namespace.string().nullable()
81
- }),
82
- timezone: yup__namespace.string().when("isScheduled", {
83
- is: true,
84
- then: yup__namespace.string().required().nullable(),
85
- otherwise: yup__namespace.string().nullable()
86
- }),
87
- date: yup__namespace.string().when("isScheduled", {
88
- is: true,
89
- then: yup__namespace.string().required().nullable(),
90
- otherwise: yup__namespace.string().nullable()
91
- })
92
- }).required().noUnknown();
93
72
  const ReleaseModal = ({
94
73
  handleClose,
74
+ open,
95
75
  handleSubmit,
96
76
  initialValues,
97
77
  isLoading = false
@@ -99,7 +79,7 @@ const ReleaseModal = ({
99
79
  const { formatMessage } = reactIntl.useIntl();
100
80
  const { pathname } = reactRouterDom.useLocation();
101
81
  const isCreatingRelease = pathname === `/plugins/${index.pluginId}`;
102
- const { timezoneList, systemTimezone = { value: "UTC+00:00-Africa/Abidjan " } } = getTimezones(
82
+ const { timezoneList, systemTimezone = { value: "UTC+00:00-Africa/Abidjan " } } = index.getTimezones(
103
83
  initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : /* @__PURE__ */ new Date()
104
84
  );
105
85
  const getScheduledTimestamp = (values) => {
@@ -115,8 +95,8 @@ const ReleaseModal = ({
115
95
  );
116
96
  return currentTimezone?.value || systemTimezone.value;
117
97
  };
118
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { onClose: handleClose, labelledBy: "title", children: [
119
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { id: "title", fontWeight: "bold", textColor: "neutral800", children: formatMessage(
98
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
99
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: formatMessage(
120
100
  {
121
101
  id: "content-releases.modal.title",
122
102
  defaultMessage: "{isCreatingRelease, select, true {New release} other {Edit release}}"
@@ -137,11 +117,11 @@ const ReleaseModal = ({
137
117
  ...initialValues,
138
118
  timezone: initialValues.timezone ? getTimezoneWithOffset() : systemTimezone.value
139
119
  },
140
- validationSchema: RELEASE_SCHEMA,
120
+ validationSchema: validationSchemas.RELEASE_SCHEMA,
141
121
  validateOnChange: false,
142
122
  children: ({ values, errors, handleChange, setFieldValue }) => {
143
123
  return /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { children: [
144
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
124
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
145
125
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { name: "name", error: errors.name, required: true, children: [
146
126
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
147
127
  id: "content-releases.modal.form.input.label.release-name",
@@ -154,10 +134,10 @@ const ReleaseModal = ({
154
134
  designSystem.Checkbox,
155
135
  {
156
136
  name: "isScheduled",
157
- value: values.isScheduled,
158
- onChange: (event) => {
159
- setFieldValue("isScheduled", event.target.checked);
160
- if (!event.target.checked) {
137
+ checked: values.isScheduled,
138
+ onCheckedChange: (checked) => {
139
+ setFieldValue("isScheduled", checked);
140
+ if (!checked) {
161
141
  setFieldValue("date", null);
162
142
  setFieldValue("time", "");
163
143
  setFieldValue("timezone", null);
@@ -237,34 +217,21 @@ const ReleaseModal = ({
237
217
  /* @__PURE__ */ jsxRuntime.jsx(TimezoneComponent, { timezoneOptions: timezoneList })
238
218
  ] })
239
219
  ] }) }),
240
- /* @__PURE__ */ jsxRuntime.jsx(
241
- designSystem.ModalFooter,
242
- {
243
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: handleClose, variant: "tertiary", name: "cancel", children: formatMessage({ id: "cancel", defaultMessage: "Cancel" }) }),
244
- endActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { name: "submit", loading: isLoading, type: "submit", children: formatMessage(
245
- {
246
- id: "content-releases.modal.form.button.submit",
247
- defaultMessage: "{isCreatingRelease, select, true {Continue} other {Save}}"
248
- },
249
- { isCreatingRelease }
250
- ) })
251
- }
252
- )
220
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
221
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", name: "cancel", children: formatMessage({ id: "cancel", defaultMessage: "Cancel" }) }) }),
222
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { name: "submit", loading: isLoading, type: "submit", children: formatMessage(
223
+ {
224
+ id: "content-releases.modal.form.button.submit",
225
+ defaultMessage: "{isCreatingRelease, select, true {Continue} other {Save}}"
226
+ },
227
+ { isCreatingRelease }
228
+ ) })
229
+ ] })
253
230
  ] });
254
231
  }
255
232
  }
256
233
  )
257
- ] });
258
- };
259
- const getTimezones = (selectedDate) => {
260
- const timezoneList = Intl.supportedValuesOf("timeZone").map((timezone) => {
261
- const utcOffset = index.getTimezoneOffset(timezone, selectedDate);
262
- return { offset: utcOffset, value: `${utcOffset}&${timezone}` };
263
- });
264
- const systemTimezone = timezoneList.find(
265
- (timezone) => timezone.value.split("&")[1] === Intl.DateTimeFormat().resolvedOptions().timeZone
266
- );
267
- return { timezoneList, systemTimezone };
234
+ ] }) });
268
235
  };
269
236
  const TimezoneComponent = ({ timezoneOptions }) => {
270
237
  const { values, errors, setFieldValue } = formik.useFormikContext();
@@ -272,7 +239,7 @@ const TimezoneComponent = ({ timezoneOptions }) => {
272
239
  const [timezoneList, setTimezoneList] = React__namespace.useState(timezoneOptions);
273
240
  React__namespace.useEffect(() => {
274
241
  if (values.date) {
275
- const { timezoneList: timezoneList2 } = getTimezones(new Date(values.date));
242
+ const { timezoneList: timezoneList2 } = index.getTimezones(new Date(values.date));
276
243
  setTimezoneList(timezoneList2);
277
244
  const updatedTimezone = values.timezone && timezoneList2.find((tz) => tz.value.split("&")[1] === values.timezone.split("&")[1]);
278
245
  if (updatedTimezone) {
@@ -366,7 +333,7 @@ const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
366
333
  }
367
334
  );
368
335
  }
369
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: releases.map(({ id, name, scheduledAt, status }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 3, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(LinkCard, { tag: reactRouterDom.NavLink, to: `${id}`, isExternal: false, children: /* @__PURE__ */ jsxRuntime.jsxs(
336
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: releases.map(({ id, name, scheduledAt, status }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 3, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(LinkCard, { tag: reactRouterDom.NavLink, to: `${id}`, isExternal: false, children: /* @__PURE__ */ jsxRuntime.jsxs(
370
337
  designSystem.Flex,
371
338
  {
372
339
  direction: "column",
@@ -381,7 +348,7 @@ const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
381
348
  gap: 4,
382
349
  children: [
383
350
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "start", gap: 1, children: [
384
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h3", variant: "delta", fontWeight: "bold", children: name }),
351
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", tag: "h3", variant: "delta", fontWeight: "bold", children: name }),
385
352
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral600", children: scheduledAt ? /* @__PURE__ */ jsxRuntime.jsx(RelativeTime, { timestamp: new Date(scheduledAt) }) : formatMessage({
386
353
  id: "content-releases.pages.Releases.not-scheduled",
387
354
  defaultMessage: "Not scheduled"
@@ -409,7 +376,6 @@ const INITIAL_FORM_VALUES = {
409
376
  timezone: null
410
377
  };
411
378
  const ReleasesPage = () => {
412
- const tabRef = React__namespace.useRef(null);
413
379
  const location = reactRouterDom.useLocation();
414
380
  const [releaseModalShown, setReleaseModalShown] = React__namespace.useState(false);
415
381
  const { toggleNotification } = strapiAdmin.useNotification();
@@ -427,7 +393,6 @@ const ReleasesPage = () => {
427
393
  } = strapiAdmin.useRBAC(index.PERMISSIONS);
428
394
  const { isLoading, isSuccess, isError } = response;
429
395
  const activeTab = response?.currentData?.meta?.activeTab || "pending";
430
- const activeTabIndex = ["pending", "done"].indexOf(activeTab);
431
396
  React__namespace.useEffect(() => {
432
397
  if (location?.state?.errors) {
433
398
  toggleNotification({
@@ -444,11 +409,6 @@ const ReleasesPage = () => {
444
409
  navigate("", { replace: true, state: null });
445
410
  }
446
411
  }, [formatMessage, location?.state?.errors, navigate, toggleNotification]);
447
- React__namespace.useEffect(() => {
448
- if (tabRef.current) {
449
- tabRef.current._handlers.setSelectedTabIndex(activeTabIndex);
450
- }
451
- }, [activeTabIndex]);
452
412
  const toggleAddReleaseModal = () => {
453
413
  setReleaseModalShown((prev) => !prev);
454
414
  };
@@ -457,14 +417,14 @@ const ReleasesPage = () => {
457
417
  }
458
418
  const totalPendingReleases = isSuccess && response.currentData?.meta?.pendingReleasesCount || 0;
459
419
  const hasReachedMaximumPendingReleases = totalPendingReleases >= maximumReleases;
460
- const handleTabChange = (index2) => {
420
+ const handleTabChange = (tabValue) => {
461
421
  setQuery({
462
422
  ...query,
463
423
  page: 1,
464
424
  pageSize: response?.currentData?.meta?.pagination?.pageSize || 16,
465
425
  filters: {
466
426
  releasedAt: {
467
- $notNull: index2 === 0 ? false : true
427
+ $notNull: tabValue !== "pending"
468
428
  }
469
429
  }
470
430
  });
@@ -548,21 +508,17 @@ const ReleasesPage = () => {
548
508
  })
549
509
  }
550
510
  ),
551
- /* @__PURE__ */ jsxRuntime.jsxs(
552
- designSystem.TabGroup,
553
- {
554
- label: formatMessage({
555
- id: "content-releases.pages.Releases.tab-group.label",
556
- defaultMessage: "Releases list"
557
- }),
558
- variant: "simple",
559
- initialSelectedTabIndex: activeTabIndex,
560
- onTabChange: handleTabChange,
561
- ref: tabRef,
562
- children: [
563
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingBottom: 8, children: [
564
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs, { children: [
565
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage(
511
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", onValueChange: handleTabChange, value: activeTab, children: [
512
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingBottom: 8, children: [
513
+ /* @__PURE__ */ jsxRuntime.jsxs(
514
+ designSystem.Tabs.List,
515
+ {
516
+ "aria-label": formatMessage({
517
+ id: "content-releases.pages.Releases.tab-group.label",
518
+ defaultMessage: "Releases list"
519
+ }),
520
+ children: [
521
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "pending", children: formatMessage(
566
522
  {
567
523
  id: "content-releases.pages.Releases.tab.pending",
568
524
  defaultMessage: "Pending ({count})"
@@ -571,34 +527,32 @@ const ReleasesPage = () => {
571
527
  count: totalPendingReleases
572
528
  }
573
529
  ) }),
574
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
530
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "done", children: formatMessage({
575
531
  id: "content-releases.pages.Releases.tab.done",
576
532
  defaultMessage: "Done"
577
533
  }) })
578
- ] }),
579
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {})
580
- ] }),
581
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.TabPanels, { children: [
582
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
583
- ReleasesGrid,
584
- {
585
- sectionTitle: "pending",
586
- releases: response?.currentData?.data,
587
- isError
588
- }
589
- ) }),
590
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
591
- ReleasesGrid,
592
- {
593
- sectionTitle: "done",
594
- releases: response?.currentData?.data,
595
- isError
596
- }
597
- ) })
598
- ] })
599
- ]
600
- }
601
- ),
534
+ ]
535
+ }
536
+ ),
537
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {})
538
+ ] }),
539
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "pending", children: /* @__PURE__ */ jsxRuntime.jsx(
540
+ ReleasesGrid,
541
+ {
542
+ sectionTitle: "pending",
543
+ releases: response?.currentData?.data,
544
+ isError
545
+ }
546
+ ) }),
547
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "done", children: /* @__PURE__ */ jsxRuntime.jsx(
548
+ ReleasesGrid,
549
+ {
550
+ sectionTitle: "done",
551
+ releases: response?.currentData?.data,
552
+ isError
553
+ }
554
+ ) })
555
+ ] }),
602
556
  /* @__PURE__ */ jsxRuntime.jsxs(
603
557
  strapiAdmin.Pagination.Root,
604
558
  {
@@ -611,9 +565,10 @@ const ReleasesPage = () => {
611
565
  }
612
566
  )
613
567
  ] }) }),
614
- releaseModalShown && /* @__PURE__ */ jsxRuntime.jsx(
568
+ /* @__PURE__ */ jsxRuntime.jsx(
615
569
  ReleaseModal,
616
570
  {
571
+ open: releaseModalShown,
617
572
  handleClose: toggleAddReleaseModal,
618
573
  handleSubmit: handleAddRelease,
619
574
  isLoading: isSubmittingForm,
@@ -628,7 +583,7 @@ const ReleaseInfoWrapper = styledComponents.styled(designSystem.Flex)`
628
583
  border-bottom-left-radius: ${({ theme }) => theme.borderRadius};
629
584
  border-top: 1px solid ${({ theme }) => theme.colors.neutral150};
630
585
  `;
631
- const StyledMenuItem = styledComponents.styled(designSystem.Menu.Item)`
586
+ const StyledMenuItem = styledComponents.styled(designSystem.MenuItem)`
632
587
  svg path {
633
588
  fill: ${({ theme, disabled }) => disabled && theme.colors.neutral500};
634
589
  }
@@ -657,42 +612,72 @@ const TrashIcon = styledComponents.styled(icons.Trash)`
657
612
  const TypographyMaxWidth = styledComponents.styled(designSystem.Typography)`
658
613
  max-width: 300px;
659
614
  `;
660
- const EntryValidationText = ({ action, schema, entry }) => {
615
+ const EntryValidationText = ({ action, schema, entry, status }) => {
661
616
  const { formatMessage } = reactIntl.useIntl();
662
- const { validate } = strapiAdmin$1.unstable_useDocument(
617
+ const { validate, isLoading } = strapiAdmin$1.unstable_useDocument(
663
618
  {
664
619
  collectionType: schema?.kind ?? "",
665
620
  model: schema?.uid ?? ""
666
621
  },
667
622
  {
668
- skip: !schema
623
+ // useDocument makes a request to get more data about the entry, but we only want to have the validation function so we skip the request
624
+ skip: true
669
625
  }
670
626
  );
671
- const errors = validate(entry) ?? {};
672
- if (Object.keys(errors).length > 0) {
673
- const validationErrorsMessages = Object.entries(errors).map(
674
- ([key, value]) => formatMessage(
675
- // @ts-expect-error – TODO: fix this will better checks
676
- { id: `${value.id}.withField`, defaultMessage: value.defaultMessage },
677
- { field: key }
678
- )
679
- ).join(" ");
680
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
681
- /* @__PURE__ */ jsxRuntime.jsx(icons.CrossCircle, { fill: "danger600" }),
682
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { description: validationErrorsMessages, children: /* @__PURE__ */ jsxRuntime.jsx(TypographyMaxWidth, { textColor: "danger600", variant: "omega", fontWeight: "semiBold", ellipsis: true, children: validationErrorsMessages }) })
683
- ] });
627
+ if (isLoading) {
628
+ return null;
684
629
  }
685
- if (action == "publish") {
686
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
687
- /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
688
- entry.publishedAt ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "success600", fontWeight: "bold", children: formatMessage({
689
- id: "content-releases.pages.ReleaseDetails.entry-validation.already-published",
690
- defaultMessage: "Already published"
691
- }) }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
692
- id: "content-releases.pages.ReleaseDetails.entry-validation.ready-to-publish",
693
- defaultMessage: "Ready to publish"
694
- }) })
695
- ] });
630
+ const errors = validate(entry) ?? {};
631
+ if (action === "publish") {
632
+ if (Object.keys(errors).length > 0) {
633
+ const validationErrorsMessages = Object.entries(errors).map(
634
+ ([key, value]) => formatMessage(
635
+ // @ts-expect-error – TODO: fix this will better checks
636
+ { id: `${value.id}.withField`, defaultMessage: value.defaultMessage },
637
+ { field: key }
638
+ )
639
+ ).join(" ");
640
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
641
+ /* @__PURE__ */ jsxRuntime.jsx(icons.CrossCircle, { fill: "danger600" }),
642
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { description: validationErrorsMessages, children: /* @__PURE__ */ jsxRuntime.jsx(
643
+ TypographyMaxWidth,
644
+ {
645
+ textColor: "danger600",
646
+ variant: "omega",
647
+ fontWeight: "semiBold",
648
+ ellipsis: true,
649
+ children: validationErrorsMessages
650
+ }
651
+ ) })
652
+ ] });
653
+ }
654
+ if (status === "draft") {
655
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
656
+ /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
657
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
658
+ id: "content-releases.pages.ReleaseDetails.entry-validation.ready-to-publish",
659
+ defaultMessage: "Ready to publish"
660
+ }) })
661
+ ] });
662
+ }
663
+ if (status === "modified") {
664
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
665
+ /* @__PURE__ */ jsxRuntime.jsx(icons.ArrowsCounterClockwise, { fill: "alternative600" }),
666
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
667
+ id: "content-releases.pages.ReleaseDetails.entry-validation.modified",
668
+ defaultMessage: "Ready to publish changes"
669
+ }) })
670
+ ] });
671
+ }
672
+ if (status === "published") {
673
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
674
+ /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
675
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
676
+ id: "content-releases.pages.ReleaseDetails.entry-validation.already-published",
677
+ defaultMessage: "Already published"
678
+ }) })
679
+ ] });
680
+ }
696
681
  }
697
682
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
698
683
  /* @__PURE__ */ jsxRuntime.jsx(icons.CheckCircle, { fill: "success600" }),
@@ -838,83 +823,71 @@ const ReleaseDetailsLayout = ({
838
823
  ] }),
839
824
  navigationAction: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.BackButton, {}),
840
825
  primaryAction: !release.releasedAt && /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
841
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
842
- /* @__PURE__ */ jsxRuntime.jsx(
843
- designSystem.Menu.Trigger,
844
- {
845
- paddingLeft: 2,
846
- paddingRight: 2,
847
- "aria-label": formatMessage({
848
- id: "content-releases.header.actions.open-release-actions",
849
- defaultMessage: "Release edit and delete menu"
850
- }),
851
- variant: "tertiary",
852
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.More, {})
853
- }
854
- ),
855
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { top: 1, popoverPlacement: "bottom-end", maxHeight: void 0, children: [
856
- /* @__PURE__ */ jsxRuntime.jsxs(
857
- designSystem.Flex,
858
- {
859
- alignItems: "center",
860
- justifyContent: "center",
861
- direction: "column",
862
- padding: 1,
863
- width: "100%",
864
- children: [
865
- /* @__PURE__ */ jsxRuntime.jsx(StyledMenuItem, { disabled: !canUpdate, onSelect: toggleEditReleaseModal, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, hasRadius: true, width: "100%", children: [
866
- /* @__PURE__ */ jsxRuntime.jsx(PencilIcon, {}),
867
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, children: formatMessage({
868
- id: "content-releases.header.actions.edit",
869
- defaultMessage: "Edit"
826
+ /* @__PURE__ */ jsxRuntime.jsxs(
827
+ designSystem.SimpleMenu,
828
+ {
829
+ label: /* @__PURE__ */ jsxRuntime.jsx(icons.More, {}),
830
+ variant: "tertiary",
831
+ endIcon: null,
832
+ paddingLeft: 2,
833
+ paddingRight: 2,
834
+ "aria-label": formatMessage({
835
+ id: "content-releases.header.actions.open-release-actions",
836
+ defaultMessage: "Release edit and delete menu"
837
+ }),
838
+ popoverPlacement: "bottom-end",
839
+ children: [
840
+ /* @__PURE__ */ jsxRuntime.jsx(StyledMenuItem, { disabled: !canUpdate, onSelect: toggleEditReleaseModal, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, hasRadius: true, width: "100%", children: [
841
+ /* @__PURE__ */ jsxRuntime.jsx(PencilIcon, {}),
842
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, children: formatMessage({
843
+ id: "content-releases.header.actions.edit",
844
+ defaultMessage: "Edit"
845
+ }) })
846
+ ] }) }),
847
+ /* @__PURE__ */ jsxRuntime.jsx(
848
+ StyledMenuItem,
849
+ {
850
+ disabled: !canDelete,
851
+ onSelect: toggleWarningSubmit,
852
+ $variant: "danger",
853
+ children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, hasRadius: true, width: "100%", children: [
854
+ /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, {}),
855
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, textColor: "danger600", children: formatMessage({
856
+ id: "content-releases.header.actions.delete",
857
+ defaultMessage: "Delete"
870
858
  }) })
871
- ] }) }),
872
- /* @__PURE__ */ jsxRuntime.jsx(
873
- StyledMenuItem,
874
- {
875
- disabled: !canDelete,
876
- onSelect: toggleWarningSubmit,
877
- $variant: "danger",
878
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "center", gap: 2, hasRadius: true, width: "100%", children: [
879
- /* @__PURE__ */ jsxRuntime.jsx(TrashIcon, {}),
880
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, textColor: "danger600", children: formatMessage({
881
- id: "content-releases.header.actions.delete",
882
- defaultMessage: "Delete"
883
- }) })
884
- ] })
885
- }
886
- )
887
- ]
888
- }
889
- ),
890
- /* @__PURE__ */ jsxRuntime.jsxs(
891
- ReleaseInfoWrapper,
892
- {
893
- direction: "column",
894
- justifyContent: "center",
895
- alignItems: "flex-start",
896
- gap: 1,
897
- padding: 5,
898
- children: [
899
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", children: formatMessage({
900
- id: "content-releases.header.actions.created",
901
- defaultMessage: "Created"
902
- }) }),
903
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", color: "neutral300", children: [
904
- /* @__PURE__ */ jsxRuntime.jsx(RelativeTime$1, { timestamp: new Date(release.createdAt) }),
905
- formatMessage(
906
- {
907
- id: "content-releases.header.actions.created.description",
908
- defaultMessage: "{hasCreatedByUser, select, true { by {createdBy}} other { by deleted user}}"
909
- },
910
- { createdBy: getCreatedByUser(), hasCreatedByUser }
911
- )
912
859
  ] })
913
- ]
914
- }
915
- )
916
- ] })
917
- ] }),
860
+ }
861
+ ),
862
+ /* @__PURE__ */ jsxRuntime.jsxs(
863
+ ReleaseInfoWrapper,
864
+ {
865
+ direction: "column",
866
+ justifyContent: "center",
867
+ alignItems: "flex-start",
868
+ gap: 1,
869
+ padding: 5,
870
+ children: [
871
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", children: formatMessage({
872
+ id: "content-releases.header.actions.created",
873
+ defaultMessage: "Created"
874
+ }) }),
875
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", color: "neutral300", children: [
876
+ /* @__PURE__ */ jsxRuntime.jsx(RelativeTime$1, { timestamp: new Date(release.createdAt) }),
877
+ formatMessage(
878
+ {
879
+ id: "content-releases.header.actions.created.description",
880
+ defaultMessage: "{hasCreatedByUser, select, true { by {createdBy}} other { by deleted user}}"
881
+ },
882
+ { createdBy: getCreatedByUser(), hasCreatedByUser }
883
+ )
884
+ ] })
885
+ ]
886
+ }
887
+ )
888
+ ]
889
+ }
890
+ ),
918
891
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { size: "S", variant: "tertiary", onClick: handleRefresh, children: formatMessage({
919
892
  id: "content-releases.header.actions.refresh",
920
893
  defaultMessage: "Refresh"
@@ -973,19 +946,18 @@ const ReleaseDetailsBody = ({ releaseId }) => {
973
946
  allowedActions: { canUpdate }
974
947
  } = strapiAdmin.useRBAC(index.PERMISSIONS);
975
948
  const runHookWaterfall = strapiAdmin.useStrapiApp("ReleaseDetailsPage", (state) => state.runHookWaterfall);
976
- const { hasI18nEnabled } = runHookWaterfall(
977
- "ContentReleases/pages/ReleaseDetails/add-locale-in-releases",
978
- {
979
- displayedHeaders: {
980
- label: formatMessage({
981
- id: "content-releases.page.ReleaseDetails.table.header.label.locale",
982
- defaultMessage: "locale"
983
- }),
984
- name: "locale"
985
- },
986
- hasI18nEnabled: false
987
- }
988
- );
949
+ const { displayedHeaders, hasI18nEnabled } = runHookWaterfall("ContentReleases/pages/ReleaseDetails/add-locale-in-releases", {
950
+ displayedHeaders: [
951
+ {
952
+ label: {
953
+ id: "content-releases.page.ReleaseDetails.table.header.label.name",
954
+ defaultMessage: "name"
955
+ },
956
+ name: "name"
957
+ }
958
+ ],
959
+ hasI18nEnabled: false
960
+ });
989
961
  const release = releaseData?.data;
990
962
  const selectedGroupBy = query?.groupBy || "contentType";
991
963
  const {
@@ -1091,34 +1063,27 @@ const ReleaseDetailsBody = ({ releaseId }) => {
1091
1063
  defaultMessage: "Group by"
1092
1064
  });
1093
1065
  const headers = [
1094
- // ...displayedHeaders,
1066
+ ...displayedHeaders,
1095
1067
  {
1096
- label: formatMessage({
1097
- id: "content-releases.page.ReleaseDetails.table.header.label.name",
1098
- defaultMessage: "name"
1099
- }),
1100
- name: "name"
1101
- },
1102
- {
1103
- label: formatMessage({
1068
+ label: {
1104
1069
  id: "content-releases.page.ReleaseDetails.table.header.label.content-type",
1105
1070
  defaultMessage: "content-type"
1106
- }),
1071
+ },
1107
1072
  name: "content-type"
1108
1073
  },
1109
1074
  {
1110
- label: formatMessage({
1075
+ label: {
1111
1076
  id: "content-releases.page.ReleaseDetails.table.header.label.action",
1112
1077
  defaultMessage: "action"
1113
- }),
1078
+ },
1114
1079
  name: "action"
1115
1080
  },
1116
1081
  ...!release.releasedAt ? [
1117
1082
  {
1118
- label: formatMessage({
1083
+ label: {
1119
1084
  id: "content-releases.page.ReleaseDetails.table.header.label.status",
1120
1085
  defaultMessage: "status"
1121
- }),
1086
+ },
1122
1087
  name: "status"
1123
1088
  }
1124
1089
  ] : []
@@ -1156,10 +1121,10 @@ const ReleaseDetailsBody = ({ releaseId }) => {
1156
1121
  headers,
1157
1122
  isLoading: isLoading || isFetching,
1158
1123
  children: /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Content, { children: [
1159
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Head, { children: headers.map((header) => /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.HeaderCell, { ...header }, header.name)) }),
1124
+ /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Head, { children: headers.map(({ label, name }) => /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.HeaderCell, { label: formatMessage(label), name }, name)) }),
1160
1125
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Loading, {}),
1161
1126
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Body, { children: releaseActions[key].map(
1162
- ({ id, contentType, locale, type, entry }, actionIndex) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
1127
+ ({ id, contentType, locale, type, entry, status }, actionIndex) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
1163
1128
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "25%", maxWidth: "200px", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, children: `${contentType.mainFieldValue || entry.id}` }) }),
1164
1129
  hasI18nEnabled && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: `${locale?.name ? locale.name : "-"}` }) }),
1165
1130
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: contentType.displayName || "" }) }),
@@ -1188,7 +1153,8 @@ const ReleaseDetailsBody = ({ releaseId }) => {
1188
1153
  action: type,
1189
1154
  schema: contentTypes?.[contentType.uid],
1190
1155
  components,
1191
- entry
1156
+ entry,
1157
+ status
1192
1158
  }
1193
1159
  ) }),
1194
1160
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(index.ReleaseActionMenu.Root, { children: [
@@ -1196,7 +1162,7 @@ const ReleaseDetailsBody = ({ releaseId }) => {
1196
1162
  index.ReleaseActionMenu.ReleaseActionEntryLinkItem,
1197
1163
  {
1198
1164
  contentTypeUid: contentType.uid,
1199
- entryId: entry.id,
1165
+ documentId: entry.documentId,
1200
1166
  locale: locale?.code
1201
1167
  }
1202
1168
  ),
@@ -1324,9 +1290,10 @@ const ReleaseDetailsPage = () => {
1324
1290
  toggleWarningSubmit,
1325
1291
  children: [
1326
1292
  /* @__PURE__ */ jsxRuntime.jsx(ReleaseDetailsBody, { releaseId }),
1327
- releaseModalShown && /* @__PURE__ */ jsxRuntime.jsx(
1293
+ /* @__PURE__ */ jsxRuntime.jsx(
1328
1294
  ReleaseModal,
1329
1295
  {
1296
+ open: releaseModalShown,
1330
1297
  handleClose: toggleEditReleaseModal,
1331
1298
  handleSubmit: handleEditRelease,
1332
1299
  isLoading: isLoadingDetails || isSubmittingForm,
@@ -1340,18 +1307,10 @@ const ReleaseDetailsPage = () => {
1340
1307
  }
1341
1308
  }
1342
1309
  ),
1343
- /* @__PURE__ */ jsxRuntime.jsx(
1344
- strapiAdmin.ConfirmDialog,
1345
- {
1346
- isOpen: showWarningSubmit,
1347
- onClose: toggleWarningSubmit,
1348
- onConfirm: handleDeleteRelease,
1349
- children: formatMessage({
1350
- id: "content-releases.dialog.confirmation-message",
1351
- defaultMessage: "Are you sure you want to delete this release?"
1352
- })
1353
- }
1354
- )
1310
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Root, { open: showWarningSubmit, onOpenChange: toggleWarningSubmit, children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleDeleteRelease, children: formatMessage({
1311
+ id: "content-releases.dialog.confirmation-message",
1312
+ defaultMessage: "Are you sure you want to delete this release?"
1313
+ }) }) })
1355
1314
  ]
1356
1315
  }
1357
1316
  );
@@ -1363,4 +1322,4 @@ const App = () => {
1363
1322
  ] }) });
1364
1323
  };
1365
1324
  exports.App = App;
1366
- //# sourceMappingURL=App-DUmziQ17.js.map
1325
+ //# sourceMappingURL=App-zzUitryC.js.map