@strapi/admin 5.31.1 → 5.31.3

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 (150) hide show
  1. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +2 -2
  2. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  3. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +1 -1
  4. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  5. package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -1
  6. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  7. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +2 -1
  8. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  9. package/dist/admin/admin/src/pages/Home/HomePage.js +1 -1
  10. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  11. package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
  12. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  13. package/dist/admin/admin/src/pages/ProfilePage.js +6 -0
  14. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  15. package/dist/admin/admin/src/pages/ProfilePage.mjs +6 -0
  16. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  17. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js +2 -0
  18. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
  19. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs +2 -0
  20. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
  21. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
  22. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  23. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
  24. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js +4 -4
  26. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs +4 -4
  28. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
  29. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js +1 -0
  30. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
  31. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs +1 -0
  32. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
  33. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +5 -5
  34. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  35. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +5 -5
  36. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  37. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -4
  38. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  39. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +4 -4
  40. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  41. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -4
  42. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  43. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +4 -4
  44. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  45. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -2
  46. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  47. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +4 -2
  48. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  49. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +4 -2
  50. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  51. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +4 -2
  52. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  53. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -1
  54. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  55. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +3 -1
  56. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  57. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -0
  58. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  59. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -0
  60. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  61. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +2 -1
  62. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +2 -1
  64. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +2 -1
  66. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs +2 -1
  68. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -0
  70. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +2 -0
  72. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +1 -0
  74. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -0
  76. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  77. package/dist/admin/admin/src/services/auth.js +1 -12
  78. package/dist/admin/admin/src/services/auth.js.map +1 -1
  79. package/dist/admin/admin/src/services/auth.mjs +2 -11
  80. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  81. package/dist/admin/admin/src/translations/vi.json.js +772 -129
  82. package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
  83. package/dist/admin/admin/src/translations/vi.json.mjs +764 -130
  84. package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
  85. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +7 -0
  86. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  87. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +7 -0
  88. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
  89. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +1 -1
  90. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
  91. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +1 -1
  92. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
  93. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
  94. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  95. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -0
  96. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  97. package/dist/admin/index.js +0 -2
  98. package/dist/admin/index.js.map +1 -1
  99. package/dist/admin/index.mjs +0 -1
  100. package/dist/admin/index.mjs.map +1 -1
  101. package/dist/admin/src/index.d.ts +0 -2
  102. package/dist/admin/src/services/auth.d.ts +2 -11
  103. package/dist/ee/server/src/ai/containers/ai.d.ts +4 -0
  104. package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -1
  105. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
  106. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
  107. package/dist/server/ee/server/src/ai/containers/ai.js +143 -1
  108. package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
  109. package/dist/server/ee/server/src/ai/containers/ai.mjs +143 -1
  110. package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
  111. package/dist/server/ee/server/src/ai/controllers/ai.js +7 -106
  112. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
  113. package/dist/server/ee/server/src/ai/controllers/ai.mjs +7 -106
  114. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
  115. package/dist/server/ee/server/src/ai/routes/ai.js +0 -3
  116. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
  117. package/dist/server/ee/server/src/ai/routes/ai.mjs +0 -3
  118. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
  119. package/dist/server/server/src/controllers/authenticated-user.js +0 -15
  120. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  121. package/dist/server/server/src/controllers/authenticated-user.mjs +0 -15
  122. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  123. package/dist/server/server/src/routes/users.js +0 -10
  124. package/dist/server/server/src/routes/users.js.map +1 -1
  125. package/dist/server/server/src/routes/users.mjs +0 -10
  126. package/dist/server/server/src/routes/users.mjs.map +1 -1
  127. package/dist/server/server/src/services/user.js +1 -143
  128. package/dist/server/server/src/services/user.js.map +1 -1
  129. package/dist/server/server/src/services/user.mjs +1 -143
  130. package/dist/server/server/src/services/user.mjs.map +1 -1
  131. package/dist/server/src/controllers/authenticated-user.d.ts +0 -1
  132. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  133. package/dist/server/src/controllers/index.d.ts +0 -1
  134. package/dist/server/src/controllers/index.d.ts.map +1 -1
  135. package/dist/server/src/index.d.ts +0 -5
  136. package/dist/server/src/index.d.ts.map +1 -1
  137. package/dist/server/src/routes/users.d.ts.map +1 -1
  138. package/dist/server/src/services/index.d.ts +0 -4
  139. package/dist/server/src/services/index.d.ts.map +1 -1
  140. package/dist/server/src/services/user.d.ts +0 -4
  141. package/dist/server/src/services/user.d.ts.map +1 -1
  142. package/dist/shared/contracts/ai.d.ts +1 -1
  143. package/dist/shared/contracts/users.d.ts +0 -32
  144. package/dist/shared/contracts/users.d.ts.map +1 -1
  145. package/package.json +9 -9
  146. package/dist/admin/admin/src/hooks/useAIAvailability.js +0 -13
  147. package/dist/admin/admin/src/hooks/useAIAvailability.js.map +0 -1
  148. package/dist/admin/admin/src/hooks/useAIAvailability.mjs +0 -11
  149. package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +0 -1
  150. package/dist/admin/src/hooks/useAIAvailability.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"RoleForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","type","Error","Textarea"],"mappings":"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"}
1
+ {"version":3,"file":"RoleForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item xs={12} col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","xs","col","Field","error","required","Label","TextInput","value","type","Error","Textarea"],"mappings":"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"}
@@ -238,7 +238,8 @@ const fieldsToPick = [
238
238
  gap: 5,
239
239
  children: LAYOUT.map((row)=>row.map(({ size, label, ...field })=>{
240
240
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
241
- col: size,
241
+ m: size,
242
+ xs: 12,
242
243
  direction: "column",
243
244
  alignItems: "stretch",
244
245
  children: /*#__PURE__*/ jsxRuntime.jsx(Renderer.InputRenderer, {
@@ -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 >\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 col={size}\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","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","col","InputRenderer","placeholder","undefined","xs","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(\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 >\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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,sBAAyBC,GAAAA,cAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAChD,IAAA,GAAGC,6BAAkB;AACrBC,IAAAA,QAAAA,EAAUJ,eAAIK,IAAI,EAAA;AAClBC,IAAAA,KAAAA,EAAON,cACJO,CAAAA,KAAK,EACLC,CAAAA,GAAG,CAAC,CAAG,EAAA;QACNC,EAAIC,EAAAA,iCAAAA,CAAiBC,QAAQ,CAACF,EAAE;QAChCG,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCD,QAAQ,CAAC;QACRF,EAAIC,EAAAA,iCAAAA,CAAiBC,QAAQ,CAACF,EAAE;QAChCG,cAAgB,EAAA;AAClB,KAAA;AACJ,CAAA,CAAA;AAEA,MAAMC,YAAe,GAAA;AAAC,IAAA,OAAA;AAAS,IAAA,WAAA;AAAa,IAAA,UAAA;AAAY,IAAA,UAAA;AAAY,IAAA,UAAA;AAAY,IAAA;AAAQ,CAAA;AAExF;;AAEkG,2GAE5FC,QAAW,GAAA,IAAA;IACf,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAQC,uBAAS,CAAA,qBAAA,CAAA;IACvB,MAAMT,EAAAA,GAAKQ,KAAOE,EAAAA,MAAAA,EAAQV,EAAM,IAAA,EAAA;AAChC,IAAA,MAAMW,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAMC,SAAAA,GAAYC,2BAChBC,CAAAA,uBAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,yFACF,KAAA,EACAC,WAAW,CAAA;AAEjB,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,qCAAAA,EAAAA;AAEJ,IAAA,MAAMC,cAAcC,sBAAiBC,CAAAA,gCAAAA,CAAAA;IAErC,MAAM,EACJC,SAAWC,EAAAA,aAAa,EACxBC,cAAAA,EAAgB,EAAEC,SAAS,EAAE,EAC9B,GAAGC,eAAQ,CAAA;AACVC,QAAAA,IAAAA,EAAMR,WAAYS,CAAAA,QAAQ,EAAEC,KAAAA,CAAMF,QAAQ,EAAE;AAC5CG,QAAAA,MAAAA,EAAQX,WAAYS,CAAAA,QAAQ,EAAEC,KAAAA,CAAMC,UAAU;AAChD,KAAA,CAAA;IAEA,MAAM,CAACC,WAAW,GAAGC,2BAAAA,EAAAA;IAErB,MAAM,EACJC,IAAI,EACJC,KAAK,EACLZ,SAAWa,EAAAA,mBAAmB,EAC/B,GAAGC,mBACF,CAAA;AAAEzC,QAAAA;KACF,EAAA;QACE0C,yBAA2B,EAAA;AAC7B,KAAA,CAAA;AAGF,IAAA,MAAM,CAACC,IAAAA,CAAK,GAAGL,IAAAA,EAAMJ,SAAS,EAAE;AAEhCU,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIN,KAAO,EAAA;;YAET,IAAIA,KAAAA,CAAMO,IAAI,KAAK,mBAAqB,EAAA;gBACtCjC,kBAAmB,CAAA;oBACjBkC,IAAM,EAAA,MAAA;AACNC,oBAAAA,OAAAA,EAAS1C,aAAc,CAAA;wBACrBN,EAAI,EAAA,0CAAA;wBACJG,cAAgB,EAAA;AAClB,qBAAA;AACF,iBAAA,CAAA;gBAEAQ,QAAS,CAAA,GAAA,CAAA;aACJ,MAAA;gBACLE,kBAAmB,CAAA;oBACjBkC,IAAM,EAAA,QAAA;AACNC,oBAAAA,OAAAA,EAAS5B,cAAemB,CAAAA,KAAAA;AAC1B,iBAAA,CAAA;AACF;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOnB,QAAAA,cAAAA;AAAgBd,QAAAA,aAAAA;AAAeK,QAAAA,QAAAA;AAAUE,QAAAA;AAAmB,KAAA,CAAA;IAEvE,MAAMc,SAAAA,GAAYa,mBAAuB,IAAA,CAACzB,SAAaa,IAAAA,aAAAA;AAEvD,IAAA,IAAID,SAAW,EAAA;QACb,qBAAOsB,cAAA,CAACC,iBAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAOA,IAAA,MAAMC,WAAc,GAAA;QAClB,GAAGC,IAAAA,CAAKV,MAAMvC,YAAa,CAAA;QAC3BP,KAAO8C,EAAAA,IAAAA,CAAK9C,KAAK,CAACyD,GAAG,CAAC,CAAC,EAAEtD,EAAE,EAAE,GAAKA,EAAAA,CAAAA;QAClCuD,QAAU,EAAA,EAAA;QACVC,eAAiB,EAAA;AACnB,KAAA;IAEA,MAAMC,YAAAA,GAAe,OAAOC,IAAmBC,EAAAA,OAAAA,GAAAA;AAC7C,QAAA,MAAM,EAAEH,eAAiBI,EAAAA,gBAAgB,EAAE,GAAGC,UAAU,GAAGH,IAAAA;QAE3D,MAAMI,GAAAA,GAAM,MAAM1B,UAAW,CAAA;AAC3BpC,YAAAA,EAAAA;AACA,YAAA,GAAG6D;AACL,SAAA,CAAA;AAEA,QAAA,IAAI,OAAWC,IAAAA,GAAAA,IAAOC,0BAAiBD,CAAAA,GAAAA,CAAIvB,KAAK,CAAG,EAAA;AACjD,YAAA,IAAIuB,GAAIvB,CAAAA,KAAK,CAACO,IAAI,KAAK,iBAAmB,EAAA;AACxCa,gBAAAA,OAAAA,CAAQK,SAAS,CAAC1C,sBAAuBwC,CAAAA,GAAAA,CAAIvB,KAAK,CAAA,CAAA;AACpD;YAEA1B,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,QAAA;gBACNC,OAAS5B,EAAAA,cAAAA,CAAe0C,IAAIvB,KAAK;AACnC,aAAA,CAAA;SACK,MAAA;YACL1B,kBAAmB,CAAA;gBACjBkC,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS1C,aAAc,CAAA;oBAAEN,EAAI,EAAA,4BAAA;oBAA8BG,cAAgB,EAAA;AAAQ,iBAAA;AACrF,aAAA,CAAA;AAEAwD,YAAAA,OAAAA,CAAQM,SAAS,CAAC;gBAChB,GAAGZ,IAAAA,CAAKK,MAAMtD,YAAa,CAAA;gBAC3BmD,QAAU,EAAA,EAAA;gBACVC,eAAiB,EAAA;AACnB,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACEU,eAAA,CAAChB,iBAAKiB,IAAI,EAAA;;AACR,0BAAAlB,cAAA,CAACC,iBAAKkB,KAAK,EAAA;0BACR9D,aACC,CAAA;oBAAEN,EAAI,EAAA,oBAAA;oBAAsBG,cAAgB,EAAA;iBAC5C,EAAA;oBACE2C,IAAM,EAAA;AACR,iBAAA;;0BAGJG,cAACoB,CAAAA,SAAAA,EAAAA;gBACCC,MAAO,EAAA,KAAA;gBACPC,QAAUd,EAAAA,YAAAA;gBACVe,aAAepB,EAAAA,WAAAA;gBACfqB,gBAAkBnF,EAAAA,sBAAAA;AAEjB,gBAAA,QAAA,EAAA,CAAC,EAAEoF,YAAY,EAAEC,QAAQ,EAAE,GAAA;oBAC1B,qBACET,eAAA,CAAAU,mBAAA,EAAA;;AACE,0CAAA3B,cAAA,CAAC4B,eAAQC,MAAM,EAAA;AACbC,gCAAAA,aAAAA,gBACE9B,cAAC+B,CAAAA,mBAAAA,EAAAA;oCACCC,QAAUP,EAAAA,YAAAA,IAAgB,CAAC5C,SAAAA,IAAa,CAAC6C,QAAAA;AACzCO,oCAAAA,SAAAA,gBAAWjC,cAACkC,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;oCACZC,OAASV,EAAAA,YAAAA;oCACT3B,IAAK,EAAA,QAAA;8CAEJzC,aAAc,CAAA;wCAAEN,EAAI,EAAA,aAAA;wCAAeG,cAAgB,EAAA;AAAO,qCAAA;;AAG/DkF,gCAAAA,KAAAA,EAAO/E,aACL,CAAA;oCACEN,EAAI,EAAA,4CAAA;oCACJG,cAAgB,EAAA;iCAElB,EAAA;;AAEE2C,oCAAAA,IAAAA,EAAMwC,sBAAelC,CAAAA,WAAAA;AACvB,iCAAA,CAAA;AAEFmC,gCAAAA,gBAAAA;8CAEEtC,cAACuC,CAAAA,gBAAAA,EAAAA;oCAAIC,OAAS,EAAA;wCAAEC,OAAS,EAAA,MAAA;wCAAQC,MAAQ,EAAA;AAAQ,qCAAA;AAC/C,oCAAA,QAAA,gBAAA1C,cAAC2C,CAAAA,qBAAAA,EAAAA;wCAAWC,QAAS,EAAA;;;;AAI3B,0CAAA3B,eAAA,CAACW,eAAQiB,OAAO,EAAA;;AACbnD,oCAAAA,IAAAA,EAAMoD,mCACL9C,cAACuC,CAAAA,gBAAAA,EAAAA;wCAAIQ,aAAe,EAAA,CAAA;AAClB,wCAAA,QAAA,gBAAA/C,cAAClC,CAAAA,SAAAA,EAAAA;AAAUgF,4CAAAA,iBAAAA,EAAmBpD,KAAKoD;;;kDAGvC7B,eAAC+B,CAAAA,iBAAAA,EAAAA;wCAAKC,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUC,GAAK,EAAA,CAAA;;0DACjDnD,cAACuC,CAAAA,gBAAAA,EAAAA;gDACCa,UAAW,EAAA,UAAA;gDACXC,SAAS,EAAA,IAAA;gDACTC,MAAO,EAAA,cAAA;gDACPC,UAAY,EAAA,CAAA;gDACZR,aAAe,EAAA,CAAA;gDACfS,WAAa,EAAA,CAAA;gDACbC,YAAc,EAAA,CAAA;AAEd,gDAAA,QAAA,gBAAAxC,eAAC+B,CAAAA,iBAAAA,EAAAA;oDAAKC,SAAU,EAAA,QAAA;oDAASC,UAAW,EAAA,SAAA;oDAAUC,GAAK,EAAA,CAAA;;sEACjDnD,cAAC0D,CAAAA,uBAAAA,EAAAA;4DAAWC,OAAQ,EAAA,OAAA;4DAAQC,GAAI,EAAA,IAAA;sEAC7BvG,aAAc,CAAA;gEACbN,EAAI,EAAA,0DAAA;gEACJG,cAAgB,EAAA;AAClB,6DAAA;;AAEF,sEAAA8C,cAAA,CAAC6D,kBAAKC,IAAI,EAAA;4DAACX,GAAK,EAAA,CAAA;AACbY,4DAAAA,QAAAA,EAAAA,MAAAA,CAAO1D,GAAG,CAAC,CAAC2D,GAAAA,GACXA,IAAI3D,GAAG,CAAC,CAAC,EAAE4D,IAAI,EAAEC,KAAK,EAAE,GAAGC,KAAO,EAAA,GAAA;oEAChC,qBACEnE,cAAA,CAAC6D,kBAAKO,IAAI,EAAA;wEAERC,CAAGJ,EAAAA,IAAAA;wEACHK,EAAI,EAAA,EAAA;wEACJrB,SAAU,EAAA,QAAA;wEACVC,UAAW,EAAA,SAAA;AAEX,wEAAA,QAAA,gBAAAlD,cAACuE,CAAAA,sBAAAA,EAAAA;AACE,4EAAA,GAAGJ,KAAK;AACTnC,4EAAAA,QAAAA,EAAU,CAACnD,SAAAA;AACXqF,4EAAAA,KAAAA,EAAO7G,aAAc6G,CAAAA,KAAAA,CAAAA;AACrBM,4EAAAA,WAAAA,EACE,aAAiBL,IAAAA,KAAAA,GACb9G,aAAc8G,CAAAA,KAAAA,CAAMK,WAAW,CAC/BC,GAAAA;;AAbHN,qEAAAA,EAAAA,KAAAA,CAAMtE,IAAI,CAAA;AAkBrB,iEAAA,CAAA;;;;;0DAKRG,cAACuC,CAAAA,gBAAAA,EAAAA;gDACCa,UAAW,EAAA,UAAA;gDACXC,SAAS,EAAA,IAAA;gDACTC,MAAO,EAAA,cAAA;gDACPC,UAAY,EAAA,CAAA;gDACZR,aAAe,EAAA,CAAA;gDACfS,WAAa,EAAA,CAAA;gDACbC,YAAc,EAAA,CAAA;AAEd,gDAAA,QAAA,gBAAAxC,eAAC+B,CAAAA,iBAAAA,EAAAA;oDAAKC,SAAU,EAAA,QAAA;oDAASC,UAAW,EAAA,SAAA;oDAAUC,GAAK,EAAA,CAAA;;sEACjDnD,cAAC0D,CAAAA,uBAAAA,EAAAA;4DAAWC,OAAQ,EAAA,OAAA;4DAAQC,GAAI,EAAA,IAAA;sEAC7BvG,aAAc,CAAA;gEACbN,EAAI,EAAA,cAAA;gEACJG,cAAgB,EAAA;AAClB,6DAAA;;AAEF,sEAAA8C,cAAA,CAAC6D,kBAAKC,IAAI,EAAA;4DAACX,GAAK,EAAA,CAAA;oFACdnD,cAAA,CAAC6D,kBAAKO,IAAI,EAAA;gEAACM,GAAK,EAAA,CAAA;gEAAGJ,EAAI,EAAA,EAAA;gEAAIrB,SAAU,EAAA,QAAA;gEAASC,UAAW,EAAA,SAAA;AACvD,gEAAA,QAAA,gBAAAlD,cAAC2E,CAAAA,uBAAAA,EAAAA;AAAY3C,oEAAAA,QAAAA,EAAU,CAACnD;;;;;;;;;;;;;AAS1C;;;;AAIR;AAEA;;AAEkG,qGAElG,MAAMkF,MAAS,GAAA;AACb,IAAA;AACE,QAAA;YACEG,KAAO,EAAA;gBACLnH,EAAI,EAAA,2BAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,WAAA;YACN2E,WAAa,EAAA;gBACXzH,EAAI,EAAA,iCAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA4C,IAAM,EAAA,QAAA;YACNmE,IAAM,EAAA,CAAA;YACNhH,QAAU,EAAA;AACZ,SAAA;AACA,QAAA;YACEiH,KAAO,EAAA;gBACLnH,EAAI,EAAA,0BAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,UAAA;YACN2E,WAAa,EAAA;gBACXzH,EAAI,EAAA,gCAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA4C,IAAM,EAAA,QAAA;YACNmE,IAAM,EAAA;AACR;AACD,KAAA;AACD,IAAA;AACE,QAAA;YACEC,KAAO,EAAA;gBACLnH,EAAI,EAAA,uBAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,OAAA;YACN2E,WAAa,EAAA;gBACXzH,EAAI,EAAA,6BAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA4C,IAAM,EAAA,OAAA;YACNmE,IAAM,EAAA,CAAA;YACNhH,QAAU,EAAA;AACZ,SAAA;AACA,QAAA;YACEiH,KAAO,EAAA;gBACLnH,EAAI,EAAA,0BAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,UAAA;YACN2E,WAAa,EAAA;gBACXzH,EAAI,EAAA,gCAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA4C,IAAM,EAAA,QAAA;YACNmE,IAAM,EAAA;AACR;AACD,KAAA;AACD,IAAA;AACE,QAAA;YACEW,YAAc,EAAA,cAAA;YACdV,KAAO,EAAA;gBACLnH,EAAI,EAAA,iBAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,UAAA;YACNC,IAAM,EAAA,UAAA;YACNmE,IAAM,EAAA;AACR,SAAA;AACA,QAAA;YACEW,YAAc,EAAA,cAAA;YACdV,KAAO,EAAA;gBACLnH,EAAI,EAAA,iCAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,iBAAA;YACNC,IAAM,EAAA,UAAA;YACNmE,IAAM,EAAA;AACR;AACD,KAAA;AACD,IAAA;AACE,QAAA;YACEC,KAAO,EAAA;gBACLnH,EAAI,EAAA,wBAAA;gBACJG,cAAgB,EAAA;AAClB,aAAA;YACA2C,IAAM,EAAA,UAAA;YACNC,IAAM,EAAA,SAAA;YACNmE,IAAM,EAAA;AACR;AACD;AACF,CAAA;AAED,MAAMY,iBAAoB,GAAA,IAAA;IACxB,MAAMtG,WAAAA,GAAcC,sBAAiB,CAAA,CAACsG,KAAUA,GAAAA,KAAAA,CAAMC,SAAS,CAACxG,WAAW,CAACS,QAAQ,EAAEC,KAAMF,CAAAA,IAAAA,CAAAA;IAE5F,qBACEiB,cAAA,CAACC,iBAAK+E,OAAO,EAAA;QAACzG,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAyB,cAAC5C,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
@@ -216,7 +216,8 @@ const fieldsToPick = [
216
216
  gap: 5,
217
217
  children: LAYOUT.map((row)=>row.map(({ size, label, ...field })=>{
218
218
  return /*#__PURE__*/ jsx(Grid.Item, {
219
- col: size,
219
+ m: size,
220
+ xs: 12,
220
221
  direction: "column",
221
222
  alignItems: "stretch",
222
223
  children: /*#__PURE__*/ jsx(MemoizedInputRenderer, {
@@ -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 >\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 col={size}\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","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","col","InputRenderer","placeholder","undefined","xs","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(\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 >\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","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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"}
@@ -151,7 +151,8 @@ const ModalForm = ({ onToggle })=>{
151
151
  children: FORM_LAYOUT.map((row)=>{
152
152
  return row.map(({ size, ...field })=>{
153
153
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
154
- col: size,
154
+ m: size,
155
+ xs: 12,
155
156
  direction: "column",
156
157
  alignItems: "stretch",
157
158
  children: /*#__PURE__*/ jsxRuntime.jsx(Renderer.InputRenderer, {
@@ -1 +1 @@
1
- {"version":3,"file":"NewUserForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_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] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\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 STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
1
+ {"version":3,"file":"NewUserForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...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={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_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] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\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 STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
@@ -129,7 +129,8 @@ const ModalForm = ({ onToggle })=>{
129
129
  children: FORM_LAYOUT.map((row)=>{
130
130
  return row.map(({ size, ...field })=>{
131
131
  return /*#__PURE__*/ jsx(Grid.Item, {
132
- col: size,
132
+ m: size,
133
+ xs: 12,
133
134
  direction: "column",
134
135
  alignItems: "stretch",
135
136
  children: /*#__PURE__*/ jsx(MemoizedInputRenderer, {
@@ -1 +1 @@
1
- {"version":3,"file":"NewUserForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_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] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\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 STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
1
+ {"version":3,"file":"NewUserForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\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\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...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={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_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] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\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 STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
@@ -72,6 +72,7 @@ const HeadersInput = ()=>{
72
72
  padding: 2,
73
73
  children: [
74
74
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
75
+ xs: 12,
75
76
  col: 6,
76
77
  direction: "column",
77
78
  alignItems: "stretch",
@@ -85,6 +86,7 @@ const HeadersInput = ()=>{
85
86
  })
86
87
  }),
87
88
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
89
+ xs: 12,
88
90
  col: 6,
89
91
  direction: "column",
90
92
  alignItems: "stretch",