@strapi/admin 5.30.0 → 5.30.1

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 (342) hide show
  1. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  2. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  3. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  4. package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  6. package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +1 -1
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +1 -1
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +8 -3
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +8 -3
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
  16. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
  18. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
  20. package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
  22. package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
  24. package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
  26. package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  28. package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  30. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  32. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  34. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  36. package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
  38. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
  40. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
  42. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  43. package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
  44. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  46. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  47. package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
  48. package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  50. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  52. package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/Table.js +1 -1
  54. package/dist/admin/admin/src/components/Table.js.map +1 -1
  55. package/dist/admin/admin/src/components/Table.mjs +1 -1
  56. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  58. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  59. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  60. package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
  61. package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
  62. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  63. package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
  64. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  65. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  66. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  67. package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
  68. package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
  69. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  70. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  71. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  72. package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
  73. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  74. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  75. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  76. package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
  77. package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
  78. package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
  79. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  80. package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
  81. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  82. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  84. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  85. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
  86. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
  87. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
  88. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
  89. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
  90. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
  92. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
  93. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
  94. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
  96. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  98. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
  100. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +9 -2
  102. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  104. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  106. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  108. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  110. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +2 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  118. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  119. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  120. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  121. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
  122. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +9 -2
  126. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +9 -2
  128. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -2
  130. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +9 -2
  132. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  140. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  142. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  146. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  147. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  148. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
  150. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  152. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -0
  154. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +2 -0
  156. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -2
  158. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +9 -2
  160. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
  164. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
  166. package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  168. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  170. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  172. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  174. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
  176. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +9 -2
  178. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  179. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  180. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  181. package/dist/admin/admin/src/services/api.js +2 -1
  182. package/dist/admin/admin/src/services/api.js.map +1 -1
  183. package/dist/admin/admin/src/services/api.mjs +2 -1
  184. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  185. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  186. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  187. package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
  188. package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
  189. package/dist/admin/admin/src/services/users.js.map +1 -1
  190. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  191. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  192. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  193. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  194. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  195. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  196. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  197. package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
  198. package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
  199. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  200. package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
  201. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  202. package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
  203. package/dist/admin/admin/src/utils/users.js.map +1 -1
  204. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  205. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
  206. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
  207. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  208. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
  209. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  210. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  211. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  212. package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
  213. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
  214. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
  215. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
  216. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  217. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
  218. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  219. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  220. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
  221. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  222. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
  223. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  224. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  225. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
  226. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
  227. package/dist/admin/ee/admin/src/services/ai.js +14 -1
  228. package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
  229. package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
  230. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
  231. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  232. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  233. package/dist/admin/ee.js +1 -0
  234. package/dist/admin/ee.js.map +1 -1
  235. package/dist/admin/ee.mjs +1 -1
  236. package/dist/admin/src/components/Form.d.ts +1 -1
  237. package/dist/admin/src/core/store/configure.d.ts +2 -2
  238. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  239. package/dist/admin/src/ee.d.ts +1 -1
  240. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  241. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  242. package/dist/admin/src/selectors.d.ts +2 -2
  243. package/dist/admin/src/services/admin.d.ts +6 -6
  244. package/dist/admin/src/services/api.d.ts +1 -1
  245. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  246. package/dist/admin/src/services/auth.d.ts +13 -13
  247. package/dist/admin/src/services/contentApi.d.ts +1 -1
  248. package/dist/admin/src/services/contentManager.d.ts +1 -1
  249. package/dist/admin/src/services/homepage.d.ts +3 -3
  250. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  251. package/dist/admin/src/services/users.d.ts +8 -8
  252. package/dist/admin/src/services/webhooks.d.ts +2 -2
  253. package/dist/admin/tests/utils.d.ts +1 -1
  254. package/dist/ee/admin/src/services/ai.d.ts +6 -3
  255. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  256. package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
  257. package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
  258. package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
  259. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
  260. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
  261. package/dist/ee/server/src/index.d.ts +1 -0
  262. package/dist/ee/server/src/index.d.ts.map +1 -1
  263. package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
  264. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
  265. package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
  266. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
  267. package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
  268. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  269. package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
  270. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  271. package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
  272. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  273. package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
  274. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  275. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  276. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  277. package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
  278. package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
  279. package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
  280. package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
  281. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  282. package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
  283. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  284. package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
  285. package/dist/server/ee/server/src/index.js +7 -0
  286. package/dist/server/ee/server/src/index.js.map +1 -1
  287. package/dist/server/ee/server/src/index.mjs +7 -0
  288. package/dist/server/ee/server/src/index.mjs.map +1 -1
  289. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  290. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  291. package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
  292. package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
  293. package/dist/server/ee/server/src/utils/index.js.map +1 -1
  294. package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
  295. package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
  296. package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
  297. package/dist/server/server/src/controllers/user.js +10 -0
  298. package/dist/server/server/src/controllers/user.js.map +1 -1
  299. package/dist/server/server/src/controllers/user.mjs +10 -0
  300. package/dist/server/server/src/controllers/user.mjs.map +1 -1
  301. package/dist/server/server/src/domain/action/index.js.map +1 -1
  302. package/dist/server/server/src/domain/action/index.mjs.map +1 -1
  303. package/dist/server/server/src/domain/condition/index.js.map +1 -1
  304. package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
  305. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  306. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  307. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  308. package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
  309. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  310. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  311. package/dist/server/server/src/services/api-token.js.map +1 -1
  312. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  313. package/dist/server/server/src/services/auth.js.map +1 -1
  314. package/dist/server/server/src/services/auth.mjs.map +1 -1
  315. package/dist/server/server/src/services/content-type.js.map +1 -1
  316. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  317. package/dist/server/server/src/services/encryption.js.map +1 -1
  318. package/dist/server/server/src/services/encryption.mjs.map +1 -1
  319. package/dist/server/server/src/services/homepage.js.map +1 -1
  320. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  321. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  322. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  323. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  324. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  325. package/dist/server/server/src/services/role.js.map +1 -1
  326. package/dist/server/server/src/services/role.mjs.map +1 -1
  327. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  328. package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
  329. package/dist/server/server/src/services/user.js.map +1 -1
  330. package/dist/server/server/src/services/user.mjs.map +1 -1
  331. package/dist/server/server/src/utils/index.js.map +1 -1
  332. package/dist/server/server/src/utils/index.mjs.map +1 -1
  333. package/dist/server/server/src/validation/action-provider.js.map +1 -1
  334. package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
  335. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  336. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
  337. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  338. package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
  339. package/dist/server/src/controllers/user.d.ts.map +1 -1
  340. package/dist/shared/contracts/ai.d.ts +16 -0
  341. package/dist/shared/contracts/ai.d.ts.map +1 -1
  342. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","err","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MagicLinkCE.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,MAAS,GAAA,CAAC,EACdC,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CACvB,EAAEC,oBAAAA,EAAAA,CAAc,iCAAiC,EAAEP,kBAAkB,CAAC;AAEvE,IAAA,qBACEQ,cAACC,CAAAA,iCAAAA,EAAAA;QAAiBN,MAAQA,EAAAA,MAAAA;kBACvBF,aAAc,CAAA;YACbS,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"MagicLinkCE.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,MAAAA,GAAS,CACbC,EAAAA,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CACrBC,EAAAA,oBAAAA,EAAAA,CAAc,iCAAiC,EAAEP,iBAAmB,CAAA,CAAA;AAEvE,IAAA,qBACEQ,cAACC,CAAAA,iCAAAA,EAAAA;QAAiBN,MAAQA,EAAAA,MAAAA;kBACvBF,aAAc,CAAA;YACbS,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MagicLinkCE.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,MAAS,GAAA,CAAC,EACdC,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CACvB,EAAEC,WAAAA,EAAAA,CAAc,iCAAiC,EAAEP,kBAAkB,CAAC;AAEvE,IAAA,qBACEQ,GAACC,CAAAA,gBAAAA,EAAAA;QAAiBN,MAAQA,EAAAA,MAAAA;kBACvBF,aAAc,CAAA;YACbS,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"MagicLinkCE.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/MagicLinkCE.tsx"],"sourcesContent":["import { useIntl } from 'react-intl';\n\nimport { getBasename } from '../../../../../core/utils/basename';\n\nimport { MagicLinkWrapper } from './MagicLinkWrapper';\n\ninterface MagicLinkCEProps {\n registrationToken: string;\n}\n\nconst MagicLinkCE = ({ registrationToken }: MagicLinkCEProps) => {\n const { formatMessage } = useIntl();\n const target = `${\n window.location.origin\n }${getBasename()}/auth/register?registrationToken=${registrationToken}`;\n\n return (\n <MagicLinkWrapper target={target}>\n {formatMessage({\n id: 'app.components.Users.MagicLink.connect',\n defaultMessage: 'Copy and share this link to give access to this user',\n })}\n </MagicLinkWrapper>\n );\n};\n\nexport { MagicLinkCE };\nexport type { MagicLinkCEProps };\n"],"names":["MagicLinkCE","registrationToken","formatMessage","useIntl","target","window","location","origin","getBasename","_jsx","MagicLinkWrapper","id","defaultMessage"],"mappings":";;;;;AAUA,MAAMA,WAAc,GAAA,CAAC,EAAEC,iBAAiB,EAAoB,GAAA;IAC1D,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,MAAAA,GAAS,CACbC,EAAAA,MAAAA,CAAOC,QAAQ,CAACC,MAAM,CACrBC,EAAAA,WAAAA,EAAAA,CAAc,iCAAiC,EAAEP,iBAAmB,CAAA,CAAA;AAEvE,IAAA,qBACEQ,GAACC,CAAAA,gBAAAA,EAAAA;QAAiBN,MAAQA,EAAAA,MAAAA;kBACvBF,aAAc,CAAA;YACbS,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectRoles.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["SelectRoles","disabled","isLoading","roles","useAdminRoles","formatMessage","useIntl","value","onChange","error","useField","_jsxs","Field","Root","hint","id","defaultMessage","name","required","_jsx","Label","MultiSelect","v","placeholder","startIcon","Loader","undefined","map","toString","withTags","role","MultiSelectOption","code","Error","Hint","rotation","keyframes","LoadingWrapper","styled","div","LoadingIcon"],"mappings":";;;;;;;;;;AAYA,MAAMA,WAAc,GAAA,CAAC,EAAEC,QAAQ,EAAoB,GAAA;AACjD,IAAA,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,2BAAAA,EAAAA;IAE7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,aAAmB,CAAA,OAAA,CAAA;IAE3D,qBACEC,eAAA,CAACC,mBAAMC,IAAI,EAAA;QACTJ,KAAOA,EAAAA,KAAAA;AACPK,QAAAA,IAAAA,EAAMT,aAAc,CAAA;YAClBU,EAAI,EAAA,oEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,IAAK,EAAA,OAAA;QACLC,QAAQ,EAAA,IAAA;;AAER,0BAAAC,cAAA,CAACP,mBAAMQ,KAAK,EAAA;0BACTf,aAAc,CAAA;oBACbU,EAAI,EAAA,wDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFG,cAACE,CAAAA,wBAAAA,EAAAA;gBACCpB,QAAUA,EAAAA,QAAAA;AACVO,gBAAAA,QAAAA,EAAU,CAACc,CAAAA,GAAAA;AACTd,oBAAAA,QAAAA,CAAS,OAASc,EAAAA,CAAAA,CAAAA;AACpB,iBAAA;AACAC,gBAAAA,WAAAA,EAAalB,aAAc,CAAA;oBACzBU,EAAI,EAAA,mCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAQ,SAAWtB,EAAAA,SAAAA,iBAAYiB,eAACM,MAAYC,EAAAA,EAAAA,CAAAA,GAAAA,SAAAA;AACpCnB,gBAAAA,KAAAA,EAAOA,MAAMoB,GAAG,CAAC,CAACL,CAAAA,GAAMA,EAAEM,QAAQ,EAAA,CAAA;gBAClCC,QAAQ,EAAA,IAAA;0BAEP1B,KAAMwB,CAAAA,GAAG,CAAC,CAACG,IAAAA,GAAAA;AACV,oBAAA,qBACEX,cAACY,CAAAA,8BAAAA,EAAAA;wBAAgCxB,KAAOuB,EAAAA,IAAAA,CAAKf,EAAE,CAACa,QAAQ,EAAA;kCACrDvB,aAAc,CAAA;AACbU,4BAAAA,EAAAA,EAAI,CAAC,OAAO,EAAEe,IAAKE,CAAAA,IAAI,CAAC,CAAC;AACzBhB,4BAAAA,cAAAA,EAAgBc,KAAKb;AACvB,yBAAA;AAJsBa,qBAAAA,EAAAA,IAAAA,CAAKf,EAAE,CAAA;AAOnC,iBAAA;;AAEF,0BAAAI,cAAA,CAACP,mBAAMqB,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAAd,cAAA,CAACP,mBAAMsB,IAAI,EAAA,EAAA;;;AAGjB;AAEA,MAAMC,QAAAA,GAAWC,gBAAS;;;;;;;AAO1B,CAAC;AAED,MAAMC,cAAAA,GAAiBC,aAAOC,CAAAA,GAAG;AACpB,aAAA,EAAEJ,QAAS,CAAA;AACxB,CAAC;AAED,MAAMV,MAAAA,GAAS,kBACbN,cAACkB,CAAAA,cAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAlB,cAACqB,CAAAA,YAAAA,EAAAA,EAAAA;;;;;"}
1
+ {"version":3,"file":"SelectRoles.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["SelectRoles","disabled","isLoading","roles","useAdminRoles","formatMessage","useIntl","value","onChange","error","useField","_jsxs","Field","Root","hint","id","defaultMessage","name","required","_jsx","Label","MultiSelect","v","placeholder","startIcon","Loader","undefined","map","toString","withTags","role","MultiSelectOption","code","Error","Hint","rotation","keyframes","LoadingWrapper","styled","div","LoadingIcon"],"mappings":";;;;;;;;;;AAYA,MAAMA,WAAc,GAAA,CAAC,EAAEC,QAAQ,EAAoB,GAAA;AACjD,IAAA,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,2BAAAA,EAAAA;IAE7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,aAAmB,CAAA,OAAA,CAAA;IAE3D,qBACEC,eAAA,CAACC,mBAAMC,IAAI,EAAA;QACTJ,KAAOA,EAAAA,KAAAA;AACPK,QAAAA,IAAAA,EAAMT,aAAc,CAAA;YAClBU,EAAI,EAAA,oEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,IAAK,EAAA,OAAA;QACLC,QAAQ,EAAA,IAAA;;AAER,0BAAAC,cAAA,CAACP,mBAAMQ,KAAK,EAAA;0BACTf,aAAc,CAAA;oBACbU,EAAI,EAAA,wDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFG,cAACE,CAAAA,wBAAAA,EAAAA;gBACCpB,QAAUA,EAAAA,QAAAA;AACVO,gBAAAA,QAAAA,EAAU,CAACc,CAAAA,GAAAA;AACTd,oBAAAA,QAAAA,CAAS,OAASc,EAAAA,CAAAA,CAAAA;AACpB,iBAAA;AACAC,gBAAAA,WAAAA,EAAalB,aAAc,CAAA;oBACzBU,EAAI,EAAA,mCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAQ,SAAWtB,EAAAA,SAAAA,iBAAYiB,eAACM,MAAYC,EAAAA,EAAAA,CAAAA,GAAAA,SAAAA;AACpCnB,gBAAAA,KAAAA,EAAOA,MAAMoB,GAAG,CAAC,CAACL,CAAAA,GAAMA,EAAEM,QAAQ,EAAA,CAAA;gBAClCC,QAAQ,EAAA,IAAA;0BAEP1B,KAAMwB,CAAAA,GAAG,CAAC,CAACG,IAAAA,GAAAA;AACV,oBAAA,qBACEX,cAACY,CAAAA,8BAAAA,EAAAA;wBAAgCxB,KAAOuB,EAAAA,IAAAA,CAAKf,EAAE,CAACa,QAAQ,EAAA;kCACrDvB,aAAc,CAAA;AACbU,4BAAAA,EAAAA,EAAI,CAAC,OAAO,EAAEe,IAAAA,CAAKE,IAAI,CAAE,CAAA;AACzBhB,4BAAAA,cAAAA,EAAgBc,KAAKb;AACvB,yBAAA;AAJsBa,qBAAAA,EAAAA,IAAAA,CAAKf,EAAE,CAAA;AAOnC,iBAAA;;AAEF,0BAAAI,cAAA,CAACP,mBAAMqB,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAAd,cAAA,CAACP,mBAAMsB,IAAI,EAAA,EAAA;;;AAGjB;AAEA,MAAMC,QAAAA,GAAWC,gBAAS;;;;;;;AAO1B,CAAC;AAED,MAAMC,cAAAA,GAAiBC,aAAOC,CAAAA,GAAG;AACpB,aAAA,EAAEJ,QAAS,CAAA;AACxB,CAAC;AAED,MAAMV,MAAAA,GAAS,kBACbN,cAACkB,CAAAA,cAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAlB,cAACqB,CAAAA,YAAAA,EAAAA,EAAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectRoles.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["SelectRoles","disabled","isLoading","roles","useAdminRoles","formatMessage","useIntl","value","onChange","error","useField","_jsxs","Field","Root","hint","id","defaultMessage","name","required","_jsx","Label","MultiSelect","v","placeholder","startIcon","Loader","undefined","map","toString","withTags","role","MultiSelectOption","code","Error","Hint","rotation","keyframes","LoadingWrapper","styled","div","LoadingIcon"],"mappings":";;;;;;;;AAYA,MAAMA,WAAc,GAAA,CAAC,EAAEC,QAAQ,EAAoB,GAAA;AACjD,IAAA,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,aAAAA,EAAAA;IAE7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,QAAmB,CAAA,OAAA,CAAA;IAE3D,qBACEC,IAAA,CAACC,MAAMC,IAAI,EAAA;QACTJ,KAAOA,EAAAA,KAAAA;AACPK,QAAAA,IAAAA,EAAMT,aAAc,CAAA;YAClBU,EAAI,EAAA,oEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,IAAK,EAAA,OAAA;QACLC,QAAQ,EAAA,IAAA;;AAER,0BAAAC,GAAA,CAACP,MAAMQ,KAAK,EAAA;0BACTf,aAAc,CAAA;oBACbU,EAAI,EAAA,wDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFG,GAACE,CAAAA,WAAAA,EAAAA;gBACCpB,QAAUA,EAAAA,QAAAA;AACVO,gBAAAA,QAAAA,EAAU,CAACc,CAAAA,GAAAA;AACTd,oBAAAA,QAAAA,CAAS,OAASc,EAAAA,CAAAA,CAAAA;AACpB,iBAAA;AACAC,gBAAAA,WAAAA,EAAalB,aAAc,CAAA;oBACzBU,EAAI,EAAA,mCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAQ,SAAWtB,EAAAA,SAAAA,iBAAYiB,IAACM,MAAYC,EAAAA,EAAAA,CAAAA,GAAAA,SAAAA;AACpCnB,gBAAAA,KAAAA,EAAOA,MAAMoB,GAAG,CAAC,CAACL,CAAAA,GAAMA,EAAEM,QAAQ,EAAA,CAAA;gBAClCC,QAAQ,EAAA,IAAA;0BAEP1B,KAAMwB,CAAAA,GAAG,CAAC,CAACG,IAAAA,GAAAA;AACV,oBAAA,qBACEX,GAACY,CAAAA,iBAAAA,EAAAA;wBAAgCxB,KAAOuB,EAAAA,IAAAA,CAAKf,EAAE,CAACa,QAAQ,EAAA;kCACrDvB,aAAc,CAAA;AACbU,4BAAAA,EAAAA,EAAI,CAAC,OAAO,EAAEe,IAAKE,CAAAA,IAAI,CAAC,CAAC;AACzBhB,4BAAAA,cAAAA,EAAgBc,KAAKb;AACvB,yBAAA;AAJsBa,qBAAAA,EAAAA,IAAAA,CAAKf,EAAE,CAAA;AAOnC,iBAAA;;AAEF,0BAAAI,GAAA,CAACP,MAAMqB,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAAd,GAAA,CAACP,MAAMsB,IAAI,EAAA,EAAA;;;AAGjB;AAEA,MAAMC,QAAAA,GAAWC,SAAS;;;;;;;AAO1B,CAAC;AAED,MAAMC,cAAAA,GAAiBC,MAAOC,CAAAA,GAAG;AACpB,aAAA,EAAEJ,QAAS,CAAA;AACxB,CAAC;AAED,MAAMV,MAAAA,GAAS,kBACbN,GAACkB,CAAAA,cAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAlB,GAACqB,CAAAA,QAAAA,EAAAA,EAAAA;;;;;"}
1
+ {"version":3,"file":"SelectRoles.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/SelectRoles.tsx"],"sourcesContent":["import { Field, MultiSelect, MultiSelectOption } from '@strapi/design-system';\nimport { Loader as LoadingIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, keyframes } from 'styled-components';\n\nimport { useField } from '../../../../../components/Form';\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\n\ninterface SelectRolesProps {\n disabled?: boolean;\n}\n\nconst SelectRoles = ({ disabled }: SelectRolesProps) => {\n const { isLoading, roles } = useAdminRoles();\n\n const { formatMessage } = useIntl();\n const { value = [], onChange, error } = useField<string[]>('roles');\n\n return (\n <Field.Root\n error={error}\n hint={formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles.description',\n defaultMessage: 'A user can have one or several roles',\n })}\n name=\"roles\"\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.roles',\n defaultMessage: \"User's roles\",\n })}\n </Field.Label>\n <MultiSelect\n disabled={disabled}\n onChange={(v) => {\n onChange('roles', v);\n }}\n placeholder={formatMessage({\n id: 'app.components.Select.placeholder',\n defaultMessage: 'Select',\n })}\n startIcon={isLoading ? <Loader /> : undefined}\n value={value.map((v) => v.toString())}\n withTags\n >\n {roles.map((role) => {\n return (\n <MultiSelectOption key={role.id} value={role.id.toString()}>\n {formatMessage({\n id: `global.${role.code}`,\n defaultMessage: role.name,\n })}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled.div`\n animation: ${rotation} 2s infinite linear;\n`;\n\nconst Loader = () => (\n <LoadingWrapper>\n <LoadingIcon />\n </LoadingWrapper>\n);\n\nexport { SelectRoles };\n"],"names":["SelectRoles","disabled","isLoading","roles","useAdminRoles","formatMessage","useIntl","value","onChange","error","useField","_jsxs","Field","Root","hint","id","defaultMessage","name","required","_jsx","Label","MultiSelect","v","placeholder","startIcon","Loader","undefined","map","toString","withTags","role","MultiSelectOption","code","Error","Hint","rotation","keyframes","LoadingWrapper","styled","div","LoadingIcon"],"mappings":";;;;;;;;AAYA,MAAMA,WAAc,GAAA,CAAC,EAAEC,QAAQ,EAAoB,GAAA;AACjD,IAAA,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAE,GAAGC,aAAAA,EAAAA;IAE7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,QAAQ,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGC,QAAmB,CAAA,OAAA,CAAA;IAE3D,qBACEC,IAAA,CAACC,MAAMC,IAAI,EAAA;QACTJ,KAAOA,EAAAA,KAAAA;AACPK,QAAAA,IAAAA,EAAMT,aAAc,CAAA;YAClBU,EAAI,EAAA,oEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;QACAC,IAAK,EAAA,OAAA;QACLC,QAAQ,EAAA,IAAA;;AAER,0BAAAC,GAAA,CAACP,MAAMQ,KAAK,EAAA;0BACTf,aAAc,CAAA;oBACbU,EAAI,EAAA,wDAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFG,GAACE,CAAAA,WAAAA,EAAAA;gBACCpB,QAAUA,EAAAA,QAAAA;AACVO,gBAAAA,QAAAA,EAAU,CAACc,CAAAA,GAAAA;AACTd,oBAAAA,QAAAA,CAAS,OAASc,EAAAA,CAAAA,CAAAA;AACpB,iBAAA;AACAC,gBAAAA,WAAAA,EAAalB,aAAc,CAAA;oBACzBU,EAAI,EAAA,mCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;gBACAQ,SAAWtB,EAAAA,SAAAA,iBAAYiB,IAACM,MAAYC,EAAAA,EAAAA,CAAAA,GAAAA,SAAAA;AACpCnB,gBAAAA,KAAAA,EAAOA,MAAMoB,GAAG,CAAC,CAACL,CAAAA,GAAMA,EAAEM,QAAQ,EAAA,CAAA;gBAClCC,QAAQ,EAAA,IAAA;0BAEP1B,KAAMwB,CAAAA,GAAG,CAAC,CAACG,IAAAA,GAAAA;AACV,oBAAA,qBACEX,GAACY,CAAAA,iBAAAA,EAAAA;wBAAgCxB,KAAOuB,EAAAA,IAAAA,CAAKf,EAAE,CAACa,QAAQ,EAAA;kCACrDvB,aAAc,CAAA;AACbU,4BAAAA,EAAAA,EAAI,CAAC,OAAO,EAAEe,IAAAA,CAAKE,IAAI,CAAE,CAAA;AACzBhB,4BAAAA,cAAAA,EAAgBc,KAAKb;AACvB,yBAAA;AAJsBa,qBAAAA,EAAAA,IAAAA,CAAKf,EAAE,CAAA;AAOnC,iBAAA;;AAEF,0BAAAI,GAAA,CAACP,MAAMqB,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAAd,GAAA,CAACP,MAAMsB,IAAI,EAAA,EAAA;;;AAGjB;AAEA,MAAMC,QAAAA,GAAWC,SAAS;;;;;;;AAO1B,CAAC;AAED,MAAMC,cAAAA,GAAiBC,MAAOC,CAAAA,GAAG;AACpB,aAAA,EAAEJ,QAAS,CAAA;AACxB,CAAC;AAED,MAAMV,MAAAA,GAAS,kBACbN,GAACkB,CAAAA,cAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAlB,GAACqB,CAAAA,QAAAA,EAAAA,EAAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["cleanData","data","headers","reduce","acc","key","value","EditPage","formatMessage","useIntl","match","useMatch","id","params","isCreating","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","React","useCallback","isTriggering","setIsTriggering","useState","triggerResponse","setTriggerResponse","isLoading","webhooks","error","createWebhook","updateWebhook","triggerWebhook","useWebhooks","skip","useEffect","type","message","handleTriggerWebhook","res","defaultMessage","handleSubmit","helpers","isBaseQueryError","name","setErrors","replace","_jsx","Page","Loading","webhook","_jsxs","Main","Title","WebhookForm","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA;;AAEkG,qGAElG,MAAMA,SAAAA,GAAY,CAChBC,IAAAA,IAC6D;AAC7D,QAAA,GAAGA,IAAI;QACPC,OAASD,EAAAA,IAAAA,CAAKC,OAAO,CAACC,MAAM,CAA0C,CAACC,GAAAA,EAAK,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAA;AACxF,YAAA,IAAID,QAAQ,EAAI,EAAA;gBACdD,GAAG,CAACC,IAAI,GAAGC,KAAAA;AACb;YAEA,OAAOF,GAAAA;AACT,SAAA,EAAG,EAAC;KACN,CAAA;AAEA,MAAMG,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAQC,uBAAS,CAAA,wBAAA,CAAA;IACvB,MAAMC,EAAAA,GAAKF,OAAOG,MAAOD,CAAAA,EAAAA;AACzB,IAAA,MAAME,aAAaF,EAAO,KAAA,QAAA;AAE1B,IAAA,MAAMG,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,qCAAAA,EAAAA;AAEJ;;;AAGC;AAED,IAAA,MAAMC,oBAAuBC,GAAAA,gBAAAA,CAAMC,WAAW,CAACN,gBAAgB,EAAE,CAAA;AACjE,IAAA,MAAM,CAACO,YAAcC,EAAAA,eAAAA,CAAgB,GAAGH,gBAAAA,CAAMI,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAM,CAACC,eAAAA,EAAiBC,kBAAmB,CAAA,GAAGN,iBAAMI,QAAQ,EAAA;AAE5D,IAAA,MAAM,EAAEG,SAAS,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,aAAa,EAAEC,aAAa,EAAEC,cAAc,EAAE,GAAGC,uBACnF,CAAA;QAAE1B,EAAIA,EAAAA;KACN,EAAA;QACE2B,IAAMzB,EAAAA;AACR,KAAA,CAAA;AAGFW,IAAAA,gBAAAA,CAAMe,SAAS,CAAC,IAAA;AACd,QAAA,IAAIN,KAAO,EAAA;YACTjB,kBAAmB,CAAA;gBACjBwB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASlB,oBAAqBU,CAAAA,KAAAA;AAChC,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOjB,QAAAA,kBAAAA;AAAoBO,QAAAA;AAAqB,KAAA,CAAA;AAEpD,IAAA,MAAMmB,oBAAuB,GAAA,UAAA;QAC3B,IAAI;YACFf,eAAgB,CAAA,IAAA,CAAA;YAEhB,MAAMgB,GAAAA,GAAM,MAAMP,cAAezB,CAAAA,EAAAA,CAAAA;AAEjC,YAAA,IAAI,WAAWgC,GAAK,EAAA;gBAClB3B,kBAAmB,CAAA;oBACjBwB,IAAM,EAAA,QAAA;oBACNC,OAAStB,EAAAA,cAAAA,CAAewB,IAAIV,KAAK;AACnC,iBAAA,CAAA;AAEA,gBAAA;AACF;AAEAH,YAAAA,kBAAAA,CAAmBa,IAAI3C,IAAI,CAAA;AAC7B,SAAA,CAAE,OAAM;YACNgB,kBAAmB,CAAA;gBACjBwB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASlC,aAAc,CAAA;oBACrBI,EAAI,EAAA,oBAAA;oBACJiC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;SACQ,QAAA;YACRjB,eAAgB,CAAA,KAAA,CAAA;AAClB;AACF,KAAA;IAEA,MAAMkB,YAAAA,GAAiD,OAAO7C,IAAM8C,EAAAA,OAAAA,GAAAA;QAClE,IAAI;AACF,YAAA,IAAIjC,UAAY,EAAA;gBACd,MAAM8B,GAAAA,GAAM,MAAMT,aAAAA,CAAcnC,SAAUC,CAAAA,IAAAA,CAAAA,CAAAA;AAE1C,gBAAA,IAAI,WAAW2C,GAAK,EAAA;oBAClB,IAAII,0BAAAA,CAAiBJ,IAAIV,KAAK,CAAA,IAAKU,IAAIV,KAAK,CAACe,IAAI,KAAK,iBAAmB,EAAA;AACvEF,wBAAAA,OAAAA,CAAQG,SAAS,CAAC5B,sBAAuBsB,CAAAA,GAAAA,CAAIV,KAAK,CAAA,CAAA;qBAC7C,MAAA;wBACLjB,kBAAmB,CAAA;4BACjBwB,IAAM,EAAA,QAAA;4BACNC,OAAStB,EAAAA,cAAAA,CAAewB,IAAIV,KAAK;AACnC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;gBAEAjB,kBAAmB,CAAA;oBACjBwB,IAAM,EAAA,SAAA;AACNC,oBAAAA,OAAAA,EAASlC,aAAc,CAAA;wBAAEI,EAAI,EAAA;AAA4B,qBAAA;AAC3D,iBAAA,CAAA;gBAEAG,QAAS,CAAA,CAAC,YAAY,EAAE6B,GAAAA,CAAI3C,IAAI,CAACW,EAAE,CAAC,CAAC,EAAE;oBAAEuC,OAAS,EAAA;AAAK,iBAAA,CAAA;aAClD,MAAA;gBACL,MAAMP,GAAAA,GAAM,MAAMR,aAAc,CAAA;oBAAExB,EAAIA,EAAAA,EAAAA;AAAK,oBAAA,GAAGZ,UAAUC,IAAK;AAAC,iBAAA,CAAA;AAE9D,gBAAA,IAAI,WAAW2C,GAAK,EAAA;oBAClB,IAAII,0BAAAA,CAAiBJ,IAAIV,KAAK,CAAA,IAAKU,IAAIV,KAAK,CAACe,IAAI,KAAK,iBAAmB,EAAA;AACvEF,wBAAAA,OAAAA,CAAQG,SAAS,CAAC5B,sBAAuBsB,CAAAA,GAAAA,CAAIV,KAAK,CAAA,CAAA;qBAC7C,MAAA;wBACLjB,kBAAmB,CAAA;4BACjBwB,IAAM,EAAA,QAAA;4BACNC,OAAStB,EAAAA,cAAAA,CAAewB,IAAIV,KAAK;AACnC,yBAAA,CAAA;AACF;AAEA,oBAAA;AACF;gBAEAjB,kBAAmB,CAAA;oBACjBwB,IAAM,EAAA,SAAA;AACNC,oBAAAA,OAAAA,EAASlC,aAAc,CAAA;wBAAEI,EAAI,EAAA;AAAmC,qBAAA;AAClE,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAM;YACNK,kBAAmB,CAAA;gBACjBwB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASlC,aAAc,CAAA;oBACrBI,EAAI,EAAA,oBAAA;oBACJiC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;AAEA,IAAA,IAAIb,SAAW,EAAA;QACb,qBAAOoB,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,MAAM,CAACC,OAAAA,CAAQ,GAAGtB,QAAAA,IAAY,EAAE;AAEhC,IAAA,qBACEuB,eAACC,CAAAA,iBAAAA,EAAAA;;AACC,0BAAAL,cAAA,CAACC,iBAAKK,KAAK,EAAA;0BACRlD,aACC,CAAA;oBAAEI,EAAI,EAAA,oBAAA;oBAAsBiC,cAAgB,EAAA;iBAC5C,EAAA;oBACEI,IAAM,EAAA;AACR,iBAAA;;0BAGJG,cAACO,CAAAA,uBAAAA,EAAAA;gBACC1D,IAAMsD,EAAAA,OAAAA;gBACNT,YAAcA,EAAAA,YAAAA;gBACdT,cAAgBM,EAAAA,oBAAAA;gBAChB7B,UAAYA,EAAAA,UAAAA;gBACZa,YAAcA,EAAAA,YAAAA;gBACdG,eAAiBA,EAAAA;;;;AAIzB;AAEA;;AAEkG,2GAE5F8B,iBAAoB,GAAA,IAAA;AACxB,IAAA,MAAMC,cAAcC,sBAAiBC,CAAAA,gCAAAA,CAAAA;IAErC,qBACEX,cAAA,CAACC,iBAAKW,OAAO,EAAA;QAACH,WAAaA,EAAAA,WAAAA,CAAYI,QAAQ,EAAEhC,QAASiC,CAAAA,MAAAA;AACxD,QAAA,QAAA,gBAAAd,cAAC7C,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
1
+ {"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["cleanData","data","headers","reduce","acc","key","value","EditPage","formatMessage","useIntl","match","useMatch","id","params","isCreating","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","React","useCallback","isTriggering","setIsTriggering","useState","triggerResponse","setTriggerResponse","isLoading","webhooks","error","createWebhook","updateWebhook","triggerWebhook","useWebhooks","skip","useEffect","type","message","handleTriggerWebhook","res","defaultMessage","handleSubmit","helpers","isBaseQueryError","name","setErrors","replace","_jsx","Page","Loading","webhook","_jsxs","Main","Title","WebhookForm","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["cleanData","data","headers","reduce","acc","key","value","EditPage","formatMessage","useIntl","match","useMatch","id","params","isCreating","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","React","useCallback","isTriggering","setIsTriggering","useState","triggerResponse","setTriggerResponse","isLoading","webhooks","error","createWebhook","updateWebhook","triggerWebhook","useWebhooks","skip","useEffect","type","message","handleTriggerWebhook","res","defaultMessage","handleSubmit","helpers","isBaseQueryError","name","setErrors","replace","_jsx","Page","Loading","webhook","_jsxs","Main","Title","WebhookForm","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useMatch } from 'react-router-dom';\n\nimport { CreateWebhook, TriggerWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\n\nimport { WebhookForm, WebhookFormProps, WebhookFormValues } from './components/WebhookForm';\nimport { useWebhooks } from './hooks/useWebhooks';\n\nimport type { Modules } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst cleanData = (\n data: WebhookFormValues\n): Omit<CreateWebhook.Request['body'], 'id' | 'isEnabled'> => ({\n ...data,\n headers: data.headers.reduce<Modules.WebhookStore.Webhook['headers']>((acc, { key, value }) => {\n if (key !== '') {\n acc[key] = value;\n }\n\n return acc;\n }, {}),\n});\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/webhooks/:id');\n const id = match?.params.id;\n const isCreating = id === 'create';\n\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n /**\n * Prevents the notifications from showing up twice because the function identity\n * coming from the helper plugin is not stable\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stableFormatAPIError = React.useCallback(formatAPIError, []);\n const [isTriggering, setIsTriggering] = React.useState(false);\n const [triggerResponse, setTriggerResponse] = React.useState<TriggerWebhook.Response['data']>();\n\n const { isLoading, webhooks, error, createWebhook, updateWebhook, triggerWebhook } = useWebhooks(\n { id: id! },\n {\n skip: isCreating,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: stableFormatAPIError(error),\n });\n }\n }, [error, toggleNotification, stableFormatAPIError]);\n\n const handleTriggerWebhook = async () => {\n try {\n setIsTriggering(true);\n\n const res = await triggerWebhook(id!);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setTriggerResponse(res.data);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setIsTriggering(false);\n }\n };\n\n const handleSubmit: WebhookFormProps['handleSubmit'] = async (data, helpers) => {\n try {\n if (isCreating) {\n const res = await createWebhook(cleanData(data));\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.webhooks.created' }),\n });\n\n navigate(`../webhooks/${res.data.id}`, { replace: true });\n } else {\n const res = await updateWebhook({ id: id!, ...cleanData(data) });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n const [webhook] = webhooks ?? [];\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <WebhookForm\n data={webhook}\n handleSubmit={handleSubmit}\n triggerWebhook={handleTriggerWebhook}\n isCreating={isCreating}\n isTriggering={isTriggering}\n triggerResponse={triggerResponse}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <Page.Protect permissions={permissions.settings?.webhooks.update}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedEditPage, EditPage };\n"],"names":["cleanData","data","headers","reduce","acc","key","value","EditPage","formatMessage","useIntl","match","useMatch","id","params","isCreating","navigate","useNavigate","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","stableFormatAPIError","React","useCallback","isTriggering","setIsTriggering","useState","triggerResponse","setTriggerResponse","isLoading","webhooks","error","createWebhook","updateWebhook","triggerWebhook","useWebhooks","skip","useEffect","type","message","handleTriggerWebhook","res","defaultMessage","handleSubmit","helpers","isBaseQueryError","name","setErrors","replace","_jsx","Page","Loading","webhook","_jsxs","Main","Title","WebhookForm","ProtectedEditPage","permissions","useTypedSelector","selectAdminPermissions","Protect","settings","update"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","_Fragment","Title","name","Main","aria-busy","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","_Fragment","Title","name","Main","aria-busy","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}