@strapi/content-releases 0.0.0-next.f698d55751345c4ca87477ef683475c1a68f310a → 0.0.0-next.f86041c89a8c1545c6437a881dc613e98bc52bd7

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 (318) hide show
  1. package/dist/admin/assets/purchase-page-illustration-dark.jpg.js +6 -0
  2. package/dist/admin/assets/purchase-page-illustration-dark.jpg.js.map +1 -0
  3. package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs +4 -0
  4. package/dist/admin/assets/purchase-page-illustration-dark.jpg.mjs.map +1 -0
  5. package/dist/admin/assets/purchase-page-illustration-light.jpg.js +6 -0
  6. package/dist/admin/assets/purchase-page-illustration-light.jpg.js.map +1 -0
  7. package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs +4 -0
  8. package/dist/admin/assets/purchase-page-illustration-light.jpg.mjs.map +1 -0
  9. package/dist/admin/components/EntryValidationPopover.js +310 -0
  10. package/dist/admin/components/EntryValidationPopover.js.map +1 -0
  11. package/dist/admin/components/EntryValidationPopover.mjs +308 -0
  12. package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
  13. package/dist/admin/components/RelativeTime.js +76 -0
  14. package/dist/admin/components/RelativeTime.js.map +1 -0
  15. package/dist/admin/components/RelativeTime.mjs +55 -0
  16. package/dist/admin/components/RelativeTime.mjs.map +1 -0
  17. package/dist/admin/components/ReleaseAction.js +203 -0
  18. package/dist/admin/components/ReleaseAction.js.map +1 -0
  19. package/dist/admin/components/ReleaseAction.mjs +201 -0
  20. package/dist/admin/components/ReleaseAction.mjs.map +1 -0
  21. package/dist/admin/components/ReleaseActionMenu.js +194 -0
  22. package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
  23. package/dist/admin/components/ReleaseActionMenu.mjs +173 -0
  24. package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
  25. package/dist/admin/components/ReleaseActionModal.js +268 -0
  26. package/dist/admin/components/ReleaseActionModal.js.map +1 -0
  27. package/dist/admin/components/ReleaseActionModal.mjs +244 -0
  28. package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
  29. package/dist/admin/components/ReleaseActionOptions.js +104 -0
  30. package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
  31. package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
  32. package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
  33. package/dist/admin/components/ReleaseListCell.js +103 -0
  34. package/dist/admin/components/ReleaseListCell.js.map +1 -0
  35. package/dist/admin/components/ReleaseListCell.mjs +100 -0
  36. package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
  37. package/dist/admin/components/ReleaseModal.js +331 -0
  38. package/dist/admin/components/ReleaseModal.js.map +1 -0
  39. package/dist/admin/components/ReleaseModal.mjs +310 -0
  40. package/dist/admin/components/ReleaseModal.mjs.map +1 -0
  41. package/dist/admin/components/ReleasesPanel.js +138 -0
  42. package/dist/admin/components/ReleasesPanel.js.map +1 -0
  43. package/dist/admin/components/ReleasesPanel.mjs +136 -0
  44. package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
  45. package/dist/admin/components/Widgets.js +122 -0
  46. package/dist/admin/components/Widgets.js.map +1 -0
  47. package/dist/admin/components/Widgets.mjs +120 -0
  48. package/dist/admin/components/Widgets.mjs.map +1 -0
  49. package/dist/admin/constants.js +79 -0
  50. package/dist/admin/constants.js.map +1 -0
  51. package/dist/admin/constants.mjs +76 -0
  52. package/dist/admin/constants.mjs.map +1 -0
  53. package/dist/admin/index.js +148 -4
  54. package/dist/admin/index.js.map +1 -1
  55. package/dist/admin/index.mjs +143 -4
  56. package/dist/admin/index.mjs.map +1 -1
  57. package/dist/admin/modules/hooks.js +8 -0
  58. package/dist/admin/modules/hooks.js.map +1 -0
  59. package/dist/admin/modules/hooks.mjs +6 -0
  60. package/dist/admin/modules/hooks.mjs.map +1 -0
  61. package/dist/admin/pages/App.js +29 -0
  62. package/dist/admin/pages/App.js.map +1 -0
  63. package/dist/admin/pages/App.mjs +27 -0
  64. package/dist/admin/pages/App.mjs.map +1 -0
  65. package/dist/admin/pages/PurchaseContentReleases.js +192 -0
  66. package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
  67. package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
  68. package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
  69. package/dist/admin/pages/ReleaseDetailsPage.js +774 -0
  70. package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
  71. package/dist/admin/pages/ReleaseDetailsPage.mjs +753 -0
  72. package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
  73. package/dist/admin/pages/ReleasesPage.js +405 -0
  74. package/dist/admin/pages/ReleasesPage.js.map +1 -0
  75. package/dist/admin/pages/ReleasesPage.mjs +383 -0
  76. package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
  77. package/dist/admin/pages/ReleasesSettingsPage.js +225 -0
  78. package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
  79. package/dist/admin/pages/ReleasesSettingsPage.mjs +223 -0
  80. package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
  81. package/dist/admin/pluginId.js +6 -0
  82. package/dist/admin/pluginId.js.map +1 -0
  83. package/dist/admin/pluginId.mjs +4 -0
  84. package/dist/admin/pluginId.mjs.map +1 -0
  85. package/dist/admin/services/homepage.js +24 -0
  86. package/dist/admin/services/homepage.js.map +1 -0
  87. package/dist/admin/services/homepage.mjs +22 -0
  88. package/dist/admin/services/homepage.mjs.map +1 -0
  89. package/dist/admin/services/release.js +473 -0
  90. package/dist/admin/services/release.js.map +1 -0
  91. package/dist/admin/services/release.mjs +456 -0
  92. package/dist/admin/services/release.mjs.map +1 -0
  93. package/dist/admin/src/components/ReleaseListCell.d.ts +1 -1
  94. package/dist/admin/src/components/Widgets.d.ts +2 -0
  95. package/dist/admin/src/constants.d.ts +1 -0
  96. package/dist/admin/src/services/homepage.d.ts +9 -0
  97. package/dist/admin/src/services/release.d.ts +28 -28
  98. package/dist/admin/store/hooks.js +8 -0
  99. package/dist/admin/store/hooks.js.map +1 -0
  100. package/dist/admin/store/hooks.mjs +6 -0
  101. package/dist/admin/store/hooks.mjs.map +1 -0
  102. package/dist/admin/translations/en.json.js +111 -0
  103. package/dist/admin/translations/en.json.js.map +1 -0
  104. package/dist/admin/translations/en.json.mjs +109 -0
  105. package/dist/admin/translations/en.json.mjs.map +1 -0
  106. package/dist/admin/translations/uk.json.js +103 -0
  107. package/dist/admin/translations/uk.json.js.map +1 -0
  108. package/dist/admin/translations/uk.json.mjs +101 -0
  109. package/dist/admin/translations/uk.json.mjs.map +1 -0
  110. package/dist/admin/utils/api.js +8 -0
  111. package/dist/admin/utils/api.js.map +1 -0
  112. package/dist/admin/utils/api.mjs +6 -0
  113. package/dist/admin/utils/api.mjs.map +1 -0
  114. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  115. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  116. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  117. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  118. package/dist/admin/utils/time.js +42 -0
  119. package/dist/admin/utils/time.js.map +1 -0
  120. package/dist/admin/utils/time.mjs +39 -0
  121. package/dist/admin/utils/time.mjs.map +1 -0
  122. package/dist/admin/validation/schemas.js +65 -0
  123. package/dist/admin/validation/schemas.js.map +1 -0
  124. package/dist/admin/validation/schemas.mjs +43 -0
  125. package/dist/admin/validation/schemas.mjs.map +1 -0
  126. package/dist/server/bootstrap.js +68 -0
  127. package/dist/server/bootstrap.js.map +1 -0
  128. package/dist/server/bootstrap.mjs +66 -0
  129. package/dist/server/bootstrap.mjs.map +1 -0
  130. package/dist/server/constants.js +74 -0
  131. package/dist/server/constants.js.map +1 -0
  132. package/dist/server/constants.mjs +69 -0
  133. package/dist/server/constants.mjs.map +1 -0
  134. package/dist/server/content-types/index.js +12 -0
  135. package/dist/server/content-types/index.js.map +1 -0
  136. package/dist/server/content-types/index.mjs +10 -0
  137. package/dist/server/content-types/index.mjs.map +1 -0
  138. package/dist/server/content-types/release/index.js +10 -0
  139. package/dist/server/content-types/release/index.js.map +1 -0
  140. package/dist/server/content-types/release/index.mjs +8 -0
  141. package/dist/server/content-types/release/index.mjs.map +1 -0
  142. package/dist/server/content-types/release/schema.js +58 -0
  143. package/dist/server/content-types/release/schema.js.map +1 -0
  144. package/dist/server/content-types/release/schema.mjs +56 -0
  145. package/dist/server/content-types/release/schema.mjs.map +1 -0
  146. package/dist/server/content-types/release-action/index.js +10 -0
  147. package/dist/server/content-types/release-action/index.js.map +1 -0
  148. package/dist/server/content-types/release-action/index.mjs +8 -0
  149. package/dist/server/content-types/release-action/index.mjs.map +1 -0
  150. package/dist/server/content-types/release-action/schema.js +55 -0
  151. package/dist/server/content-types/release-action/schema.js.map +1 -0
  152. package/dist/server/content-types/release-action/schema.mjs +53 -0
  153. package/dist/server/content-types/release-action/schema.mjs.map +1 -0
  154. package/dist/server/controllers/homepage.js +15 -0
  155. package/dist/server/controllers/homepage.js.map +1 -0
  156. package/dist/server/controllers/homepage.mjs +13 -0
  157. package/dist/server/controllers/homepage.mjs.map +1 -0
  158. package/dist/server/controllers/index.js +16 -0
  159. package/dist/server/controllers/index.js.map +1 -0
  160. package/dist/server/controllers/index.mjs +14 -0
  161. package/dist/server/controllers/index.mjs.map +1 -0
  162. package/dist/server/controllers/release-action.js +150 -0
  163. package/dist/server/controllers/release-action.js.map +1 -0
  164. package/dist/server/controllers/release-action.mjs +148 -0
  165. package/dist/server/controllers/release-action.mjs.map +1 -0
  166. package/dist/server/controllers/release.js +302 -0
  167. package/dist/server/controllers/release.js.map +1 -0
  168. package/dist/server/controllers/release.mjs +300 -0
  169. package/dist/server/controllers/release.mjs.map +1 -0
  170. package/dist/server/controllers/settings.js +37 -0
  171. package/dist/server/controllers/settings.js.map +1 -0
  172. package/dist/server/controllers/settings.mjs +35 -0
  173. package/dist/server/controllers/settings.mjs.map +1 -0
  174. package/dist/server/controllers/validation/release-action.js +34 -0
  175. package/dist/server/controllers/validation/release-action.js.map +1 -0
  176. package/dist/server/controllers/validation/release-action.mjs +30 -0
  177. package/dist/server/controllers/validation/release-action.mjs.map +1 -0
  178. package/dist/server/controllers/validation/release.js +26 -0
  179. package/dist/server/controllers/validation/release.js.map +1 -0
  180. package/dist/server/controllers/validation/release.mjs +22 -0
  181. package/dist/server/controllers/validation/release.mjs.map +1 -0
  182. package/dist/server/controllers/validation/settings.js +32 -0
  183. package/dist/server/controllers/validation/settings.js.map +1 -0
  184. package/dist/server/controllers/validation/settings.mjs +10 -0
  185. package/dist/server/controllers/validation/settings.mjs.map +1 -0
  186. package/dist/server/destroy.js +15 -0
  187. package/dist/server/destroy.js.map +1 -0
  188. package/dist/server/destroy.mjs +13 -0
  189. package/dist/server/destroy.mjs.map +1 -0
  190. package/dist/server/index.js +25 -2049
  191. package/dist/server/index.js.map +1 -1
  192. package/dist/server/index.mjs +24 -2030
  193. package/dist/server/index.mjs.map +1 -1
  194. package/dist/server/middlewares/documents.js +104 -0
  195. package/dist/server/middlewares/documents.js.map +1 -0
  196. package/dist/server/middlewares/documents.mjs +101 -0
  197. package/dist/server/middlewares/documents.mjs.map +1 -0
  198. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
  199. package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
  200. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
  201. package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
  202. package/dist/server/migrations/index.js +205 -0
  203. package/dist/server/migrations/index.js.map +1 -0
  204. package/dist/server/migrations/index.mjs +198 -0
  205. package/dist/server/migrations/index.mjs.map +1 -0
  206. package/dist/server/register.js +23 -0
  207. package/dist/server/register.js.map +1 -0
  208. package/dist/server/register.mjs +21 -0
  209. package/dist/server/register.mjs.map +1 -0
  210. package/dist/server/routes/homepage.js +25 -0
  211. package/dist/server/routes/homepage.js.map +1 -0
  212. package/dist/server/routes/homepage.mjs +23 -0
  213. package/dist/server/routes/homepage.mjs.map +1 -0
  214. package/dist/server/routes/index.js +16 -0
  215. package/dist/server/routes/index.js.map +1 -0
  216. package/dist/server/routes/index.mjs +14 -0
  217. package/dist/server/routes/index.mjs.map +1 -0
  218. package/dist/server/routes/release-action.js +100 -0
  219. package/dist/server/routes/release-action.js.map +1 -0
  220. package/dist/server/routes/release-action.mjs +98 -0
  221. package/dist/server/routes/release-action.mjs.map +1 -0
  222. package/dist/server/routes/release.js +154 -0
  223. package/dist/server/routes/release.js.map +1 -0
  224. package/dist/server/routes/release.mjs +152 -0
  225. package/dist/server/routes/release.mjs.map +1 -0
  226. package/dist/server/routes/settings.js +46 -0
  227. package/dist/server/routes/settings.js.map +1 -0
  228. package/dist/server/routes/settings.mjs +44 -0
  229. package/dist/server/routes/settings.mjs.map +1 -0
  230. package/dist/server/services/homepage.js +26 -0
  231. package/dist/server/services/homepage.js.map +1 -0
  232. package/dist/server/services/homepage.mjs +24 -0
  233. package/dist/server/services/homepage.mjs.map +1 -0
  234. package/dist/server/services/index.js +20 -0
  235. package/dist/server/services/index.js.map +1 -0
  236. package/dist/server/services/index.mjs +18 -0
  237. package/dist/server/services/index.mjs.map +1 -0
  238. package/dist/server/services/release-action.js +324 -0
  239. package/dist/server/services/release-action.js.map +1 -0
  240. package/dist/server/services/release-action.mjs +322 -0
  241. package/dist/server/services/release-action.mjs.map +1 -0
  242. package/dist/server/services/release.js +324 -0
  243. package/dist/server/services/release.js.map +1 -0
  244. package/dist/server/services/release.mjs +322 -0
  245. package/dist/server/services/release.mjs.map +1 -0
  246. package/dist/server/services/scheduling.js +74 -0
  247. package/dist/server/services/scheduling.js.map +1 -0
  248. package/dist/server/services/scheduling.mjs +72 -0
  249. package/dist/server/services/scheduling.mjs.map +1 -0
  250. package/dist/server/services/settings.js +34 -0
  251. package/dist/server/services/settings.js.map +1 -0
  252. package/dist/server/services/settings.mjs +32 -0
  253. package/dist/server/services/settings.mjs.map +1 -0
  254. package/dist/server/services/validation.js +91 -0
  255. package/dist/server/services/validation.js.map +1 -0
  256. package/dist/server/services/validation.mjs +86 -0
  257. package/dist/server/services/validation.mjs.map +1 -0
  258. package/dist/server/src/controllers/homepage.d.ts +6 -0
  259. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  260. package/dist/server/src/controllers/index.d.ts +3 -0
  261. package/dist/server/src/controllers/index.d.ts.map +1 -1
  262. package/dist/server/src/destroy.d.ts +1 -1
  263. package/dist/server/src/destroy.d.ts.map +1 -1
  264. package/dist/server/src/index.d.ts +13 -4
  265. package/dist/server/src/index.d.ts.map +1 -1
  266. package/dist/server/src/middlewares/documents.d.ts +1 -1
  267. package/dist/server/src/middlewares/documents.d.ts.map +1 -1
  268. package/dist/server/src/routes/homepage.d.ts +4 -0
  269. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  270. package/dist/server/src/routes/index.d.ts +1 -0
  271. package/dist/server/src/routes/index.d.ts.map +1 -1
  272. package/dist/server/src/services/homepage.d.ts +9 -0
  273. package/dist/server/src/services/homepage.d.ts.map +1 -0
  274. package/dist/server/src/services/index.d.ts +9 -4
  275. package/dist/server/src/services/index.d.ts.map +1 -1
  276. package/dist/server/src/services/release-action.d.ts.map +1 -1
  277. package/dist/server/src/services/scheduling.d.ts +5 -6
  278. package/dist/server/src/services/scheduling.d.ts.map +1 -1
  279. package/dist/server/src/services/validation.d.ts +1 -1
  280. package/dist/server/src/services/validation.d.ts.map +1 -1
  281. package/dist/server/src/utils/index.d.ts.map +1 -1
  282. package/dist/server/utils/index.js +94 -0
  283. package/dist/server/utils/index.js.map +1 -0
  284. package/dist/server/utils/index.mjs +88 -0
  285. package/dist/server/utils/index.mjs.map +1 -0
  286. package/dist/shared/contracts/homepage.d.ts +11 -0
  287. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  288. package/dist/shared/contracts/release-actions.d.ts +0 -1
  289. package/dist/shared/contracts/releases.d.ts +0 -1
  290. package/dist/shared/contracts/settings.d.ts +1 -2
  291. package/dist/shared/contracts/settings.d.ts.map +1 -1
  292. package/dist/shared/types.d.ts +1 -1
  293. package/dist/shared/types.d.ts.map +1 -1
  294. package/package.json +22 -21
  295. package/dist/_chunks/App-Cx72FM22.mjs +0 -1558
  296. package/dist/_chunks/App-Cx72FM22.mjs.map +0 -1
  297. package/dist/_chunks/App-DyjVixKE.js +0 -1578
  298. package/dist/_chunks/App-DyjVixKE.js.map +0 -1
  299. package/dist/_chunks/PurchaseContentReleases-BJlgTIuR.js +0 -52
  300. package/dist/_chunks/PurchaseContentReleases-BJlgTIuR.js.map +0 -1
  301. package/dist/_chunks/PurchaseContentReleases-CIiBmOhI.mjs +0 -52
  302. package/dist/_chunks/PurchaseContentReleases-CIiBmOhI.mjs.map +0 -1
  303. package/dist/_chunks/ReleasesSettingsPage-9si_53C5.mjs +0 -178
  304. package/dist/_chunks/ReleasesSettingsPage-9si_53C5.mjs.map +0 -1
  305. package/dist/_chunks/ReleasesSettingsPage-FsXF_FuJ.js +0 -178
  306. package/dist/_chunks/ReleasesSettingsPage-FsXF_FuJ.js.map +0 -1
  307. package/dist/_chunks/en-BWPPsSH-.js +0 -102
  308. package/dist/_chunks/en-BWPPsSH-.js.map +0 -1
  309. package/dist/_chunks/en-D9Q4YW03.mjs +0 -102
  310. package/dist/_chunks/en-D9Q4YW03.mjs.map +0 -1
  311. package/dist/_chunks/index-CVj5EFQC.mjs +0 -1386
  312. package/dist/_chunks/index-CVj5EFQC.mjs.map +0 -1
  313. package/dist/_chunks/index-CpTN5TdF.js +0 -1404
  314. package/dist/_chunks/index-CpTN5TdF.js.map +0 -1
  315. package/dist/_chunks/schemas-DBYv9gK8.js +0 -61
  316. package/dist/_chunks/schemas-DBYv9gK8.js.map +0 -1
  317. package/dist/_chunks/schemas-DdA2ic2U.mjs +0 -44
  318. package/dist/_chunks/schemas-DdA2ic2U.mjs.map +0 -1
@@ -0,0 +1,774 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
+ var designSystem = require('@strapi/design-system');
7
+ var icons = require('@strapi/icons');
8
+ var symbols = require('@strapi/icons/symbols');
9
+ var format = require('date-fns/format');
10
+ var dateFnsTz = require('date-fns-tz');
11
+ var reactIntl = require('react-intl');
12
+ var reactRouterDom = require('react-router-dom');
13
+ var styledComponents = require('styled-components');
14
+ var EntryValidationPopover = require('../components/EntryValidationPopover.js');
15
+ var RelativeTime = require('../components/RelativeTime.js');
16
+ var ReleaseActionMenu = require('../components/ReleaseActionMenu.js');
17
+ var ReleaseActionOptions = require('../components/ReleaseActionOptions.js');
18
+ var ReleaseModal = require('../components/ReleaseModal.js');
19
+ var constants = require('../constants.js');
20
+ var release = require('../services/release.js');
21
+ var hooks = require('../store/hooks.js');
22
+ var api = require('../utils/api.js');
23
+ var time = require('../utils/time.js');
24
+ var ReleasesPage = require('./ReleasesPage.js');
25
+
26
+ function _interopNamespaceDefault(e) {
27
+ var n = Object.create(null);
28
+ if (e) {
29
+ Object.keys(e).forEach(function (k) {
30
+ if (k !== 'default') {
31
+ var d = Object.getOwnPropertyDescriptor(e, k);
32
+ Object.defineProperty(n, k, d.get ? d : {
33
+ enumerable: true,
34
+ get: function () { return e[k]; }
35
+ });
36
+ }
37
+ });
38
+ }
39
+ n.default = e;
40
+ return Object.freeze(n);
41
+ }
42
+
43
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
44
+
45
+ /* -------------------------------------------------------------------------------------------------
46
+ * ReleaseDetailsLayout
47
+ * -----------------------------------------------------------------------------------------------*/ const ReleaseInfoWrapper = styledComponents.styled(designSystem.Flex)`
48
+ align-self: stretch;
49
+ border-bottom-right-radius: ${({ theme })=>theme.borderRadius};
50
+ border-bottom-left-radius: ${({ theme })=>theme.borderRadius};
51
+ border-top: 1px solid ${({ theme })=>theme.colors.neutral150};
52
+ `;
53
+ const ReleaseDetailsLayout = ({ toggleEditReleaseModal, toggleWarningSubmit, children })=>{
54
+ const { formatMessage, formatDate, formatTime } = reactIntl.useIntl();
55
+ const { releaseId } = reactRouterDom.useParams();
56
+ const { data, isLoading: isLoadingDetails, error } = release.useGetReleaseQuery({
57
+ id: releaseId
58
+ }, {
59
+ skip: !releaseId
60
+ });
61
+ const [publishRelease, { isLoading: isPublishing }] = release.usePublishReleaseMutation();
62
+ const { toggleNotification } = strapiAdmin.useNotification();
63
+ const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
64
+ const { allowedActions } = strapiAdmin.useRBAC(constants.PERMISSIONS);
65
+ const { canUpdate, canDelete, canPublish } = allowedActions;
66
+ const dispatch = hooks.useTypedDispatch();
67
+ const { trackUsage } = strapiAdmin.useTracking();
68
+ const release$1 = data?.data;
69
+ const handlePublishRelease = (id)=>async ()=>{
70
+ const response = await publishRelease({
71
+ id
72
+ });
73
+ if ('data' in response) {
74
+ // When the response returns an object with 'data', handle success
75
+ toggleNotification({
76
+ type: 'success',
77
+ message: formatMessage({
78
+ id: 'content-releases.pages.ReleaseDetails.publish-notification-success',
79
+ defaultMessage: 'Release was published successfully.'
80
+ })
81
+ });
82
+ const { totalEntries, totalPublishedEntries, totalUnpublishedEntries } = response.data.meta;
83
+ trackUsage('didPublishRelease', {
84
+ totalEntries,
85
+ totalPublishedEntries,
86
+ totalUnpublishedEntries
87
+ });
88
+ } else if (strapiAdmin.isFetchError(response.error)) {
89
+ // When the response returns an object with 'error', handle fetch error
90
+ toggleNotification({
91
+ type: 'danger',
92
+ message: formatAPIError(response.error)
93
+ });
94
+ } else {
95
+ // Otherwise, the response returns an object with 'error', handle a generic error
96
+ toggleNotification({
97
+ type: 'danger',
98
+ message: formatMessage({
99
+ id: 'notification.error',
100
+ defaultMessage: 'An error occurred'
101
+ })
102
+ });
103
+ }
104
+ };
105
+ const handleRefresh = ()=>{
106
+ dispatch(release.releaseApi.util.invalidateTags([
107
+ {
108
+ type: 'ReleaseAction',
109
+ id: 'LIST'
110
+ },
111
+ {
112
+ type: 'Release',
113
+ id: releaseId
114
+ }
115
+ ]));
116
+ };
117
+ const getCreatedByUser = ()=>{
118
+ if (!release$1?.createdBy) {
119
+ return null;
120
+ }
121
+ // Favor the username
122
+ if (release$1.createdBy.username) {
123
+ return release$1.createdBy.username;
124
+ }
125
+ // Firstname may not exist if created with SSO
126
+ if (release$1.createdBy.firstname) {
127
+ return `${release$1.createdBy.firstname} ${release$1.createdBy.lastname || ''}`.trim();
128
+ }
129
+ // All users must have at least an email
130
+ return release$1.createdBy.email;
131
+ };
132
+ if (isLoadingDetails) {
133
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
134
+ }
135
+ if (api.isBaseQueryError(error) && 'code' in error || !release$1) {
136
+ return /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Navigate, {
137
+ to: "..",
138
+ state: {
139
+ errors: [
140
+ {
141
+ // @ts-expect-error – TODO: fix this weird error flow
142
+ code: error?.code
143
+ }
144
+ ]
145
+ }
146
+ });
147
+ }
148
+ const totalEntries = release$1.actions.meta.count || 0;
149
+ const hasCreatedByUser = Boolean(getCreatedByUser());
150
+ const isScheduled = release$1.scheduledAt && release$1.timezone;
151
+ const numberOfEntriesText = formatMessage({
152
+ id: 'content-releases.pages.Details.header-subtitle',
153
+ defaultMessage: '{number, plural, =0 {No entries} one {# entry} other {# entries}}'
154
+ }, {
155
+ number: totalEntries
156
+ });
157
+ const scheduledText = isScheduled ? formatMessage({
158
+ id: 'content-releases.pages.ReleaseDetails.header-subtitle.scheduled',
159
+ defaultMessage: 'Scheduled for {date} at {time} ({offset})'
160
+ }, {
161
+ date: formatDate(new Date(release$1.scheduledAt), {
162
+ weekday: 'long',
163
+ day: 'numeric',
164
+ month: 'long',
165
+ year: 'numeric',
166
+ timeZone: release$1.timezone
167
+ }),
168
+ time: formatTime(new Date(release$1.scheduledAt), {
169
+ timeZone: release$1.timezone,
170
+ hourCycle: 'h23'
171
+ }),
172
+ offset: time.getTimezoneOffset(release$1.timezone, new Date(release$1.scheduledAt))
173
+ }) : '';
174
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Root, {
175
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Main, {
176
+ "aria-busy": isLoadingDetails,
177
+ children: [
178
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Header, {
179
+ title: release$1.name,
180
+ subtitle: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
181
+ gap: 2,
182
+ lineHeight: 6,
183
+ children: [
184
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
185
+ textColor: "neutral600",
186
+ variant: "epsilon",
187
+ children: numberOfEntriesText + (isScheduled ? ` - ${scheduledText}` : '')
188
+ }),
189
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Badge, {
190
+ ...ReleasesPage.getBadgeProps(release$1.status),
191
+ children: release$1.status
192
+ })
193
+ ]
194
+ }),
195
+ navigationAction: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.BackButton, {
196
+ fallback: ".."
197
+ }),
198
+ primaryAction: !release$1.releasedAt && /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
199
+ gap: 2,
200
+ children: [
201
+ /*#__PURE__*/ jsxRuntime.jsxs(SimpleMenuButton, {
202
+ label: /*#__PURE__*/ jsxRuntime.jsx(icons.More, {}),
203
+ variant: "tertiary",
204
+ endIcon: null,
205
+ paddingLeft: "7px",
206
+ paddingRight: "7px",
207
+ "aria-label": formatMessage({
208
+ id: 'content-releases.header.actions.open-release-actions',
209
+ defaultMessage: 'Release edit and delete menu'
210
+ }),
211
+ popoverPlacement: "bottom-end",
212
+ children: [
213
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
214
+ disabled: !canUpdate,
215
+ onSelect: toggleEditReleaseModal,
216
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Pencil, {}),
217
+ children: formatMessage({
218
+ id: 'content-releases.header.actions.edit',
219
+ defaultMessage: 'Edit'
220
+ })
221
+ }),
222
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
223
+ disabled: !canDelete,
224
+ onSelect: toggleWarningSubmit,
225
+ variant: "danger",
226
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Trash, {}),
227
+ children: formatMessage({
228
+ id: 'content-releases.header.actions.delete',
229
+ defaultMessage: 'Delete'
230
+ })
231
+ }),
232
+ /*#__PURE__*/ jsxRuntime.jsxs(ReleaseInfoWrapper, {
233
+ direction: "column",
234
+ justifyContent: "center",
235
+ alignItems: "flex-start",
236
+ gap: 1,
237
+ padding: 4,
238
+ children: [
239
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
240
+ variant: "pi",
241
+ fontWeight: "bold",
242
+ children: formatMessage({
243
+ id: 'content-releases.header.actions.created',
244
+ defaultMessage: 'Created'
245
+ })
246
+ }),
247
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
248
+ variant: "pi",
249
+ color: "neutral300",
250
+ children: [
251
+ /*#__PURE__*/ jsxRuntime.jsx(RelativeTime.RelativeTime, {
252
+ timestamp: new Date(release$1.createdAt)
253
+ }),
254
+ formatMessage({
255
+ id: 'content-releases.header.actions.created.description',
256
+ defaultMessage: '{hasCreatedByUser, select, true { by {createdBy}} other { by deleted user}}'
257
+ }, {
258
+ createdBy: getCreatedByUser(),
259
+ hasCreatedByUser
260
+ })
261
+ ]
262
+ })
263
+ ]
264
+ })
265
+ ]
266
+ }),
267
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
268
+ size: "S",
269
+ variant: "tertiary",
270
+ onClick: handleRefresh,
271
+ children: formatMessage({
272
+ id: 'content-releases.header.actions.refresh',
273
+ defaultMessage: 'Refresh'
274
+ })
275
+ }),
276
+ canPublish ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
277
+ size: "S",
278
+ variant: "default",
279
+ onClick: handlePublishRelease(release$1.id.toString()),
280
+ loading: isPublishing,
281
+ disabled: release$1.actions.meta.count === 0,
282
+ children: formatMessage({
283
+ id: 'content-releases.header.actions.publish',
284
+ defaultMessage: 'Publish'
285
+ })
286
+ }) : null
287
+ ]
288
+ })
289
+ }),
290
+ children
291
+ ]
292
+ })
293
+ });
294
+ };
295
+ const SimpleMenuButton = styledComponents.styled(designSystem.SimpleMenu)`
296
+ & > span {
297
+ display: flex;
298
+ }
299
+ `;
300
+ /* -------------------------------------------------------------------------------------------------
301
+ * ReleaseDetailsBody
302
+ * -----------------------------------------------------------------------------------------------*/ const GROUP_BY_OPTIONS = [
303
+ 'contentType',
304
+ 'locale',
305
+ 'action'
306
+ ];
307
+ const GROUP_BY_OPTIONS_NO_LOCALE = [
308
+ 'contentType',
309
+ 'action'
310
+ ];
311
+ const getGroupByOptionLabel = (value)=>{
312
+ if (value === 'locale') {
313
+ return {
314
+ id: 'content-releases.pages.ReleaseDetails.groupBy.option.locales',
315
+ defaultMessage: 'Locales'
316
+ };
317
+ }
318
+ if (value === 'action') {
319
+ return {
320
+ id: 'content-releases.pages.ReleaseDetails.groupBy.option.actions',
321
+ defaultMessage: 'Actions'
322
+ };
323
+ }
324
+ return {
325
+ id: 'content-releases.pages.ReleaseDetails.groupBy.option.content-type',
326
+ defaultMessage: 'Content-Types'
327
+ };
328
+ };
329
+ const ReleaseDetailsBody = ({ releaseId })=>{
330
+ const { formatMessage } = reactIntl.useIntl();
331
+ const [{ query }, setQuery] = strapiAdmin.useQueryParams();
332
+ const { toggleNotification } = strapiAdmin.useNotification();
333
+ const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
334
+ const { data: releaseData, isLoading: isReleaseLoading, error: releaseError } = release.useGetReleaseQuery({
335
+ id: releaseId
336
+ });
337
+ const { allowedActions: { canUpdate } } = strapiAdmin.useRBAC(constants.PERMISSIONS);
338
+ const runHookWaterfall = strapiAdmin.useStrapiApp('ReleaseDetailsPage', (state)=>state.runHookWaterfall);
339
+ // TODO: Migrated displayedHeader to v5
340
+ const { displayedHeaders, hasI18nEnabled } = runHookWaterfall('ContentReleases/pages/ReleaseDetails/add-locale-in-releases', {
341
+ displayedHeaders: [
342
+ {
343
+ label: {
344
+ id: 'content-releases.page.ReleaseDetails.table.header.label.name',
345
+ defaultMessage: 'name'
346
+ },
347
+ name: 'name'
348
+ }
349
+ ],
350
+ hasI18nEnabled: false
351
+ });
352
+ const release$1 = releaseData?.data;
353
+ const selectedGroupBy = query?.groupBy || 'contentType';
354
+ const { isLoading, isFetching, isError, data, error: releaseActionsError } = release.useGetReleaseActionsQuery({
355
+ ...query,
356
+ releaseId
357
+ });
358
+ const [updateReleaseAction] = release.useUpdateReleaseActionMutation();
359
+ const handleChangeType = async (e, actionId, actionPath)=>{
360
+ const response = await updateReleaseAction({
361
+ params: {
362
+ releaseId,
363
+ actionId
364
+ },
365
+ body: {
366
+ type: e.target.value
367
+ },
368
+ query,
369
+ actionPath
370
+ });
371
+ if ('error' in response) {
372
+ if (strapiAdmin.isFetchError(response.error)) {
373
+ // When the response returns an object with 'error', handle fetch error
374
+ toggleNotification({
375
+ type: 'danger',
376
+ message: formatAPIError(response.error)
377
+ });
378
+ } else {
379
+ // Otherwise, the response returns an object with 'error', handle a generic error
380
+ toggleNotification({
381
+ type: 'danger',
382
+ message: formatMessage({
383
+ id: 'notification.error',
384
+ defaultMessage: 'An error occurred'
385
+ })
386
+ });
387
+ }
388
+ }
389
+ };
390
+ if (isLoading || isReleaseLoading) {
391
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
392
+ }
393
+ const releaseActions = data?.data;
394
+ const releaseMeta = data?.meta;
395
+ const contentTypes = releaseMeta?.contentTypes || {};
396
+ releaseMeta?.components || {};
397
+ if (api.isBaseQueryError(releaseError) || !release$1) {
398
+ const errorsArray = [];
399
+ if (releaseError && 'code' in releaseError) {
400
+ errorsArray.push({
401
+ code: releaseError.code
402
+ });
403
+ }
404
+ if (releaseActionsError && 'code' in releaseActionsError) {
405
+ errorsArray.push({
406
+ code: releaseActionsError.code
407
+ });
408
+ }
409
+ return /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Navigate, {
410
+ to: "..",
411
+ state: {
412
+ errors: errorsArray
413
+ }
414
+ });
415
+ }
416
+ if (isError || !releaseActions) {
417
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
418
+ }
419
+ if (Object.keys(releaseActions).length === 0) {
420
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
421
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
422
+ action: /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
423
+ tag: reactRouterDom.Link,
424
+ to: {
425
+ pathname: '/content-manager'
426
+ },
427
+ style: {
428
+ textDecoration: 'none'
429
+ },
430
+ variant: "secondary",
431
+ children: formatMessage({
432
+ id: 'content-releases.page.Details.button.openContentManager',
433
+ defaultMessage: 'Open the Content Manager'
434
+ })
435
+ }),
436
+ icon: /*#__PURE__*/ jsxRuntime.jsx(symbols.EmptyDocuments, {
437
+ width: "16rem"
438
+ }),
439
+ content: formatMessage({
440
+ id: 'content-releases.pages.Details.tab.emptyEntries',
441
+ defaultMessage: 'This release is empty. Open the Content Manager, select an entry and add it to the release.'
442
+ })
443
+ })
444
+ });
445
+ }
446
+ const groupByLabel = formatMessage({
447
+ id: 'content-releases.pages.ReleaseDetails.groupBy.aria-label',
448
+ defaultMessage: 'Group by'
449
+ });
450
+ const headers = [
451
+ ...displayedHeaders,
452
+ {
453
+ label: {
454
+ id: 'content-releases.page.ReleaseDetails.table.header.label.content-type',
455
+ defaultMessage: 'content-type'
456
+ },
457
+ name: 'content-type'
458
+ },
459
+ {
460
+ label: {
461
+ id: 'content-releases.page.ReleaseDetails.table.header.label.action',
462
+ defaultMessage: 'action'
463
+ },
464
+ name: 'action'
465
+ },
466
+ ...!release$1.releasedAt ? [
467
+ {
468
+ label: {
469
+ id: 'content-releases.page.ReleaseDetails.table.header.label.status',
470
+ defaultMessage: 'status'
471
+ },
472
+ name: 'status'
473
+ }
474
+ ] : []
475
+ ];
476
+ const options = hasI18nEnabled ? GROUP_BY_OPTIONS : GROUP_BY_OPTIONS_NO_LOCALE;
477
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
478
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
479
+ gap: 4,
480
+ direction: "column",
481
+ alignItems: "stretch",
482
+ children: [
483
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
484
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelect, {
485
+ placeholder: groupByLabel,
486
+ "aria-label": groupByLabel,
487
+ customizeContent: (value)=>formatMessage({
488
+ id: `content-releases.pages.ReleaseDetails.groupBy.label`,
489
+ defaultMessage: `Group by {groupBy}`
490
+ }, {
491
+ groupBy: value
492
+ }),
493
+ value: formatMessage(getGroupByOptionLabel(selectedGroupBy)),
494
+ onChange: (value)=>setQuery({
495
+ groupBy: value
496
+ }),
497
+ children: options.map((option)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
498
+ value: option,
499
+ children: formatMessage(getGroupByOptionLabel(option))
500
+ }, option))
501
+ })
502
+ }),
503
+ Object.keys(releaseActions).map((key)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
504
+ gap: 4,
505
+ direction: "column",
506
+ alignItems: "stretch",
507
+ children: [
508
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
509
+ role: "separator",
510
+ "aria-label": key,
511
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Badge, {
512
+ children: key
513
+ })
514
+ }),
515
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Root, {
516
+ rows: releaseActions[key].map((item)=>({
517
+ ...item,
518
+ id: Number(item.entry.id)
519
+ })),
520
+ headers: headers,
521
+ isLoading: isLoading || isFetching,
522
+ children: /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Table.Content, {
523
+ children: [
524
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Head, {
525
+ children: headers.map(({ label, name })=>/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.HeaderCell, {
526
+ label: formatMessage(label),
527
+ name: name
528
+ }, name))
529
+ }),
530
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Loading, {}),
531
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Table.Body, {
532
+ children: releaseActions[key].map(({ id, contentType, locale, type, entry, status }, actionIndex)=>/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
533
+ children: [
534
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
535
+ width: "25%",
536
+ maxWidth: "200px",
537
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
538
+ ellipsis: true,
539
+ children: `${contentType.mainFieldValue || entry.id}`
540
+ })
541
+ }),
542
+ hasI18nEnabled && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
543
+ width: "10%",
544
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
545
+ children: `${locale?.name ? locale.name : '-'}`
546
+ })
547
+ }),
548
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
549
+ width: "10%",
550
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
551
+ children: contentType.displayName || ''
552
+ })
553
+ }),
554
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
555
+ width: "20%",
556
+ children: release$1.releasedAt ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
557
+ children: formatMessage({
558
+ id: 'content-releases.page.ReleaseDetails.table.action-published',
559
+ defaultMessage: 'This entry was <b>{isPublish, select, true {published} other {unpublished}}</b>.'
560
+ }, {
561
+ isPublish: type === 'publish',
562
+ b: (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
563
+ fontWeight: "bold",
564
+ children: children
565
+ })
566
+ })
567
+ }) : /*#__PURE__*/ jsxRuntime.jsx(ReleaseActionOptions.ReleaseActionOptions, {
568
+ selected: type,
569
+ handleChange: (e)=>handleChangeType(e, id, [
570
+ key,
571
+ actionIndex
572
+ ]),
573
+ name: `release-action-${id}-type`,
574
+ disabled: !canUpdate
575
+ })
576
+ }),
577
+ !release$1.releasedAt && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
578
+ children: [
579
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
580
+ width: "20%",
581
+ minWidth: "200px",
582
+ children: /*#__PURE__*/ jsxRuntime.jsx(EntryValidationPopover.EntryValidationPopover, {
583
+ action: type,
584
+ schema: contentTypes?.[contentType.uid],
585
+ entry: entry,
586
+ status: status
587
+ })
588
+ }),
589
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
590
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
591
+ justifyContent: "flex-end",
592
+ children: /*#__PURE__*/ jsxRuntime.jsxs(ReleaseActionMenu.ReleaseActionMenu.Root, {
593
+ children: [
594
+ /*#__PURE__*/ jsxRuntime.jsx(ReleaseActionMenu.ReleaseActionMenu.ReleaseActionEntryLinkItem, {
595
+ contentTypeUid: contentType.uid,
596
+ documentId: entry.documentId,
597
+ locale: locale?.code
598
+ }),
599
+ /*#__PURE__*/ jsxRuntime.jsx(ReleaseActionMenu.ReleaseActionMenu.DeleteReleaseActionItem, {
600
+ releaseId: release$1.id,
601
+ actionId: id
602
+ })
603
+ ]
604
+ })
605
+ })
606
+ })
607
+ ]
608
+ })
609
+ ]
610
+ }, id))
611
+ })
612
+ ]
613
+ })
614
+ })
615
+ ]
616
+ }, `releases-group-${key}`)),
617
+ releaseMeta?.pagination?.pageCount && releaseMeta.pagination.pageCount > 1 && /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Pagination.Root, {
618
+ ...releaseMeta?.pagination,
619
+ defaultPageSize: releaseMeta?.pagination?.pageSize,
620
+ children: [
621
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Pagination.PageSize, {}),
622
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Pagination.Links, {})
623
+ ]
624
+ })
625
+ ]
626
+ })
627
+ });
628
+ };
629
+ /* -------------------------------------------------------------------------------------------------
630
+ * ReleaseDetailsPage
631
+ * -----------------------------------------------------------------------------------------------*/ const ReleaseDetailsPage = ()=>{
632
+ const { formatMessage } = reactIntl.useIntl();
633
+ const { releaseId } = reactRouterDom.useParams();
634
+ const { toggleNotification } = strapiAdmin.useNotification();
635
+ const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
636
+ const navigate = reactRouterDom.useNavigate();
637
+ const [releaseModalShown, setReleaseModalShown] = React__namespace.useState(false);
638
+ const [showWarningSubmit, setWarningSubmit] = React__namespace.useState(false);
639
+ const { isLoading: isLoadingDetails, data, isSuccess: isSuccessDetails } = release.useGetReleaseQuery({
640
+ id: releaseId
641
+ }, {
642
+ skip: !releaseId
643
+ });
644
+ const { data: dataTimezone, isLoading: isLoadingTimezone } = release.useGetReleaseSettingsQuery();
645
+ const [updateRelease, { isLoading: isSubmittingForm }] = release.useUpdateReleaseMutation();
646
+ const [deleteRelease] = release.useDeleteReleaseMutation();
647
+ const toggleEditReleaseModal = ()=>{
648
+ setReleaseModalShown((prev)=>!prev);
649
+ };
650
+ const getTimezoneValue = ()=>{
651
+ if (releaseData?.timezone) {
652
+ return releaseData.timezone;
653
+ } else {
654
+ if (dataTimezone?.data.defaultTimezone) {
655
+ return dataTimezone.data.defaultTimezone;
656
+ }
657
+ return null;
658
+ }
659
+ };
660
+ const toggleWarningSubmit = ()=>setWarningSubmit((prevState)=>!prevState);
661
+ if (isLoadingDetails || isLoadingTimezone) {
662
+ return /*#__PURE__*/ jsxRuntime.jsx(ReleaseDetailsLayout, {
663
+ toggleEditReleaseModal: toggleEditReleaseModal,
664
+ toggleWarningSubmit: toggleWarningSubmit,
665
+ children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {})
666
+ });
667
+ }
668
+ if (!releaseId) {
669
+ return /*#__PURE__*/ jsxRuntime.jsx(reactRouterDom.Navigate, {
670
+ to: ".."
671
+ });
672
+ }
673
+ const releaseData = isSuccessDetails && data?.data || null;
674
+ const title = releaseData?.name || '';
675
+ const timezone = getTimezoneValue();
676
+ const scheduledAt = releaseData?.scheduledAt && timezone ? dateFnsTz.utcToZonedTime(releaseData.scheduledAt, timezone) : null;
677
+ // Just get the date and time to display without considering updated timezone time
678
+ const date = scheduledAt ? format(scheduledAt, 'yyyy-MM-dd') : undefined;
679
+ const time = scheduledAt ? format(scheduledAt, 'HH:mm') : '';
680
+ const handleEditRelease = async (values)=>{
681
+ const response = await updateRelease({
682
+ id: releaseId,
683
+ name: values.name,
684
+ scheduledAt: values.scheduledAt,
685
+ timezone: values.timezone
686
+ });
687
+ if ('data' in response) {
688
+ // When the response returns an object with 'data', handle success
689
+ toggleNotification({
690
+ type: 'success',
691
+ message: formatMessage({
692
+ id: 'content-releases.modal.release-updated-notification-success',
693
+ defaultMessage: 'Release updated.'
694
+ })
695
+ });
696
+ toggleEditReleaseModal();
697
+ } else if (strapiAdmin.isFetchError(response.error)) {
698
+ // When the response returns an object with 'error', handle fetch error
699
+ toggleNotification({
700
+ type: 'danger',
701
+ message: formatAPIError(response.error)
702
+ });
703
+ } else {
704
+ // Otherwise, the response returns an object with 'error', handle a generic error
705
+ toggleNotification({
706
+ type: 'danger',
707
+ message: formatMessage({
708
+ id: 'notification.error',
709
+ defaultMessage: 'An error occurred'
710
+ })
711
+ });
712
+ }
713
+ };
714
+ const handleDeleteRelease = async ()=>{
715
+ const response = await deleteRelease({
716
+ id: releaseId
717
+ });
718
+ if ('data' in response) {
719
+ navigate('..');
720
+ } else if (strapiAdmin.isFetchError(response.error)) {
721
+ // When the response returns an object with 'error', handle fetch error
722
+ toggleNotification({
723
+ type: 'danger',
724
+ message: formatAPIError(response.error)
725
+ });
726
+ } else {
727
+ // Otherwise, the response returns an object with 'error', handle a generic error
728
+ toggleNotification({
729
+ type: 'danger',
730
+ message: formatMessage({
731
+ id: 'notification.error',
732
+ defaultMessage: 'An error occurred'
733
+ })
734
+ });
735
+ }
736
+ };
737
+ return /*#__PURE__*/ jsxRuntime.jsxs(ReleaseDetailsLayout, {
738
+ toggleEditReleaseModal: toggleEditReleaseModal,
739
+ toggleWarningSubmit: toggleWarningSubmit,
740
+ children: [
741
+ /*#__PURE__*/ jsxRuntime.jsx(ReleaseDetailsBody, {
742
+ releaseId: releaseId
743
+ }),
744
+ /*#__PURE__*/ jsxRuntime.jsx(ReleaseModal.ReleaseModal, {
745
+ open: releaseModalShown,
746
+ handleClose: toggleEditReleaseModal,
747
+ handleSubmit: handleEditRelease,
748
+ isLoading: isLoadingDetails || isSubmittingForm,
749
+ initialValues: {
750
+ name: title || '',
751
+ scheduledAt,
752
+ date,
753
+ time,
754
+ isScheduled: Boolean(scheduledAt),
755
+ timezone
756
+ }
757
+ }),
758
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Root, {
759
+ open: showWarningSubmit,
760
+ onOpenChange: toggleWarningSubmit,
761
+ children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, {
762
+ onConfirm: handleDeleteRelease,
763
+ children: formatMessage({
764
+ id: 'content-releases.dialog.confirmation-message',
765
+ defaultMessage: 'Are you sure you want to delete this release?'
766
+ })
767
+ })
768
+ })
769
+ ]
770
+ });
771
+ };
772
+
773
+ exports.ReleaseDetailsPage = ReleaseDetailsPage;
774
+ //# sourceMappingURL=ReleaseDetailsPage.js.map