@strapi/admin 5.58.0 → 5.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) 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/ConfirmDialog.js +10 -9
  4. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
  6. package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
  7. package/dist/admin/admin/src/components/Filters.js +57 -12
  8. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  9. package/dist/admin/admin/src/components/Filters.mjs +57 -12
  10. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  11. package/dist/admin/admin/src/components/Form.js +3 -1
  12. package/dist/admin/admin/src/components/Form.js.map +1 -1
  13. package/dist/admin/admin/src/components/Form.mjs +3 -1
  14. package/dist/admin/admin/src/components/Form.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
  16. package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
  17. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
  18. package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
  19. package/dist/admin/admin/src/components/LeftMenu.js +5 -1
  20. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  21. package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
  22. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/PageHelpers.js +2 -1
  24. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  25. package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
  26. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  27. package/dist/admin/admin/src/components/Pagination.js +7 -6
  28. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  29. package/dist/admin/admin/src/components/Pagination.mjs +7 -6
  30. package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
  31. package/dist/admin/admin/src/components/RelativeTime.js +2 -1
  32. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  33. package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
  34. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  35. package/dist/admin/admin/src/components/SubNav.js +6 -12
  36. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  37. package/dist/admin/admin/src/components/SubNav.mjs +7 -13
  38. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  39. package/dist/admin/admin/src/components/Table.js +3 -1
  40. package/dist/admin/admin/src/components/Table.js.map +1 -1
  41. package/dist/admin/admin/src/components/Table.mjs +3 -1
  42. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  43. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  44. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  46. package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
  47. package/dist/admin/admin/src/constants.js.map +1 -1
  48. package/dist/admin/admin/src/constants.mjs.map +1 -1
  49. package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
  50. package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
  51. package/dist/admin/admin/src/features/Auth.js +2 -1
  52. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  53. package/dist/admin/admin/src/features/Auth.mjs +2 -1
  54. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  55. package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
  56. package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
  57. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  58. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  60. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
  61. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  62. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  63. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  64. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  66. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
  68. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
  70. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
  72. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
  74. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
  76. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
  78. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
  80. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
  82. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  84. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  86. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
  88. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
  90. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -2
  92. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -2
  94. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -1
  98. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
  102. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
  104. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
  106. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
  108. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
  110. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
  112. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
  114. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
  116. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
  118. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  119. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
  120. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  121. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
  122. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  123. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  124. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  125. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
  126. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  127. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
  128. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  129. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  130. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  131. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  132. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  133. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  134. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  135. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
  136. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  137. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
  138. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
  139. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
  140. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  141. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
  142. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  143. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  144. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  145. package/dist/admin/admin/src/router.js.map +1 -1
  146. package/dist/admin/admin/src/router.mjs.map +1 -1
  147. package/dist/admin/admin/src/services/users.js.map +1 -1
  148. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  149. package/dist/admin/admin/src/translations/eu.json.js +1 -1
  150. package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
  151. package/dist/admin/admin/src/utils/cookies.js +7 -6
  152. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  153. package/dist/admin/admin/src/utils/cookies.mjs +7 -6
  154. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  155. package/dist/admin/admin/tests/utils.js +2 -1
  156. package/dist/admin/admin/tests/utils.js.map +1 -1
  157. package/dist/admin/admin/tests/utils.mjs +2 -1
  158. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  159. package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
  160. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
  161. package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
  162. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
  163. package/dist/admin/shared/utils/get-project-type.js +3 -3
  164. package/dist/admin/shared/utils/get-project-type.js.map +1 -1
  165. package/dist/admin/shared/utils/get-project-type.mjs +3 -3
  166. package/dist/admin/shared/utils/get-project-type.mjs.map +1 -1
  167. package/dist/admin/src/components/Filters.d.ts +1 -1
  168. package/dist/admin/src/components/Form.d.ts +1 -1
  169. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
  170. package/dist/admin/src/utils/cookies.d.ts +7 -6
  171. package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
  172. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  173. package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
  174. package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
  175. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
  176. package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
  177. package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
  178. package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
  179. package/dist/server/ee/server/src/validation/role.js +4 -2
  180. package/dist/server/ee/server/src/validation/role.js.map +1 -1
  181. package/dist/server/ee/server/src/validation/role.mjs +4 -2
  182. package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
  183. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  184. package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
  185. package/dist/server/server/src/controllers/admin.js +11 -12
  186. package/dist/server/server/src/controllers/admin.js.map +1 -1
  187. package/dist/server/server/src/controllers/admin.mjs +11 -12
  188. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  189. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  190. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  191. package/dist/server/server/src/services/api-token.js +4 -8
  192. package/dist/server/server/src/services/api-token.js.map +1 -1
  193. package/dist/server/server/src/services/api-token.mjs +4 -8
  194. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  195. package/dist/server/server/src/services/constants.js +4 -0
  196. package/dist/server/server/src/services/constants.js.map +1 -1
  197. package/dist/server/server/src/services/constants.mjs +4 -0
  198. package/dist/server/server/src/services/constants.mjs.map +1 -1
  199. package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
  200. package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
  201. package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
  202. package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
  203. package/dist/server/server/src/services/role.js +8 -5
  204. package/dist/server/server/src/services/role.js.map +1 -1
  205. package/dist/server/server/src/services/role.mjs +8 -5
  206. package/dist/server/server/src/services/role.mjs.map +1 -1
  207. package/dist/server/server/src/validation/admin-tokens.js +4 -4
  208. package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
  209. package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
  210. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
  211. package/dist/server/server/src/validation/api-tokens.js +4 -4
  212. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  213. package/dist/server/server/src/validation/api-tokens.mjs +4 -4
  214. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  215. package/dist/server/server/src/validation/role.js +6 -4
  216. package/dist/server/server/src/validation/role.js.map +1 -1
  217. package/dist/server/server/src/validation/role.mjs +6 -4
  218. package/dist/server/server/src/validation/role.mjs.map +1 -1
  219. package/dist/server/server/src/validation/transfer/token.js +4 -4
  220. package/dist/server/server/src/validation/transfer/token.js.map +1 -1
  221. package/dist/server/server/src/validation/transfer/token.mjs +4 -4
  222. package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
  223. package/dist/server/shared/utils/auth-cookie-path.js +13 -10
  224. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
  225. package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
  226. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
  227. package/dist/server/shared/utils/get-project-type.js +3 -3
  228. package/dist/server/shared/utils/get-project-type.js.map +1 -1
  229. package/dist/server/shared/utils/get-project-type.mjs +3 -3
  230. package/dist/server/shared/utils/get-project-type.mjs.map +1 -1
  231. package/dist/server/shared/utils/session-auth.js +70 -3
  232. package/dist/server/shared/utils/session-auth.js.map +1 -1
  233. package/dist/server/shared/utils/session-auth.mjs +70 -4
  234. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  235. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  236. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  237. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  238. package/dist/server/src/services/constants.d.ts +2 -0
  239. package/dist/server/src/services/constants.d.ts.map +1 -1
  240. package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
  241. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  242. package/dist/server/src/services/role.d.ts.map +1 -1
  243. package/dist/server/src/validation/role.d.ts.map +1 -1
  244. package/dist/shared/contracts/transfer.d.ts.map +1 -1
  245. package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
  246. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
  247. package/dist/shared/utils/session-auth.d.ts +16 -0
  248. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  249. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"EditView.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = {},\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = {},\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
1
+ {"version":3,"file":"EditView.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/TransferTokens/EditView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Formik, Form, FormikErrors, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useCreateTransferTokenMutation,\n useGetTransferTokenQuery,\n useUpdateTransferTokenMutation,\n} from '../../../../services/transferTokens';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { FormHead } from '../../components/Tokens/FormHead';\nimport { LifeSpanInput } from '../../components/Tokens/LifeSpanInput';\nimport { TokenBox } from '../../components/Tokens/TokenBox';\nimport { TokenDescription } from '../../components/Tokens/TokenDescription';\nimport { TokenName } from '../../components/Tokens/TokenName';\nimport { TokenTypeSelect } from '../../components/Tokens/TokenTypeSelect';\n\nimport type {\n TransferToken,\n SanitizedTransferToken,\n} from '../../../../../../shared/contracts/transfer';\n\nconst EMPTY_ERRORS: NonNullable<FormTransferTokenContainerProps['errors']> = {};\nconst EMPTY_TRANSFER_TOKEN: NonNullable<FormTransferTokenContainerProps['transferToken']> = {};\n\nconst schema = yup.object().shape({\n name: yup.string().max(100).required(translatedErrors.required.id),\n description: yup.string().nullable(),\n lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required.id),\n permissions: yup.string().required(translatedErrors.required.id),\n});\n\n/* -------------------------------------------------------------------------------------------------\n * EditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { state: locationState } = useLocation();\n const [transferToken, setTransferToken] = React.useState<\n TransferToken | SanitizedTransferToken | null\n >(\n locationState && 'accessKey' in locationState.transferToken\n ? {\n ...locationState.transferToken,\n }\n : null\n );\n const { trackUsage } = useTracking();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n allowedActions: { canCreate, canUpdate, canRegenerate },\n } = useRBAC(permissions);\n const match = useMatch('/settings/transfer-tokens/:id');\n\n const id = match?.params?.id;\n const isCreating = id === 'create';\n\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n React.useEffect(() => {\n trackUsage(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }, [isCreating, trackUsage]);\n\n const { data, error } = useGetTransferTokenQuery(id!, {\n skip: isCreating || transferToken !== null || !id,\n });\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n if (data) {\n setTransferToken(data);\n }\n }, [data]);\n\n const [createToken] = useCreateTransferTokenMutation();\n const [updateToken] = useUpdateTransferTokenMutation();\n\n const handleSubmit = async (body: FormValues, formik: FormikHelpers<FormValues>) => {\n trackUsage(isCreating ? 'willCreateToken' : 'willEditToken', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n const permissions = body.permissions.split('-');\n\n const isPermissionsTransferPermission = (\n permission: string[]\n ): permission is Array<'push' | 'pull'> => {\n if (permission.length === 1) {\n return permission[0] === 'push' || permission[0] === 'pull';\n }\n\n return permission[0] === 'push' && permission[1] === 'pull';\n };\n\n // this type-guard is necessary to satisfy the type for `permissions` in the request body,\n // because String.split returns stringp[]\n if (isPermissionsTransferPermission(permissions)) {\n try {\n if (isCreating) {\n const res = await createToken({\n ...body,\n // lifespan must be \"null\" for unlimited (0 would mean instantly expired and isn't accepted)\n lifespan:\n body?.lifespan && body.lifespan !== '0'\n ? parseInt(body.lifespan.toString(), 10)\n : null,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokencreated',\n defaultMessage: 'Transfer Token successfully created',\n }),\n });\n\n trackUsage('didCreateToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n\n navigate(`../transfer-tokens/${res.data.id.toString()}`, {\n replace: true,\n state: { transferToken: res.data },\n });\n } else {\n const res = await updateToken({\n id: id!,\n name: body.name,\n description: body.description,\n permissions,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n setTransferToken(res.data);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'notification.success.transfertokenedited',\n defaultMessage: 'Transfer Token successfully edited',\n }),\n });\n\n trackUsage('didEditToken', {\n type: transferToken?.permissions,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n }\n };\n\n const canEditInputs = (canUpdate && !isCreating) || (canCreate && isCreating);\n const isLoading = !isCreating && !transferToken;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Formik\n validationSchema={schema}\n validateOnChange={false}\n initialValues={\n {\n name: transferToken?.name || '',\n description: transferToken?.description || '',\n lifespan: transferToken?.lifespan || null,\n /**\n * We need to cast the permissions to satisfy the type for `permissions`\n * in the request body incase we don't have a transferToken and instead\n * use an empty string.\n */\n permissions: (transferToken?.permissions.join('-') ?? '') as FormValues['permissions'],\n } satisfies FormValues\n }\n enableReinitialize\n onSubmit={(body, actions) => handleSubmit(body, actions)}\n >\n {({ errors, handleChange, isSubmitting, values }) => {\n return (\n <Form>\n <FormHead\n title={{\n id: 'Settings.transferTokens.createPage.title',\n defaultMessage: 'TokenCreate Transfer Token',\n }}\n token={transferToken}\n setToken={setTransferToken}\n canShowToken={false}\n canEditInputs={canEditInputs}\n canRegenerate={canRegenerate}\n isSubmitting={isSubmitting}\n regenerateUrl=\"/admin/transfer/tokens/\"\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {transferToken &&\n Boolean(transferToken?.name) &&\n 'accessKey' in transferToken && (\n <TokenBox token={transferToken.accessKey} tokenType={TRANSFER_TOKEN_TYPE} />\n )}\n <FormTransferTokenContainer\n errors={errors}\n onChange={handleChange}\n canEditInputs={canEditInputs}\n isCreating={isCreating}\n values={values}\n transferToken={transferToken}\n />\n </Flex>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].read\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormTransferTokenContainer\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FormValues extends Pick<TransferToken, 'description' | 'name' | 'lifespan'> {\n permissions: Extract<TransferToken['permissions'][number], string>;\n}\n\ninterface FormTransferTokenContainerProps {\n errors: FormikErrors<FormValues>;\n onChange: ({ target: { name, value } }: { target: { name: string; value: string } }) => void;\n canEditInputs: boolean;\n values: FormValues;\n isCreating: boolean;\n transferToken: Partial<TransferToken> | null;\n}\n\nconst FormTransferTokenContainer = ({\n errors = EMPTY_ERRORS,\n onChange,\n canEditInputs,\n isCreating,\n values,\n transferToken = EMPTY_TRANSFER_TOKEN,\n}: FormTransferTokenContainerProps) => {\n const { formatMessage } = useIntl();\n\n const typeOptions = [\n {\n value: 'push',\n label: {\n id: 'Settings.transferTokens.types.push',\n defaultMessage: 'Push',\n },\n },\n {\n value: 'pull',\n label: {\n id: 'Settings.transferTokens.types.pull',\n defaultMessage: 'Pull',\n },\n },\n {\n value: 'push-pull',\n label: {\n id: 'Settings.transferTokens.types.push-pull',\n defaultMessage: 'Full Access',\n },\n },\n ];\n\n return (\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item key=\"name\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenName\n error={errors['name']}\n value={values['name']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"description\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenDescription\n error={errors['description']}\n value={values['description']}\n canEditInputs={canEditInputs}\n onChange={onChange}\n />\n </Grid.Item>\n <Grid.Item key=\"lifespan\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LifeSpanInput\n isCreating={isCreating}\n error={errors['lifespan']}\n value={values['lifespan']}\n onChange={onChange}\n token={transferToken}\n />\n </Grid.Item>\n <Grid.Item key=\"permissions\" col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <TokenTypeSelect\n name=\"permissions\"\n value={values['permissions']}\n error={errors['permissions']}\n label={{\n id: 'Settings.tokens.form.type',\n defaultMessage: 'Token type',\n }}\n // @ts-expect-error – DS Select passes number | string, will be fixed in V2\n onChange={(value: string) => {\n onChange({ target: { name: 'permissions', value } });\n }}\n options={typeOptions}\n canEditInputs={canEditInputs}\n />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { EditView, ProtectedEditView };\n"],"names":["EMPTY_ERRORS","EMPTY_TRANSFER_TOKEN","schema","yup","object","shape","name","string","max","required","translatedErrors","id","description","nullable","lifespan","number","integer","min","defined","permissions","EditView","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","state","locationState","useLocation","transferToken","setTransferToken","React","useState","trackUsage","useTracking","useTypedSelector","admin_app","settings","allowedActions","canCreate","canUpdate","canRegenerate","useRBAC","match","useMatch","params","isCreating","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","useEffect","tokenType","TRANSFER_TOKEN_TYPE","data","error","useGetTransferTokenQuery","skip","type","message","createToken","useCreateTransferTokenMutation","updateToken","useUpdateTransferTokenMutation","handleSubmit","body","formik","split","isPermissionsTransferPermission","permission","length","res","parseInt","toString","isBaseQueryError","setErrors","defaultMessage","replace","canEditInputs","isLoading","_jsx","Page","Loading","_jsxs","Main","Title","Formik","validationSchema","validateOnChange","initialValues","join","enableReinitialize","onSubmit","actions","errors","handleChange","isSubmitting","values","Form","FormHead","title","token","setToken","canShowToken","regenerateUrl","Layouts","Content","Flex","direction","alignItems","gap","Boolean","TokenBox","accessKey","FormTransferTokenContainer","onChange","ProtectedEditView","read","Protect","typeOptions","value","label","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","Item","col","xs","TokenName","TokenDescription","LifeSpanInput","TokenTypeSelect","target","options"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","fullWidth","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","m","xs","InputRenderer","placeholder","undefined","col","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE')\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","fullWidth","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","m","xs","InputRenderer","placeholder","undefined","col","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","fullWidth","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","m","xs","InputRenderer","placeholder","undefined","col","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/EditPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport pick from 'lodash/pick';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Update } from '../../../../../../shared/contracts/user';\nimport { Form, FormHelpers } from '../../../../components/Form';\nimport { InputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { useAdminUsers, useUpdateUserMutation } from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { MagicLinkCE } from './components/MagicLinkCE';\nimport { SelectRoles } from './components/SelectRoles';\nimport { COMMON_USER_SCHEMA } from './utils/validation';\n\nconst EDIT_VALIDATION_SCHEMA = yup.object().shape({\n ...COMMON_USER_SCHEMA,\n isActive: yup.bool(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst fieldsToPick = ['email', 'firstname', 'lastname', 'username', 'isActive', 'roles'] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditPage = () => {\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/users/:id');\n const id = match?.params?.id ?? '';\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE')\n ).MagicLinkEE\n );\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const permissions = useTypedSelector(selectAdminPermissions);\n\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate },\n } = useRBAC({\n read: permissions.settings?.users.read ?? [],\n update: permissions.settings?.users.update ?? [],\n });\n\n const [updateUser] = useUpdateUserMutation();\n\n const {\n data,\n error,\n isLoading: isLoadingAdminUsers,\n } = useAdminUsers(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [user] = data?.users ?? [];\n\n React.useEffect(() => {\n if (error) {\n // Redirect the user to the homepage if is not allowed to read\n if (error.name === 'UnauthorizedError') {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: 'notification.permission.not-allowed-read',\n defaultMessage: 'You are not allowed to see this document',\n }),\n });\n\n navigate('/');\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n }, [error, formatAPIError, formatMessage, navigate, toggleNotification]);\n\n const isLoading = isLoadingAdminUsers || !MagicLink || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n type InitialData = Pick<Update.Request['body'], (typeof fieldsToPick)[number]> & {\n confirmPassword: string;\n password: string;\n };\n\n const initialData = {\n ...pick(user, fieldsToPick),\n roles: user.roles.map(({ id }) => id),\n password: '',\n confirmPassword: '',\n } satisfies InitialData;\n\n const handleSubmit = async (body: InitialData, actions: FormHelpers<InitialData>) => {\n const { confirmPassword: _confirmPassword, ...bodyRest } = body;\n\n const res = await updateUser({\n id,\n ...bodyRest,\n });\n\n if ('error' in res && isBaseQueryError(res.error)) {\n if (res.error.name === 'ValidationError') {\n actions.setErrors(formatValidationErrors(res.error));\n }\n\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n } else {\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved', defaultMessage: 'Saved' }),\n });\n\n actions.setValues({\n ...pick(body, fieldsToPick),\n password: '',\n confirmPassword: '',\n });\n }\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={initialData}\n validationSchema={EDIT_VALIDATION_SCHEMA}\n >\n {({ isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n primaryAction={\n <Button\n disabled={isSubmitting || !canUpdate || !modified}\n startIcon={<Check />}\n loading={isSubmitting}\n type=\"submit\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n title={formatMessage(\n {\n id: 'app.containers.Users.EditPage.header.label',\n defaultMessage: 'Edit {name}',\n },\n {\n // @ts-expect-error – issues with the Entity ID type, still.\n name: getDisplayName(initialData),\n }\n )}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../users\" />\n </Box>\n }\n />\n <Layouts.Content>\n {user?.registrationToken && (\n <Box paddingBottom={6}>\n <MagicLink registrationToken={user.registrationToken} />\n </Box>\n )}\n <Flex direction=\"column\" alignItems=\"stretch\" gap={7}>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n <Grid.Root gap={5}>\n {LAYOUT.map((row) =>\n row.map(({ size, label, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={!canUpdate}\n label={formatMessage(label)}\n placeholder={\n 'placeholder' in field\n ? formatMessage(field.placeholder)\n : undefined\n }\n />\n </Grid.Item>\n );\n })\n )}\n </Grid.Root>\n </Flex>\n </Box>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={!canUpdate} />\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditPage LAYOUT\n * -----------------------------------------------------------------------------------------------*/\n\nconst LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.username.label',\n defaultMessage: 'Username',\n },\n name: 'username',\n placeholder: {\n id: 'Auth.form.username.placeholder',\n defaultMessage: 'e.g. Kai_Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n autoComplete: 'new-password',\n label: {\n id: 'global.password',\n defaultMessage: 'Password',\n },\n name: 'password',\n type: 'password' as const,\n size: 6,\n },\n {\n autoComplete: 'new-password',\n label: {\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Password confirmation',\n },\n name: 'confirmPassword',\n type: 'password' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.active.label',\n defaultMessage: 'Active',\n },\n name: 'isActive',\n type: 'boolean' as const,\n size: 6,\n },\n ],\n];\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\n"],"names":["EDIT_VALIDATION_SCHEMA","yup","object","shape","COMMON_USER_SCHEMA","isActive","bool","roles","array","min","id","translatedErrors","required","defaultMessage","fieldsToPick","EditPage","formatMessage","useIntl","match","useMatch","params","navigate","useNavigate","toggleNotification","useNotification","MagicLink","useEnterprise","MagicLinkCE","MagicLinkEE","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","permissions","useTypedSelector","selectAdminPermissions","isLoading","isLoadingRBAC","allowedActions","canUpdate","useRBAC","read","settings","users","update","updateUser","useUpdateUserMutation","data","error","isLoadingAdminUsers","useAdminUsers","refetchOnMountOrArgChange","user","React","useEffect","name","type","message","_jsx","Page","Loading","initialData","pick","map","password","confirmPassword","handleSubmit","body","actions","_confirmPassword","bodyRest","res","isBaseQueryError","setErrors","setValues","_jsxs","Main","Title","Form","method","onSubmit","initialValues","validationSchema","isSubmitting","modified","_Fragment","Layouts","Header","primaryAction","Button","disabled","startIcon","Check","loading","fullWidth","title","getDisplayName","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","registrationToken","paddingBottom","Flex","direction","alignItems","gap","background","hasRadius","shadow","paddingTop","paddingLeft","paddingRight","Typography","variant","tag","Grid","Root","LAYOUT","row","size","label","field","Item","m","xs","InputRenderer","placeholder","undefined","col","SelectRoles","autoComplete","ProtectedEditPage","state","admin_app","Protect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.js","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 {\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, object>, '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","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
+ {"version":3,"file":"ListPage.js","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('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE')\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 {\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, object>, '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","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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"}