@strapi/plugin-users-permissions 0.0.0-next.f0bfcece1007e5aa527570187635aefc86db536e → 0.0.0-next.f0f36e3df4b18f167036dcbca529dcb933bf4e1d

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 (111) hide show
  1. package/admin/src/components/Permissions/PermissionRow/SubCategory.jsx +8 -1
  2. package/admin/src/components/Policies/index.jsx +1 -0
  3. package/admin/src/components/UsersPermissions/index.jsx +1 -0
  4. package/admin/src/pages/EmailTemplates/components/EmailForm.jsx +2 -1
  5. package/admin/src/pages/Providers/index.jsx +74 -76
  6. package/admin/src/pages/Roles/pages/CreatePage.jsx +20 -7
  7. package/admin/src/pages/Roles/pages/EditPage.jsx +12 -7
  8. package/admin/src/pages/Roles/pages/ListPage/index.jsx +91 -93
  9. package/admin/src/translations/en.json +1 -0
  10. package/dist/admin/components/FormModal/Input/index.js.map +1 -1
  11. package/dist/admin/components/FormModal/Input/index.mjs.map +1 -1
  12. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js +3 -1
  13. package/dist/admin/components/Permissions/PermissionRow/SubCategory.js.map +1 -1
  14. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs +3 -1
  15. package/dist/admin/components/Permissions/PermissionRow/SubCategory.mjs.map +1 -1
  16. package/dist/admin/components/Permissions/PermissionRow/index.js.map +1 -1
  17. package/dist/admin/components/Permissions/PermissionRow/index.mjs.map +1 -1
  18. package/dist/admin/components/Policies/index.js +1 -0
  19. package/dist/admin/components/Policies/index.js.map +1 -1
  20. package/dist/admin/components/Policies/index.mjs +1 -0
  21. package/dist/admin/components/Policies/index.mjs.map +1 -1
  22. package/dist/admin/components/UsersPermissions/index.js +1 -0
  23. package/dist/admin/components/UsersPermissions/index.js.map +1 -1
  24. package/dist/admin/components/UsersPermissions/index.mjs +1 -0
  25. package/dist/admin/components/UsersPermissions/index.mjs.map +1 -1
  26. package/dist/admin/pages/EmailTemplates/components/EmailForm.js +2 -1
  27. package/dist/admin/pages/EmailTemplates/components/EmailForm.js.map +1 -1
  28. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs +2 -1
  29. package/dist/admin/pages/EmailTemplates/components/EmailForm.mjs.map +1 -1
  30. package/dist/admin/pages/Providers/index.js +84 -88
  31. package/dist/admin/pages/Providers/index.js.map +1 -1
  32. package/dist/admin/pages/Providers/index.mjs +84 -88
  33. package/dist/admin/pages/Providers/index.mjs.map +1 -1
  34. package/dist/admin/pages/Roles/pages/CreatePage.js +14 -1
  35. package/dist/admin/pages/Roles/pages/CreatePage.js.map +1 -1
  36. package/dist/admin/pages/Roles/pages/CreatePage.mjs +16 -3
  37. package/dist/admin/pages/Roles/pages/CreatePage.mjs.map +1 -1
  38. package/dist/admin/pages/Roles/pages/EditPage.js +13 -3
  39. package/dist/admin/pages/Roles/pages/EditPage.js.map +1 -1
  40. package/dist/admin/pages/Roles/pages/EditPage.mjs +14 -4
  41. package/dist/admin/pages/Roles/pages/EditPage.mjs.map +1 -1
  42. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.js.map +1 -1
  43. package/dist/admin/pages/Roles/pages/ListPage/components/TableBody.mjs.map +1 -1
  44. package/dist/admin/pages/Roles/pages/ListPage/index.js +95 -99
  45. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  46. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +95 -99
  47. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  48. package/dist/admin/translations/en.json.js +1 -0
  49. package/dist/admin/translations/en.json.js.map +1 -1
  50. package/dist/admin/translations/en.json.mjs +1 -0
  51. package/dist/admin/translations/en.json.mjs.map +1 -1
  52. package/dist/admin/utils/getTrad.js.map +1 -1
  53. package/dist/admin/utils/getTrad.mjs.map +1 -1
  54. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  55. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  56. package/dist/server/bootstrap/index.js +28 -7
  57. package/dist/server/bootstrap/index.js.map +1 -1
  58. package/dist/server/bootstrap/index.mjs +28 -7
  59. package/dist/server/bootstrap/index.mjs.map +1 -1
  60. package/dist/server/config.js +16 -0
  61. package/dist/server/config.js.map +1 -1
  62. package/dist/server/config.mjs +16 -0
  63. package/dist/server/config.mjs.map +1 -1
  64. package/dist/server/controllers/auth.js +204 -3
  65. package/dist/server/controllers/auth.js.map +1 -1
  66. package/dist/server/controllers/auth.mjs +204 -3
  67. package/dist/server/controllers/auth.mjs.map +1 -1
  68. package/dist/server/controllers/content-manager-user.js.map +1 -1
  69. package/dist/server/controllers/content-manager-user.mjs.map +1 -1
  70. package/dist/server/graphql/resolvers-configs.js.map +1 -1
  71. package/dist/server/graphql/resolvers-configs.mjs.map +1 -1
  72. package/dist/server/middlewares/rateLimit.js.map +1 -1
  73. package/dist/server/middlewares/rateLimit.mjs.map +1 -1
  74. package/dist/server/routes/content-api/auth.js +16 -0
  75. package/dist/server/routes/content-api/auth.js.map +1 -1
  76. package/dist/server/routes/content-api/auth.mjs +16 -0
  77. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  78. package/dist/server/routes/content-api/validation.js +1 -0
  79. package/dist/server/routes/content-api/validation.js.map +1 -1
  80. package/dist/server/routes/content-api/validation.mjs +1 -0
  81. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  82. package/dist/server/services/constants.js +19 -0
  83. package/dist/server/services/constants.js.map +1 -0
  84. package/dist/server/services/constants.mjs +17 -0
  85. package/dist/server/services/constants.mjs.map +1 -0
  86. package/dist/server/services/jwt.js +45 -2
  87. package/dist/server/services/jwt.js.map +1 -1
  88. package/dist/server/services/jwt.mjs +45 -2
  89. package/dist/server/services/jwt.mjs.map +1 -1
  90. package/dist/server/services/providers-registry.js.map +1 -1
  91. package/dist/server/services/providers-registry.mjs.map +1 -1
  92. package/dist/server/services/role.js.map +1 -1
  93. package/dist/server/services/role.mjs.map +1 -1
  94. package/dist/server/services/user.js +29 -20
  95. package/dist/server/services/user.js.map +1 -1
  96. package/dist/server/services/user.mjs +29 -20
  97. package/dist/server/services/user.mjs.map +1 -1
  98. package/dist/server/services/users-permissions.js +8 -0
  99. package/dist/server/services/users-permissions.js.map +1 -1
  100. package/dist/server/services/users-permissions.mjs +8 -0
  101. package/dist/server/services/users-permissions.mjs.map +1 -1
  102. package/package.json +9 -9
  103. package/server/bootstrap/index.js +31 -0
  104. package/server/config.js +22 -0
  105. package/server/controllers/auth.js +248 -8
  106. package/server/routes/content-api/auth.js +12 -0
  107. package/server/routes/content-api/validation.js +1 -0
  108. package/server/services/constants.js +9 -0
  109. package/server/services/jwt.js +50 -2
  110. package/server/services/user.js +11 -0
  111. package/server/services/users-permissions.js +2 -0
@@ -76,7 +76,7 @@ const CreatePage = ()=>{
76
76
  users: []
77
77
  });
78
78
  };
79
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Main, {
79
+ return /*#__PURE__*/ jsxRuntime.jsxs(admin.Page.Main, {
80
80
  children: [
81
81
  /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Title, {
82
82
  children: formatMessage({
@@ -115,6 +115,16 @@ const CreatePage = ()=>{
115
115
  subtitle: formatMessage({
116
116
  id: 'Settings.roles.create.description',
117
117
  defaultMessage: 'Define the rights given to the role'
118
+ }),
119
+ navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
120
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
121
+ display: {
122
+ initial: 'none',
123
+ medium: 'block'
124
+ },
125
+ children: /*#__PURE__*/ jsxRuntime.jsx(admin.BackButton, {
126
+ fallback: ".."
127
+ })
118
128
  })
119
129
  }),
120
130
  /*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Content, {
@@ -147,6 +157,7 @@ const CreatePage = ()=>{
147
157
  children: [
148
158
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
149
159
  col: 6,
160
+ xs: 12,
150
161
  direction: "column",
151
162
  alignItems: "stretch",
152
163
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
@@ -164,6 +175,7 @@ const CreatePage = ()=>{
164
175
  })
165
176
  }),
166
177
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.TextInput, {
178
+ type: "text",
167
179
  value: values.name || '',
168
180
  onChange: handleChange
169
181
  }),
@@ -173,6 +185,7 @@ const CreatePage = ()=>{
173
185
  }),
174
186
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
175
187
  col: 6,
188
+ xs: 12,
176
189
  direction: "column",
177
190
  alignItems: "stretch",
178
191
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage.js","sources":["../../../../../admin/src/pages/Roles/pages/CreatePage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Page, useTracking, useNotification, useFetchClient, Layouts } from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\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={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n"],"names":["CreatePage","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","isLoading","isLoadingPlugins","permissions","routes","usePlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","useFetchClient","mutation","useMutation","body","onError","type","message","id","defaultMessage","onSuccess","getTrad","handleCreateRoleSubmit","data","current","getPermissions","mutate","users","_jsxs","Main","_jsx","Page","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole"],"mappings":"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"}
1
+ {"version":3,"file":"CreatePage.js","sources":["../../../../../admin/src/pages/Roles/pages/CreatePage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n Field,\n Box,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n useTracking,\n useNotification,\n useFetchClient,\n Layouts,\n BackButton,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\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=\"..\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n"],"names":["CreatePage","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","isLoading","isLoadingPlugins","permissions","routes","usePlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","useFetchClient","mutation","useMutation","body","onError","type","message","id","defaultMessage","onSuccess","getTrad","handleCreateRoleSubmit","data","current","getPermissions","mutate","users","_jsxs","Page","Main","_jsx","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","xs","Field","error","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { Main, Button, Flex, Typography, Grid, Field, TextInput, Textarea } from '@strapi/design-system';
3
+ import { Button, Box, Flex, Typography, Grid, Field, TextInput, Textarea } from '@strapi/design-system';
4
4
  import { Check } from '@strapi/icons';
5
- import { Page, useNotification, useTracking, useFetchClient, Layouts } from '@strapi/strapi/admin';
5
+ import { Page, useNotification, useTracking, useFetchClient, Layouts, BackButton } from '@strapi/strapi/admin';
6
6
  import { Formik, Form } from 'formik';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { useMutation } from 'react-query';
@@ -55,7 +55,7 @@ const CreatePage = ()=>{
55
55
  users: []
56
56
  });
57
57
  };
58
- return /*#__PURE__*/ jsxs(Main, {
58
+ return /*#__PURE__*/ jsxs(Page.Main, {
59
59
  children: [
60
60
  /*#__PURE__*/ jsx(Page.Title, {
61
61
  children: formatMessage({
@@ -94,6 +94,16 @@ const CreatePage = ()=>{
94
94
  subtitle: formatMessage({
95
95
  id: 'Settings.roles.create.description',
96
96
  defaultMessage: 'Define the rights given to the role'
97
+ }),
98
+ navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
99
+ /*#__PURE__*/ jsx(Box, {
100
+ display: {
101
+ initial: 'none',
102
+ medium: 'block'
103
+ },
104
+ children: /*#__PURE__*/ jsx(BackButton, {
105
+ fallback: ".."
106
+ })
97
107
  })
98
108
  }),
99
109
  /*#__PURE__*/ jsx(Layouts.Content, {
@@ -126,6 +136,7 @@ const CreatePage = ()=>{
126
136
  children: [
127
137
  /*#__PURE__*/ jsx(Grid.Item, {
128
138
  col: 6,
139
+ xs: 12,
129
140
  direction: "column",
130
141
  alignItems: "stretch",
131
142
  children: /*#__PURE__*/ jsxs(Field.Root, {
@@ -143,6 +154,7 @@ const CreatePage = ()=>{
143
154
  })
144
155
  }),
145
156
  /*#__PURE__*/ jsx(TextInput, {
157
+ type: "text",
146
158
  value: values.name || '',
147
159
  onChange: handleChange
148
160
  }),
@@ -152,6 +164,7 @@ const CreatePage = ()=>{
152
164
  }),
153
165
  /*#__PURE__*/ jsx(Grid.Item, {
154
166
  col: 6,
167
+ xs: 12,
155
168
  direction: "column",
156
169
  alignItems: "stretch",
157
170
  children: /*#__PURE__*/ jsxs(Field.Root, {
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage.mjs","sources":["../../../../../admin/src/pages/Roles/pages/CreatePage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Page, useTracking, useNotification, useFetchClient, Layouts } from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\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={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n"],"names":["CreatePage","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","isLoading","isLoadingPlugins","permissions","routes","usePlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","useFetchClient","mutation","useMutation","body","onError","type","message","id","defaultMessage","onSuccess","getTrad","handleCreateRoleSubmit","data","current","getPermissions","mutate","users","_jsxs","Main","_jsx","Page","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole"],"mappings":";;;;;;;;;;;;;;;MAyBaA,UAAa,GAAA,IAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEC,WAAWC,gBAAgB,EAAEC,WAAW,EAAEC,MAAM,EAAE,GAAGC,UAAAA,EAAAA;IAC7D,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;IACvB,MAAMC,cAAAA,GAAiBC,MAAMC,MAAM,EAAA;IACnC,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;IACjB,MAAMC,QAAAA,GAAWC,YAAY,CAACC,IAAAA,GAASJ,KAAK,CAAC,wBAAwB,CAAC,EAAEI,IAAO,CAAA,EAAA;AAC7EC,QAAAA,OAAAA,CAAAA,GAAAA;YACEnB,kBAAmB,CAAA;gBACjBoB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASvB,aAAc,CAAA;oBACrBwB,EAAI,EAAA,oBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,SAAA;AAEAC,QAAAA,SAAAA,CAAAA,GAAAA;YACEf,UAAW,CAAA,eAAA,CAAA;YAEXT,kBAAmB,CAAA;gBACjBoB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASvB,aAAc,CAAA;AACrBwB,oBAAAA,EAAAA,EAAIG,OAAQ,CAAA,wBAAA,CAAA;oBACZF,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;;AAGArB,YAAAA,QAAAA,CAAS,CAAC,CAAA,CAAA;AACZ;AACF,KAAA,CAAA;AAEA,IAAA,MAAMwB,yBAAyB,OAAOC,IAAAA,GAAAA;;;;AAIpC,QAAA,MAAMrB,WAAcK,GAAAA,cAAAA,CAAeiB,OAAO,CAACC,cAAc,EAAA;QAEzD,MAAMb,QAAAA,CAASc,MAAM,CAAC;AAAE,YAAA,GAAGH,IAAI;AAAE,YAAA,GAAGrB,WAAW;AAAEyB,YAAAA,KAAAA,EAAO;AAAG,SAAA,CAAA;AAC7D,KAAA;AAEA,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;;AACC,0BAAAC,GAAA,CAACC,KAAKC,KAAK,EAAA;0BACRtC,aACC,CAAA;oBAAEwB,EAAI,EAAA,oBAAA;oBAAsBC,cAAgB,EAAA;iBAC5C,EAAA;oBAAEc,IAAM,EAAA;AAAQ,iBAAA;;0BAGpBH,GAACI,CAAAA,MAAAA,EAAAA;gBACCC,kBAAkB,EAAA,IAAA;gBAClBC,aAAe,EAAA;oBAAEH,IAAM,EAAA,EAAA;oBAAII,WAAa,EAAA;AAAG,iBAAA;gBAC3CC,QAAUhB,EAAAA,sBAAAA;gBACViB,gBAAkBC,EAAAA,gBAAAA;0BAEjB,CAAC,EAAEC,YAAY,EAAEC,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAE,iBAC9ChB,IAACiB,CAAAA,IAAAA,EAAAA;wBAAKC,UAAU,EAAA,IAAA;wBAACR,QAAUG,EAAAA,YAAAA;;AACzB,0CAAAX,GAAA,CAACiB,QAAQC,MAAM,EAAA;gCACbC,aACE,EAAA,CAAChD,kCACC6B,GAACoB,CAAAA,MAAAA,EAAAA;oCAAOlC,IAAK,EAAA,QAAA;AAASmC,oCAAAA,OAAAA,EAASvC,SAASZ,SAAS;AAAEoD,oCAAAA,SAAAA,gBAAWtB,GAACuB,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;8CAC5D3D,aAAc,CAAA;wCACbwB,EAAI,EAAA,aAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;AAINmC,gCAAAA,KAAAA,EAAO5D,aAAc,CAAA;oCACnBwB,EAAI,EAAA,6BAAA;oCACJC,cAAgB,EAAA;AAClB,iCAAA,CAAA;AACAoC,gCAAAA,QAAAA,EAAU7D,aAAc,CAAA;oCACtBwB,EAAI,EAAA,mCAAA;oCACJC,cAAgB,EAAA;AAClB,iCAAA;;AAEF,0CAAAW,GAAA,CAACiB,QAAQS,OAAO,EAAA;AACd,gCAAA,QAAA,gBAAA5B,IAAC6B,CAAAA,IAAAA,EAAAA;oCACCC,UAAW,EAAA,UAAA;oCACXC,SAAU,EAAA,QAAA;oCACVC,UAAW,EAAA,SAAA;oCACXC,GAAK,EAAA,CAAA;oCACLC,SAAS,EAAA,IAAA;oCACTC,UAAY,EAAA,CAAA;oCACZC,aAAe,EAAA,CAAA;oCACfC,WAAa,EAAA,CAAA;oCACbC,YAAc,EAAA,CAAA;oCACdC,MAAO,EAAA,cAAA;;sDAEPvC,IAAC6B,CAAAA,IAAAA,EAAAA;4CAAKE,SAAU,EAAA,QAAA;4CAASC,UAAW,EAAA,SAAA;;8DAClC9B,GAACsC,CAAAA,UAAAA,EAAAA;oDAAWC,OAAQ,EAAA,OAAA;oDAAQC,GAAI,EAAA,IAAA;8DAC7B5E,aAAc,CAAA;AACbwB,wDAAAA,EAAAA,EAAIG,OAAQ,CAAA,qBAAA,CAAA;wDACZF,cAAgB,EAAA;AAClB,qDAAA;;AAGF,8DAAAS,IAAA,CAAC2C,KAAKC,IAAI,EAAA;oDAACX,GAAK,EAAA,CAAA;;AACd,sEAAA/B,GAAA,CAACyC,KAAKE,IAAI,EAAA;4DAACC,GAAK,EAAA,CAAA;4DAAGf,SAAU,EAAA,QAAA;4DAASC,UAAW,EAAA,SAAA;oFAC/ChC,IAAA,CAAC+C,MAAMH,IAAI,EAAA;gEACTvC,IAAK,EAAA,MAAA;gEACL2C,KACEhC,EAAAA,MAAAA,EAAQX,OACJvC,aAAc,CAAA;AAAEwB,oEAAAA,EAAAA,EAAI0B,OAAOX,IAAI;oEAAEd,cAAgB,EAAA;iEACjD,CAAA,GAAA,KAAA;gEAEN0D,QAAQ,EAAA,IAAA;;AAER,kFAAA/C,GAAA,CAAC6C,MAAMG,KAAK,EAAA;kFACTpF,aAAc,CAAA;4EACbwB,EAAI,EAAA,aAAA;4EACJC,cAAgB,EAAA;AAClB,yEAAA;;kFAEFW,GAACiD,CAAAA,SAAAA,EAAAA;wEAAUC,KAAOtC,EAAAA,MAAAA,CAAOT,IAAI,IAAI,EAAA;wEAAIgD,QAAUtC,EAAAA;;AAC/C,kFAAAb,GAAA,CAAC6C,MAAMO,KAAK,EAAA,EAAA;;;;AAGhB,sEAAApD,GAAA,CAACyC,KAAKE,IAAI,EAAA;4DAACC,GAAK,EAAA,CAAA;4DAAGf,SAAU,EAAA,QAAA;4DAASC,UAAW,EAAA,SAAA;oFAC/ChC,IAAA,CAAC+C,MAAMH,IAAI,EAAA;gEACTvC,IAAK,EAAA,aAAA;gEACL2C,KACEhC,EAAAA,MAAAA,EAAQP,cACJ3C,aAAc,CAAA;AACZwB,oEAAAA,EAAAA,EAAI0B,OAAOP,WAAW;oEACtBlB,cAAgB,EAAA;iEAElB,CAAA,GAAA,KAAA;gEAEN0D,QAAQ,EAAA,IAAA;;AAER,kFAAA/C,GAAA,CAAC6C,MAAMG,KAAK,EAAA;kFACTpF,aAAc,CAAA;4EACbwB,EAAI,EAAA,oBAAA;4EACJC,cAAgB,EAAA;AAClB,yEAAA;;kFAEFW,GAACqD,CAAAA,QAAAA,EAAAA;wEAASH,KAAOtC,EAAAA,MAAAA,CAAOL,WAAW,IAAI,EAAA;wEAAI4C,QAAUtC,EAAAA;;AACrD,kFAAAb,GAAA,CAAC6C,MAAMO,KAAK,EAAA,EAAA;;;;;;;;AAMnB,wCAAA,CAACjF,kCACA6B,GAACsD,CAAAA,gBAAAA,EAAAA;4CACCC,GAAK9E,EAAAA,cAAAA;4CACLL,WAAaA,EAAAA,WAAAA;4CACbC,MAAQA,EAAAA;;;;;;;;;;AAU5B;AAEamF,MAAAA,wBAAAA,GAA2B,kBACtCxD,GAAA,CAACC,KAAKwD,OAAO,EAAA;AAACrF,QAAAA,WAAAA,EAAasF,YAAYC,UAAU;AAC/C,QAAA,QAAA,gBAAA3D,GAACrC,CAAAA,UAAAA,EAAAA,EAAAA;AAEH,KAAA;;;;"}
1
+ {"version":3,"file":"CreatePage.mjs","sources":["../../../../../admin/src/pages/Roles/pages/CreatePage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n Field,\n Box,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n useTracking,\n useNotification,\n useFetchClient,\n Layouts,\n BackButton,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\nimport { useNavigate } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const CreatePage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const { isLoading: isLoadingPlugins, permissions, routes } = usePlugins();\n const { trackUsage } = useTracking();\n const permissionsRef = React.useRef();\n const { post } = useFetchClient();\n const mutation = useMutation((body) => post(`/users-permissions/roles`, body), {\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n },\n\n onSuccess() {\n trackUsage('didCreateRole');\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role created',\n }),\n });\n\n // Forcing redirecting since we don't have the id in the response\n navigate(-1);\n },\n });\n\n const handleCreateRoleSubmit = async (data) => {\n // TODO: refactor. Child -> parent component communication is evil;\n // We should either move the provider one level up or move the state\n // straight into redux.\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: '', description: '' }}\n onSubmit={handleCreateRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins && (\n <Button type=\"submit\" loading={mutation.isLoading} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n )\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\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=\"..\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\">\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({ id: errors.name, defaultMessage: 'Name is required' })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesCreatePage = () => (\n <Page.Protect permissions={PERMISSIONS.createRole}>\n <CreatePage />\n </Page.Protect>\n);\n"],"names":["CreatePage","formatMessage","useIntl","toggleNotification","useNotification","navigate","useNavigate","isLoading","isLoadingPlugins","permissions","routes","usePlugins","trackUsage","useTracking","permissionsRef","React","useRef","post","useFetchClient","mutation","useMutation","body","onError","type","message","id","defaultMessage","onSuccess","getTrad","handleCreateRoleSubmit","data","current","getPermissions","mutate","users","_jsxs","Page","Main","_jsx","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","loading","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","xs","Field","error","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesCreatePage","Protect","PERMISSIONS","createRole"],"mappings":"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"}
@@ -81,7 +81,7 @@ const EditPage = ()=>{
81
81
  if (isLoadingRole) {
82
82
  return /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Loading, {});
83
83
  }
84
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Main, {
84
+ return /*#__PURE__*/ jsxRuntime.jsxs(admin.Page.Main, {
85
85
  children: [
86
86
  /*#__PURE__*/ jsxRuntime.jsx(admin.Page.Title, {
87
87
  children: formatMessage({
@@ -116,8 +116,15 @@ const EditPage = ()=>{
116
116
  }) : null,
117
117
  title: role.name,
118
118
  subtitle: role.description,
119
- navigationAction: /*#__PURE__*/ jsxRuntime.jsx(admin.BackButton, {
120
- fallback: ".."
119
+ navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
120
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
121
+ display: {
122
+ initial: 'none',
123
+ medium: 'block'
124
+ },
125
+ children: /*#__PURE__*/ jsxRuntime.jsx(admin.BackButton, {
126
+ fallback: ".."
127
+ })
121
128
  })
122
129
  }),
123
130
  /*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Content, {
@@ -151,6 +158,7 @@ const EditPage = ()=>{
151
158
  children: [
152
159
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
153
160
  col: 6,
161
+ xs: 12,
154
162
  direction: "column",
155
163
  alignItems: "stretch",
156
164
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
@@ -168,6 +176,7 @@ const EditPage = ()=>{
168
176
  })
169
177
  }),
170
178
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.TextInput, {
179
+ type: "text",
171
180
  value: values.name || '',
172
181
  onChange: handleChange
173
182
  }),
@@ -177,6 +186,7 @@ const EditPage = ()=>{
177
186
  }),
178
187
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
179
188
  col: 6,
189
+ xs: 12,
180
190
  direction: "column",
181
191
  alignItems: "stretch",
182
192
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.js","sources":["../../../../../admin/src/pages/Roles/pages/EditPage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Main,\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\n navigationAction={<BackButton fallback=\"..\" />}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\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={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n"],"names":["EditPage","formatMessage","useIntl","toggleNotification","useNotification","params","id","useMatch","get","useFetchClient","isLoading","isLoadingPlugins","routes","usePlugins","data","role","isLoadingRole","refetch","refetchRole","useQuery","permissionsRef","React","useRef","put","formatAPIError","useAPIErrorHandler","mutation","useMutation","body","onError","error","type","message","onSuccess","getTrad","defaultMessage","handleEditRoleSubmit","permissions","current","getPermissions","mutate","users","_jsx","Page","Loading","_jsxs","Main","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","disabled","code","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","Field","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesEditPage","Protect","PERMISSIONS","updateRole"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage.js","sources":["../../../../../admin/src/pages/Roles/pages/EditPage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n Box,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\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=\"..\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n"],"names":["EditPage","formatMessage","useIntl","toggleNotification","useNotification","params","id","useMatch","get","useFetchClient","isLoading","isLoadingPlugins","routes","usePlugins","data","role","isLoadingRole","refetch","refetchRole","useQuery","permissionsRef","React","useRef","put","formatAPIError","useAPIErrorHandler","mutation","useMutation","body","onError","error","type","message","onSuccess","getTrad","defaultMessage","handleEditRoleSubmit","permissions","current","getPermissions","mutate","users","_jsx","Page","Loading","_jsxs","Main","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","disabled","code","loading","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","xs","Field","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesEditPage","Protect","PERMISSIONS","updateRole"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { Main, Button, Flex, Typography, Grid, Field, TextInput, Textarea } from '@strapi/design-system';
3
+ import { Button, Box, Flex, Typography, Grid, Field, TextInput, Textarea } from '@strapi/design-system';
4
4
  import { Check } from '@strapi/icons';
5
5
  import { Page, useNotification, useFetchClient, useAPIErrorHandler, Layouts, BackButton } from '@strapi/strapi/admin';
6
6
  import { Formik, Form } from 'formik';
@@ -60,7 +60,7 @@ const EditPage = ()=>{
60
60
  if (isLoadingRole) {
61
61
  return /*#__PURE__*/ jsx(Page.Loading, {});
62
62
  }
63
- return /*#__PURE__*/ jsxs(Main, {
63
+ return /*#__PURE__*/ jsxs(Page.Main, {
64
64
  children: [
65
65
  /*#__PURE__*/ jsx(Page.Title, {
66
66
  children: formatMessage({
@@ -95,8 +95,15 @@ const EditPage = ()=>{
95
95
  }) : null,
96
96
  title: role.name,
97
97
  subtitle: role.description,
98
- navigationAction: /*#__PURE__*/ jsx(BackButton, {
99
- fallback: ".."
98
+ navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
99
+ /*#__PURE__*/ jsx(Box, {
100
+ display: {
101
+ initial: 'none',
102
+ medium: 'block'
103
+ },
104
+ children: /*#__PURE__*/ jsx(BackButton, {
105
+ fallback: ".."
106
+ })
100
107
  })
101
108
  }),
102
109
  /*#__PURE__*/ jsx(Layouts.Content, {
@@ -130,6 +137,7 @@ const EditPage = ()=>{
130
137
  children: [
131
138
  /*#__PURE__*/ jsx(Grid.Item, {
132
139
  col: 6,
140
+ xs: 12,
133
141
  direction: "column",
134
142
  alignItems: "stretch",
135
143
  children: /*#__PURE__*/ jsxs(Field.Root, {
@@ -147,6 +155,7 @@ const EditPage = ()=>{
147
155
  })
148
156
  }),
149
157
  /*#__PURE__*/ jsx(TextInput, {
158
+ type: "text",
150
159
  value: values.name || '',
151
160
  onChange: handleChange
152
161
  }),
@@ -156,6 +165,7 @@ const EditPage = ()=>{
156
165
  }),
157
166
  /*#__PURE__*/ jsx(Grid.Item, {
158
167
  col: 6,
168
+ xs: 12,
159
169
  direction: "column",
160
170
  alignItems: "stretch",
161
171
  children: /*#__PURE__*/ jsxs(Field.Root, {
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage.mjs","sources":["../../../../../admin/src/pages/Roles/pages/EditPage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Main,\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\n navigationAction={<BackButton fallback=\"..\" />}\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput value={values.name || ''} onChange={handleChange} />\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={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n"],"names":["EditPage","formatMessage","useIntl","toggleNotification","useNotification","params","id","useMatch","get","useFetchClient","isLoading","isLoadingPlugins","routes","usePlugins","data","role","isLoadingRole","refetch","refetchRole","useQuery","permissionsRef","React","useRef","put","formatAPIError","useAPIErrorHandler","mutation","useMutation","body","onError","error","type","message","onSuccess","getTrad","defaultMessage","handleEditRoleSubmit","permissions","current","getPermissions","mutate","users","_jsx","Page","Loading","_jsxs","Main","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","disabled","code","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","Field","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesEditPage","Protect","PERMISSIONS","updateRole"],"mappings":";;;;;;;;;;;;;;;MAgCaA,QAAW,GAAA,IAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EACJC,MAAQ,EAAA,EAAEC,EAAE,EAAE,EACf,GAAGC,QAAAA,CAAS,CAAC,qCAAqC,CAAC,CAAA;IACpD,MAAM,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;AAChB,IAAA,MAAM,EAAEC,SAAWC,EAAAA,gBAAgB,EAAEC,MAAM,EAAE,GAAGC,UAAAA,EAAAA;IAChD,MAAM,EACJC,IAAMC,EAAAA,IAAI,EACVL,SAAAA,EAAWM,aAAa,EACxBC,OAASC,EAAAA,WAAW,EACrB,GAAGC,QAAS,CAAA;AAAC,QAAA,mBAAA;AAAqB,QAAA,MAAA;AAAQb,QAAAA;KAAG,EAAE,UAAA;;AAE9C,QAAA,MAAM,EACJQ,IAAAA,EAAM,EAAEC,IAAI,EAAE,EACf,GAAG,MAAMP,GAAI,CAAA,CAAC,yBAAyB,EAAEF,GAAG,CAAC,CAAA;QAE9C,OAAOS,IAAAA;AACT,KAAA,CAAA;IAEA,MAAMK,cAAAA,GAAiBC,MAAMC,MAAM,EAAA;IACnC,MAAM,EAAEC,GAAG,EAAE,GAAGd,cAAAA,EAAAA;IAChB,MAAM,EAAEe,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAC3B,MAAMC,QAAAA,GAAWC,WAAY,CAAA,CAACC,IAASL,GAAAA,GAAAA,CAAI,CAAC,yBAAyB,EAAEjB,EAAAA,CAAG,CAAC,EAAEsB,IAAO,CAAA,EAAA;AAClFC,QAAAA,OAAAA,CAAAA,CAAQC,KAAK,EAAA;YACX3B,kBAAmB,CAAA;gBACjB4B,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASR,cAAeM,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF,SAAA;QAEA,MAAMG,SAAAA,CAAAA,GAAAA;YACJ9B,kBAAmB,CAAA;gBACjB4B,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS/B,aAAc,CAAA;AACrBK,oBAAAA,EAAAA,EAAI4B,OAAQ,CAAA,wBAAA,CAAA;oBACZC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;YAEA,MAAMjB,WAAAA,EAAAA;AACR;AACF,KAAA,CAAA;AAEA,IAAA,MAAMkB,uBAAuB,OAAOtB,IAAAA,GAAAA;AAClC,QAAA,MAAMuB,WAAcjB,GAAAA,cAAAA,CAAekB,OAAO,CAACC,cAAc,EAAA;QAEzD,MAAMb,QAAAA,CAASc,MAAM,CAAC;AAAE,YAAA,GAAG1B,IAAI;AAAE,YAAA,GAAGuB,WAAW;AAAEI,YAAAA,KAAAA,EAAO;AAAG,SAAA,CAAA;AAC7D,KAAA;AAEA,IAAA,IAAIzB,aAAe,EAAA;QACjB,qBAAO0B,GAAA,CAACC,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;AAEA,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;;AACC,0BAAAJ,GAAA,CAACC,KAAKI,KAAK,EAAA;0BACR9C,aACC,CAAA;oBAAEK,EAAI,EAAA,oBAAA;oBAAsB6B,cAAgB,EAAA;iBAC5C,EAAA;oBAAEa,IAAM,EAAA;AAAQ,iBAAA;;0BAGpBN,GAACO,CAAAA,MAAAA,EAAAA;gBACCC,kBAAkB,EAAA,IAAA;gBAClBC,aAAe,EAAA;AAAEH,oBAAAA,IAAAA,EAAMjC,KAAKiC,IAAI;AAAEI,oBAAAA,WAAAA,EAAarC,KAAKqC;AAAY,iBAAA;gBAChEC,QAAUjB,EAAAA,oBAAAA;gBACVkB,gBAAkBC,EAAAA,gBAAAA;0BAEjB,CAAC,EAAEC,YAAY,EAAEC,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAE,iBAC9Cd,IAACe,CAAAA,IAAAA,EAAAA;wBAAKC,UAAU,EAAA,IAAA;wBAACR,QAAUG,EAAAA,YAAAA;;AACzB,0CAAAd,GAAA,CAACoB,QAAQC,MAAM,EAAA;gCACbC,aACE,EAAA,CAACrD,iCACC+B,GAACuB,CAAAA,MAAAA,EAAAA;oCACCC,QAAUnD,EAAAA,IAAAA,CAAKoD,IAAI,KAAK,oBAAA;oCACxBpC,IAAK,EAAA,QAAA;AACLqC,oCAAAA,OAAAA,EAAS1C,SAAShB,SAAS;AAC3B2D,oCAAAA,SAAAA,gBAAW3B,GAAC4B,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;8CAEXrE,aAAc,CAAA;wCACbK,EAAI,EAAA,aAAA;wCACJ6B,cAAgB,EAAA;AAClB,qCAAA;AAEA,iCAAA,CAAA,GAAA,IAAA;AAENoC,gCAAAA,KAAAA,EAAOxD,KAAKiC,IAAI;AAChBwB,gCAAAA,QAAAA,EAAUzD,KAAKqC,WAAW;AAC1BqB,gCAAAA,gBAAAA,gBAAkB/B,GAACgC,CAAAA,UAAAA,EAAAA;oCAAWC,QAAS,EAAA;;;AAEzC,0CAAAjC,GAAA,CAACoB,QAAQc,OAAO,EAAA;AACd,gCAAA,QAAA,gBAAA/B,IAACgC,CAAAA,IAAAA,EAAAA;oCACCC,UAAW,EAAA,UAAA;oCACXC,SAAU,EAAA,QAAA;oCACVC,UAAW,EAAA,SAAA;oCACXC,GAAK,EAAA,CAAA;oCACLC,SAAS,EAAA,IAAA;oCACTC,UAAY,EAAA,CAAA;oCACZC,aAAe,EAAA,CAAA;oCACfC,WAAa,EAAA,CAAA;oCACbC,YAAc,EAAA,CAAA;oCACdC,MAAO,EAAA,cAAA;;sDAEP1C,IAACgC,CAAAA,IAAAA,EAAAA;4CAAKE,SAAU,EAAA,QAAA;4CAASC,UAAW,EAAA,SAAA;4CAAUC,GAAK,EAAA,CAAA;;8DACjDvC,GAAC8C,CAAAA,UAAAA,EAAAA;oDAAWC,OAAQ,EAAA,OAAA;oDAAQC,GAAI,EAAA,IAAA;8DAC7BzF,aAAc,CAAA;AACbK,wDAAAA,EAAAA,EAAI4B,OAAQ,CAAA,qBAAA,CAAA;wDACZC,cAAgB,EAAA;AAClB,qDAAA;;AAGF,8DAAAU,IAAA,CAAC8C,KAAKC,IAAI,EAAA;oDAACX,GAAK,EAAA,CAAA;;AACd,sEAAAvC,GAAA,CAACiD,KAAKE,IAAI,EAAA;4DAACC,GAAK,EAAA,CAAA;4DAAGf,SAAU,EAAA,QAAA;4DAASC,UAAW,EAAA,SAAA;oFAC/CnC,IAAA,CAACkD,MAAMH,IAAI,EAAA;gEACT5C,IAAK,EAAA,MAAA;gEACLlB,KACE6B,EAAAA,MAAAA,EAAQX,OACJ/C,aAAc,CAAA;AACZK,oEAAAA,EAAAA,EAAIqD,OAAOX,IAAI;oEACfb,cAAgB,EAAA;iEAElB,CAAA,GAAA,KAAA;gEAEN6D,QAAQ,EAAA,IAAA;;AAER,kFAAAtD,GAAA,CAACqD,MAAME,KAAK,EAAA;kFACThG,aAAc,CAAA;4EACbK,EAAI,EAAA,aAAA;4EACJ6B,cAAgB,EAAA;AAClB,yEAAA;;kFAEFO,GAACwD,CAAAA,SAAAA,EAAAA;wEAAUC,KAAO1C,EAAAA,MAAAA,CAAOT,IAAI,IAAI,EAAA;wEAAIoD,QAAU1C,EAAAA;;AAC/C,kFAAAhB,GAAA,CAACqD,MAAMM,KAAK,EAAA,EAAA;;;;AAGhB,sEAAA3D,GAAA,CAACiD,KAAKE,IAAI,EAAA;4DAACC,GAAK,EAAA,CAAA;4DAAGf,SAAU,EAAA,QAAA;4DAASC,UAAW,EAAA,SAAA;oFAC/CnC,IAAA,CAACkD,MAAMH,IAAI,EAAA;gEACT5C,IAAK,EAAA,aAAA;gEACLlB,KACE6B,EAAAA,MAAAA,EAAQP,cACJnD,aAAc,CAAA;AACZK,oEAAAA,EAAAA,EAAIqD,OAAOP,WAAW;oEACtBjB,cAAgB,EAAA;iEAElB,CAAA,GAAA,KAAA;gEAEN6D,QAAQ,EAAA,IAAA;;AAER,kFAAAtD,GAAA,CAACqD,MAAME,KAAK,EAAA;kFACThG,aAAc,CAAA;4EACbK,EAAI,EAAA,oBAAA;4EACJ6B,cAAgB,EAAA;AAClB,yEAAA;;kFAEFO,GAAC4D,CAAAA,QAAAA,EAAAA;wEAASH,KAAO1C,EAAAA,MAAAA,CAAOL,WAAW,IAAI,EAAA;wEAAIgD,QAAU1C,EAAAA;;AACrD,kFAAAhB,GAAA,CAACqD,MAAMM,KAAK,EAAA,EAAA;;;;;;;;AAMnB,wCAAA,CAAC1F,kCACA+B,GAAC6D,CAAAA,gBAAAA,EAAAA;4CACCC,GAAKpF,EAAAA,cAAAA;AACLiB,4CAAAA,WAAAA,EAAatB,KAAKsB,WAAW;4CAC7BzB,MAAQA,EAAAA;;;;;;;;;;AAU5B;AAEa6F,MAAAA,sBAAAA,GAAyB,kBACpC/D,GAAA,CAACC,KAAK+D,OAAO,EAAA;AAACrE,QAAAA,WAAAA,EAAasE,YAAYC,UAAU;AAC/C,QAAA,QAAA,gBAAAlE,GAAC1C,CAAAA,QAAAA,EAAAA,EAAAA;AAEH,KAAA;;;;"}
1
+ {"version":3,"file":"EditPage.mjs","sources":["../../../../../admin/src/pages/Roles/pages/EditPage.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n TextInput,\n Textarea,\n Typography,\n Grid,\n Field,\n Box,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n Page,\n BackButton,\n useAPIErrorHandler,\n useNotification,\n useFetchClient,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { Formik, Form } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useQuery, useMutation } from 'react-query';\nimport { useMatch } from 'react-router-dom';\n\nimport UsersPermissions from '../../../components/UsersPermissions';\nimport { PERMISSIONS } from '../../../constants';\nimport getTrad from '../../../utils/getTrad';\nimport { createRoleSchema } from '../constants';\nimport { usePlugins } from '../hooks/usePlugins';\n\nexport const EditPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n params: { id },\n } = useMatch(`/settings/users-permissions/roles/:id`);\n const { get } = useFetchClient();\n const { isLoading: isLoadingPlugins, routes } = usePlugins();\n const {\n data: role,\n isLoading: isLoadingRole,\n refetch: refetchRole,\n } = useQuery(['users-permissions', 'role', id], async () => {\n // TODO: why doesn't this endpoint follow the admin API conventions?\n const {\n data: { role },\n } = await get(`/users-permissions/roles/${id}`);\n\n return role;\n });\n\n const permissionsRef = React.useRef();\n const { put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n const mutation = useMutation((body) => put(`/users-permissions/roles/${id}`, body), {\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n\n async onSuccess() {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('Settings.roles.created'),\n defaultMessage: 'Role edited',\n }),\n });\n\n await refetchRole();\n },\n });\n\n const handleEditRoleSubmit = async (data) => {\n const permissions = permissionsRef.current.getPermissions();\n\n await mutation.mutate({ ...data, ...permissions, users: [] });\n };\n\n if (isLoadingRole) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'Roles' }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={{ name: role.name, description: role.description }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={createRoleSchema}\n >\n {({ handleSubmit, values, handleChange, errors }) => (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n !isLoadingPlugins ? (\n <Button\n disabled={role.code === 'strapi-super-admin'}\n type=\"submit\"\n loading={mutation.isLoading}\n startIcon={<Check />}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n ) : null\n }\n title={role.name}\n subtitle={role.description}\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=\"..\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex\n background=\"neutral0\"\n direction=\"column\"\n alignItems=\"stretch\"\n gap={7}\n hasRadius\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n shadow=\"filterShadow\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('EditPage.form.roles'),\n defaultMessage: 'Role details',\n })}\n </Typography>\n\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={\n errors?.name\n ? formatMessage({\n id: errors.name,\n defaultMessage: 'Name is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" value={values.name || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={\n errors?.description\n ? formatMessage({\n id: errors.description,\n defaultMessage: 'Description is required',\n })\n : false\n }\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea value={values.description || ''} onChange={handleChange} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n\n {!isLoadingPlugins && (\n <UsersPermissions\n ref={permissionsRef}\n permissions={role.permissions}\n routes={routes}\n />\n )}\n </Flex>\n </Layouts.Content>\n </Form>\n )}\n </Formik>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesEditPage = () => (\n <Page.Protect permissions={PERMISSIONS.updateRole}>\n <EditPage />\n </Page.Protect>\n);\n"],"names":["EditPage","formatMessage","useIntl","toggleNotification","useNotification","params","id","useMatch","get","useFetchClient","isLoading","isLoadingPlugins","routes","usePlugins","data","role","isLoadingRole","refetch","refetchRole","useQuery","permissionsRef","React","useRef","put","formatAPIError","useAPIErrorHandler","mutation","useMutation","body","onError","error","type","message","onSuccess","getTrad","defaultMessage","handleEditRoleSubmit","permissions","current","getPermissions","mutate","users","_jsx","Page","Loading","_jsxs","Main","Title","name","Formik","enableReinitialize","initialValues","description","onSubmit","validationSchema","createRoleSchema","handleSubmit","values","handleChange","errors","Form","noValidate","Layouts","Header","primaryAction","Button","disabled","code","loading","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","Flex","background","direction","alignItems","gap","hasRadius","paddingTop","paddingBottom","paddingLeft","paddingRight","shadow","Typography","variant","tag","Grid","Root","Item","col","xs","Field","required","Label","TextInput","value","onChange","Error","Textarea","UsersPermissions","ref","ProtectedRolesEditPage","Protect","PERMISSIONS","updateRole"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.js","sources":["../../../../../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n"],"names":["EditLink","styled","Link","theme","spaces","colors","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","formatMessage","useIntl","navigate","useNavigate","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","role","includes","type","handleClickDelete","id","_jsx","Tbody","map","_jsxs","Tr","cursor","onClick","toString","Td","width","Typography","name","description","defaultMessage","number","nb_users","Flex","justifyContent","e","stopPropagation","tag","NavLink","to","aria-label","target","Pencil","IconButton","variant","label","Trash","defaultProps","propTypes","PropTypes","array","isRequired","func","bool"],"mappings":"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"}
1
+ {"version":3,"file":"TableBody.js","sources":["../../../../../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n"],"names":["EditLink","styled","Link","theme","spaces","colors","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","formatMessage","useIntl","navigate","useNavigate","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","role","includes","type","handleClickDelete","id","_jsx","Tbody","map","_jsxs","Tr","cursor","onClick","toString","Td","width","Typography","name","description","defaultMessage","number","nb_users","Flex","justifyContent","e","stopPropagation","tag","NavLink","to","aria-label","target","Pencil","IconButton","variant","label","Trash","defaultProps","propTypes","PropTypes","array","isRequired","func","bool"],"mappings":";;;;;;;;;;;AASA,MAAMA,QAAAA,GAAWC,uBAAOC,CAAAA,iBAAAA,CAAK;;;;;;WAMlB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAK,CAAGA,EAAAA,KAAAA,CAAMC,MAAM,CAAC,CAAE,CAAA,CAAA,CAAE,CAAC;;;;;;;YAOrC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACC,UAAU,CAAC;;;;;;;;cAQvC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;AAIvD,CAAC;AAED,MAAMC,SAAY,GAAA,CAAC,EAAEC,WAAW,EAAEC,SAAS,EAAEC,SAAS,EAAEC,eAAe,EAAEC,QAAQ,EAAE,GAAA;IACjF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,CAACC,iBAAmBC,EAAAA,oBAAAA,CAAqB,GAAGN,QAAAA;AAElD,IAAA,MAAMO,kBAAqB,GAAA,CAACC,IAC1BX,GAAAA,SAAAA,IAAa,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA;SAAgB,CAACY,QAAQ,CAACD,IAAAA,CAAKE,IAAI,CAAA;AAE9D,IAAA,MAAMC,oBAAoB,CAACC,EAAAA,GAAAA;QACzBb,eAAgBa,CAAAA,EAAAA,CAAAA;AAChBN,QAAAA,oBAAAA,CAAqB,CAACD,iBAAAA,CAAAA;AACxB,KAAA;AAEA,IAAA,qBACEQ,cAACC,CAAAA,kBAAAA,EAAAA;kBACElB,WAAamB,EAAAA,GAAAA,CAAI,CAACP,IAAAA,iBACjBQ,eAACC,CAAAA,eAAAA,EAAAA;gBAAGC,MAAO,EAAA,SAAA;AAA0BC,gBAAAA,OAAAA,EAAS,IAAMhB,QAAAA,CAASK,IAAKI,CAAAA,EAAE,CAACQ,QAAQ,EAAA,CAAA;;kCAC3EP,cAACQ,CAAAA,eAAAA,EAAAA;wBAAGC,KAAM,EAAA,KAAA;AACR,wBAAA,QAAA,gBAAAT,cAACU,CAAAA,uBAAAA,EAAAA;AAAYf,4BAAAA,QAAAA,EAAAA,IAAAA,CAAKgB;;;kCAEpBX,cAACQ,CAAAA,eAAAA,EAAAA;wBAAGC,KAAM,EAAA,KAAA;AACR,wBAAA,QAAA,gBAAAT,cAACU,CAAAA,uBAAAA,EAAAA;AAAYf,4BAAAA,QAAAA,EAAAA,IAAAA,CAAKiB;;;kCAEpBZ,cAACQ,CAAAA,eAAAA,EAAAA;wBAAGC,KAAM,EAAA,KAAA;AACR,wBAAA,QAAA,gBAAAT,cAACU,CAAAA,uBAAAA,EAAAA;sCACEtB,aACC,CAAA;gCACEW,EAAI,EAAA,0BAAA;gCACJc,cAAgB,EAAA;6BAElB,EAAA;AAAEC,gCAAAA,MAAAA,EAAQnB,KAAKoB;AAAS,6BAAA;;;kCAI9Bf,cAACQ,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAL,eAACa,CAAAA,iBAAAA,EAAAA;4BAAKC,cAAe,EAAA,KAAA;4BAAMX,OAAS,EAAA,CAACY,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;;AACzDlC,gCAAAA,SAAAA,iBACCe,cAAC1B,CAAAA,QAAAA,EAAAA;oCACC8C,GAAKC,EAAAA,sBAAAA;oCACLC,EAAI3B,EAAAA,IAAAA,CAAKI,EAAE,CAACQ,QAAQ,EAAA;AACpBgB,oCAAAA,YAAAA,EAAYnC,aACV,CAAA;wCAAEW,EAAI,EAAA,0BAAA;wCAA4Bc,cAAgB,EAAA;qCAClD,EAAA;wCAAEW,MAAQ,EAAA,CAAA,EAAG7B,IAAKgB,CAAAA,IAAI,CAAE;AAAC,qCAAA,CAAA;AAG3B,oCAAA,QAAA,gBAAAX,cAACyB,CAAAA,YAAAA,EAAAA,EAAAA;AAED,iCAAA,CAAA,GAAA,IAAA;AAEH/B,gCAAAA,kBAAAA,CAAmBC,uBAClBK,cAAC0B,CAAAA,uBAAAA,EAAAA;AACCpB,oCAAAA,OAAAA,EAAS,IAAMR,iBAAAA,CAAkBH,IAAKI,CAAAA,EAAE,CAACQ,QAAQ,EAAA,CAAA;oCACjDoB,OAAQ,EAAA,OAAA;AACRC,oCAAAA,KAAAA,EAAOxC,aACL,CAAA;wCAAEW,EAAI,EAAA,sBAAA;wCAAwBc,cAAgB,EAAA;qCAC9C,EAAA;wCAAEW,MAAQ,EAAA,CAAA,EAAG7B,IAAKgB,CAAAA,IAAI,CAAE;AAAC,qCAAA,CAAA;AAG3B,oCAAA,QAAA,gBAAAX,cAAC6B,CAAAA,WAAAA,EAAAA,EAAAA;;;;;;AA1CelC,aAAAA,EAAAA,IAAAA,CAAKgB,IAAI,CAAA;;AAmD3C;AAIA7B,SAAAA,CAAUgD,YAAY,GAAG;IACvB9C,SAAW,EAAA,KAAA;IACXC,SAAW,EAAA;AACb,CAAA;AAEAH,SAAAA,CAAUiD,SAAS,GAAG;IACpB5C,QAAU6C,EAAAA,SAAAA,CAAUC,KAAK,CAACC,UAAU;IACpChD,eAAiB8C,EAAAA,SAAAA,CAAUG,IAAI,CAACD,UAAU;IAC1CnD,WAAaiD,EAAAA,SAAAA,CAAUC,KAAK,CAACC,UAAU;AACvClD,IAAAA,SAAAA,EAAWgD,UAAUI,IAAI;AACzBnD,IAAAA,SAAAA,EAAW+C,UAAUI;AACvB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableBody.mjs","sources":["../../../../../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n"],"names":["EditLink","styled","Link","theme","spaces","colors","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","formatMessage","useIntl","navigate","useNavigate","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","role","includes","type","handleClickDelete","id","_jsx","Tbody","map","_jsxs","Tr","cursor","onClick","toString","Td","width","Typography","name","description","defaultMessage","number","nb_users","Flex","justifyContent","e","stopPropagation","tag","NavLink","to","aria-label","target","Pencil","IconButton","variant","label","Trash","defaultProps","propTypes","PropTypes","array","isRequired","func","bool"],"mappings":"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"}
1
+ {"version":3,"file":"TableBody.mjs","sources":["../../../../../../../admin/src/pages/Roles/pages/ListPage/components/TableBody.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Link, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nconst EditLink = styled(Link)`\n align-items: center;\n height: 3.2rem;\n width: 3.2rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}`};\n\n svg {\n height: 1.6rem;\n width: 1.6rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nconst TableBody = ({ sortedRoles, canDelete, canUpdate, setRoleToDelete, onDelete }) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const [showConfirmDelete, setShowConfirmDelete] = onDelete;\n\n const checkCanDeleteRole = (role) =>\n canDelete && !['public', 'authenticated'].includes(role.type);\n\n const handleClickDelete = (id) => {\n setRoleToDelete(id);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n return (\n <Tbody>\n {sortedRoles?.map((role) => (\n <Tr cursor=\"pointer\" key={role.name} onClick={() => navigate(role.id.toString())}>\n <Td width=\"20%\">\n <Typography>{role.name}</Typography>\n </Td>\n <Td width=\"50%\">\n <Typography>{role.description}</Typography>\n </Td>\n <Td width=\"30%\">\n <Typography>\n {formatMessage(\n {\n id: 'Roles.RoleRow.user-count',\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: role.nb_users }\n )}\n </Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate ? (\n <EditLink\n tag={NavLink}\n to={role.id.toString()}\n aria-label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: `${role.name}` }\n )}\n >\n <Pencil />\n </EditLink>\n ) : null}\n\n {checkCanDeleteRole(role) && (\n <IconButton\n onClick={() => handleClickDelete(role.id.toString())}\n variant=\"ghost\"\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: `${role.name}` }\n )}\n >\n <Trash />\n </IconButton>\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n );\n};\n\nexport default TableBody;\n\nTableBody.defaultProps = {\n canDelete: false,\n canUpdate: false,\n};\n\nTableBody.propTypes = {\n onDelete: PropTypes.array.isRequired,\n setRoleToDelete: PropTypes.func.isRequired,\n sortedRoles: PropTypes.array.isRequired,\n canDelete: PropTypes.bool,\n canUpdate: PropTypes.bool,\n};\n"],"names":["EditLink","styled","Link","theme","spaces","colors","neutral500","neutral800","TableBody","sortedRoles","canDelete","canUpdate","setRoleToDelete","onDelete","formatMessage","useIntl","navigate","useNavigate","showConfirmDelete","setShowConfirmDelete","checkCanDeleteRole","role","includes","type","handleClickDelete","id","_jsx","Tbody","map","_jsxs","Tr","cursor","onClick","toString","Td","width","Typography","name","description","defaultMessage","number","nb_users","Flex","justifyContent","e","stopPropagation","tag","NavLink","to","aria-label","target","Pencil","IconButton","variant","label","Trash","defaultProps","propTypes","PropTypes","array","isRequired","func","bool"],"mappings":"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"}