@strapi/admin 5.13.0-beta.1 → 5.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/admin/admin/src/features/Auth.js +2 -8
  2. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  3. package/dist/admin/admin/src/features/Auth.mjs +2 -8
  4. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  5. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  6. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  7. package/dist/admin/admin/src/hooks/useQueryParams.js +1 -7
  8. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  9. package/dist/admin/admin/src/hooks/useQueryParams.mjs +2 -8
  10. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  11. package/dist/admin/admin/src/pages/Auth/components/Register.js +1 -1
  12. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  13. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +1 -1
  14. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  15. package/dist/admin/admin/src/pages/Home/HomePage.js +4 -76
  16. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  17. package/dist/admin/admin/src/pages/Home/HomePage.mjs +5 -77
  18. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  19. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +29 -30
  20. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  21. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +32 -33
  22. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  23. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +19 -1
  24. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +21 -3
  26. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +4 -1
  28. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  29. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +4 -1
  30. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  31. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +32 -2
  32. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  33. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +32 -2
  34. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  35. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +1 -0
  36. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  37. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +1 -0
  38. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  39. package/dist/admin/admin/src/translations/ru.json.js +14 -1
  40. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  41. package/dist/admin/admin/src/translations/ru.json.mjs +14 -1
  42. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  43. package/dist/admin/index.js +0 -2
  44. package/dist/admin/index.js.map +1 -1
  45. package/dist/admin/index.mjs +0 -1
  46. package/dist/admin/index.mjs.map +1 -1
  47. package/dist/admin/src/features/Tracking.d.ts +2 -0
  48. package/dist/admin/src/index.d.ts +0 -1
  49. package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +4 -1
  50. package/dist/server/server/src/content-types/api-token.js +7 -0
  51. package/dist/server/server/src/content-types/api-token.js.map +1 -1
  52. package/dist/server/server/src/content-types/api-token.mjs +7 -0
  53. package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
  54. package/dist/server/server/src/services/api-token.js +21 -3
  55. package/dist/server/server/src/services/api-token.js.map +1 -1
  56. package/dist/server/server/src/services/api-token.mjs +21 -3
  57. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  58. package/dist/server/server/src/services/encryption.js +62 -0
  59. package/dist/server/server/src/services/encryption.js.map +1 -0
  60. package/dist/server/server/src/services/encryption.mjs +60 -0
  61. package/dist/server/server/src/services/encryption.mjs.map +1 -0
  62. package/dist/server/server/src/services/index.js +3 -1
  63. package/dist/server/server/src/services/index.js.map +1 -1
  64. package/dist/server/server/src/services/index.mjs +3 -1
  65. package/dist/server/server/src/services/index.mjs.map +1 -1
  66. package/dist/server/src/content-types/api-token.d.ts +7 -0
  67. package/dist/server/src/content-types/api-token.d.ts.map +1 -1
  68. package/dist/server/src/content-types/index.d.ts +7 -0
  69. package/dist/server/src/content-types/index.d.ts.map +1 -1
  70. package/dist/server/src/index.d.ts +11 -0
  71. package/dist/server/src/index.d.ts.map +1 -1
  72. package/dist/server/src/services/api-token.d.ts.map +1 -1
  73. package/dist/server/src/services/encryption.d.ts +6 -0
  74. package/dist/server/src/services/encryption.d.ts.map +1 -0
  75. package/dist/server/src/services/index.d.ts +4 -0
  76. package/dist/server/src/services/index.d.ts.map +1 -1
  77. package/dist/server/src/validation/project-settings.d.ts +4 -4
  78. package/dist/shared/contracts/api-token.d.ts +1 -0
  79. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  80. package/package.json +8 -8
  81. package/dist/admin/admin/src/components/SubNav.js +0 -269
  82. package/dist/admin/admin/src/components/SubNav.js.map +0 -1
  83. package/dist/admin/admin/src/components/SubNav.mjs +0 -267
  84. package/dist/admin/admin/src/components/SubNav.mjs.map +0 -1
  85. package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.js +0 -179
  86. package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.js.map +0 -1
  87. package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.mjs +0 -176
  88. package/dist/admin/admin/src/pages/Home/components/ContentManagerWidgets.mjs.map +0 -1
  89. package/dist/admin/admin/src/services/homepage.js +0 -28
  90. package/dist/admin/admin/src/services/homepage.js.map +0 -1
  91. package/dist/admin/admin/src/services/homepage.mjs +0 -26
  92. package/dist/admin/admin/src/services/homepage.mjs.map +0 -1
  93. package/dist/admin/src/components/SubNav.d.ts +0 -33
  94. package/dist/admin/src/pages/Home/components/ContentManagerWidgets.d.ts +0 -3
  95. package/dist/admin/src/services/homepage.d.ts +0 -5
  96. package/dist/server/server/src/controllers/homepage.js +0 -58
  97. package/dist/server/server/src/controllers/homepage.js.map +0 -1
  98. package/dist/server/server/src/controllers/homepage.mjs +0 -37
  99. package/dist/server/server/src/controllers/homepage.mjs.map +0 -1
  100. package/dist/server/server/src/routes/homepage.js +0 -22
  101. package/dist/server/server/src/routes/homepage.js.map +0 -1
  102. package/dist/server/server/src/routes/homepage.mjs +0 -20
  103. package/dist/server/server/src/routes/homepage.mjs.map +0 -1
  104. package/dist/server/server/src/services/homepage.js +0 -159
  105. package/dist/server/server/src/services/homepage.js.map +0 -1
  106. package/dist/server/server/src/services/homepage.mjs +0 -157
  107. package/dist/server/server/src/services/homepage.mjs.map +0 -1
  108. package/dist/server/src/controllers/homepage.d.ts +0 -8
  109. package/dist/server/src/controllers/homepage.d.ts.map +0 -1
  110. package/dist/server/src/routes/homepage.d.ts +0 -14
  111. package/dist/server/src/routes/homepage.d.ts.map +0 -1
  112. package/dist/server/src/services/homepage.d.ts +0 -14
  113. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Register.js","sources":["../../../../../../../admin/src/pages/Auth/components/Register.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, Link } from '@strapi/design-system';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate, useMatch, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\nimport { ValidationError } from 'yup';\n\nimport {\n Register as RegisterUser,\n RegisterAdmin,\n} from '../../../../../shared/contracts/authentication';\nimport { Form, FormHelpers } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../../../components/GuidedTour/Provider';\nimport { useNpsSurveySettings } from '../../../components/NpsSurvey';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useTypedDispatch } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../layouts/UnauthenticatedLayout';\nimport { login } from '../../../reducer';\nimport {\n useGetRegistrationInfoQuery,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n} from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { getByteSize } from '../../../utils/strings';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst REGISTER_USER_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required).nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value || typeof value !== 'string') return true; // validated elsewhere\n\n const byteSize = getByteSize(value);\n return byteSize <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .nullable(),\n registrationToken: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Registration token is required',\n }),\n});\n\nconst REGISTER_ADMIN_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Firstname is required',\n })\n .nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value) return true;\n return new TextEncoder().encode(value).length <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required,\n defaultMessage: 'Confirm password is required',\n })\n .nullable()\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .strict()\n .lowercase({\n id: translatedErrors.lowercase.id,\n defaultMessage: 'Email must be lowercase',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Email is required',\n })\n .nullable(),\n});\n\ninterface RegisterProps {\n hasAdmin?: boolean;\n}\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\nconst Register = ({ hasAdmin }: RegisterProps) => {\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const [submitCount, setSubmitCount] = React.useState(0);\n const [apiError, setApiError] = React.useState<string>();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const setSkipped = useGuidedTour('Register', (state) => state.setSkipped);\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const match = useMatch('/auth/:authType');\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo, error } = useGetRegistrationInfoQuery(registrationToken as string, {\n skip: !registrationToken,\n });\n\n React.useEffect(() => {\n if (error) {\n const message: string = isBaseQueryError(error)\n ? formatAPIError(error)\n : (error.message ?? '');\n\n toggleNotification({\n type: 'danger',\n message,\n });\n\n navigate(`/auth/oops?info=${encodeURIComponent(message)}`);\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const [registerAdmin] = useRegisterAdminMutation();\n const [registerUser] = useRegisterUserMutation();\n const dispatch = useTypedDispatch();\n\n const handleRegisterAdmin = async (\n { news, ...body }: RegisterAdmin.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerAdmin(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n const { roles } = res.data.user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n localStorage.setItem('GUIDED_TOUR_SKIPPED', JSON.stringify(false));\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${true}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n const handleRegisterUser = async (\n { news, ...body }: RegisterUser.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerUser(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n if (\n !match ||\n (match.params.authType !== 'register' && match.params.authType !== 'register-admin')\n ) {\n return <Navigate to=\"/\" />;\n }\n\n const isAdminRegistration = match.params.authType === 'register-admin';\n\n const schema = isAdminRegistration ? REGISTER_ADMIN_SCHEMA : REGISTER_USER_SCHEMA;\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography tag=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n <Typography variant=\"epsilon\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.register.subtitle',\n defaultMessage:\n 'Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.',\n })}\n </Typography>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Flex>\n <Form\n method=\"POST\"\n initialValues={\n {\n firstname: userInfo?.firstname || '',\n lastname: userInfo?.lastname || '',\n email: userInfo?.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n } satisfies RegisterFormValues\n }\n onSubmit={async (data, helpers) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && isAdminRegistration) {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (normalizedData.registrationToken) {\n handleRegisterUser(\n {\n userInfo: omit(normalizedData, [\n 'registrationToken',\n 'confirmPassword',\n 'email',\n 'news',\n ]),\n registrationToken: normalizedData.registrationToken,\n news: normalizedData.news,\n },\n helpers.setErrors\n );\n } else {\n await handleRegisterAdmin(\n omit(normalizedData, ['registrationToken', 'confirmPassword']),\n helpers.setErrors\n );\n }\n } catch (err) {\n if (err instanceof ValidationError) {\n helpers.setErrors(\n err.inner.reduce<Record<string, string>>((acc, { message, path }) => {\n if (path && typeof message === 'object') {\n acc[path] = formatMessage(message);\n }\n return acc;\n }, {})\n );\n }\n setSubmitCount(submitCount + 1);\n }\n }}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid.Root gap={4}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !isAdminRegistration,\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 12,\n type: 'email' as const,\n },\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage(\n {\n id: 'Auth.form.register.news.label',\n defaultMessage:\n 'Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).',\n },\n {\n terms: (\n <A target=\"_blank\" href=\"https://strapi.io/terms\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.terms',\n defaultMessage: 'terms',\n })}\n </A>\n ),\n policy: (\n <A target=\"_blank\" href=\"https://strapi.io/privacy\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.policy',\n defaultMessage: 'policy',\n })}\n </A>\n ),\n }\n ),\n name: 'news',\n size: 12,\n type: 'checkbox' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Button fullWidth size=\"L\" type=\"submit\">\n {formatMessage({\n id: 'Auth.form.button.register',\n defaultMessage: \"Let's start\",\n })}\n </Button>\n </Flex>\n </Form>\n {match?.params.authType === 'register' && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({\n id: 'Auth.link.signin.account',\n defaultMessage: 'Already have an account?',\n })}\n </Link>\n </Flex>\n </Box>\n )}\n </LayoutContent>\n </UnauthenticatedLayout>\n );\n};\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\ntype StringKeys<T> = {\n [K in keyof T]: T[K] extends string | undefined ? K : never;\n}[keyof T];\n\n/**\n * @description Trims all values but the password & sets lastName to null if it's a falsey value.\n */\nfunction normalizeData(data: RegisterFormValues) {\n return Object.entries(data).reduce(\n (acc, [key, value]) => {\n type PasswordKeys = Extract<keyof RegisterFormValues, 'password' | 'confirmPassword'>;\n type RegisterFormStringValues = Exclude<\n keyof Pick<RegisterFormValues, StringKeys<RegisterFormValues>>,\n PasswordKeys\n >;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n acc[key as RegisterFormStringValues] = value.trim();\n\n if (key === 'lastname') {\n acc[key] = value || undefined;\n }\n } else {\n acc[key as PasswordKeys] = value;\n }\n\n return acc;\n },\n {} as {\n firstname: string;\n lastname: string | undefined;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n }\n );\n}\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nexport { Register };\nexport type { RegisterProps };\n"],"names":["REGISTER_USER_SCHEMA","yup","object","shape","firstname","string","trim","required","translatedErrors","nullable","lastname","password","min","id","minLength","defaultMessage","values","test","value","byteSize","getByteSize","matches","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","setSkipped","useGuidedTour","state","search","searchString","useLocation","query","useMemo","URLSearchParams","match","useMatch","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","setNpsSurveySettings","useNpsSurveySettings","get","data","userInfo","error","useGetRegistrationInfoQuery","skip","useEffect","isBaseQueryError","type","encodeURIComponent","registerAdmin","useRegisterAdminMutation","registerUser","useRegisterUserMutation","dispatch","useTypedDispatch","handleRegisterAdmin","news","body","setFormErrors","res","login","token","roles","user","isUserSuperAdmin","find","code","localStorage","setItem","JSON","stringify","s","enabled","pathname","name","handleRegisterUser","params","authType","_jsx","Navigate","to","isAdminRegistration","schema","UnauthenticatedLayout","_jsxs","LayoutContent","Flex","direction","alignItems","gap","Logo","Typography","tag","variant","textAlign","textColor","role","tabIndex","Form","method","initialValues","undefined","onSubmit","helpers","normalizedData","normalizeData","validate","abortEarly","count","toString","omit","setErrors","err","ValidationError","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","col","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
1
+ {"version":3,"file":"Register.js","sources":["../../../../../../../admin/src/pages/Auth/components/Register.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, Link } from '@strapi/design-system';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate, useMatch, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\nimport { ValidationError } from 'yup';\n\nimport {\n Register as RegisterUser,\n RegisterAdmin,\n} from '../../../../../shared/contracts/authentication';\nimport { Form, FormHelpers } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../../../components/GuidedTour/Provider';\nimport { useNpsSurveySettings } from '../../../components/NpsSurvey';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useTypedDispatch } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../layouts/UnauthenticatedLayout';\nimport { login } from '../../../reducer';\nimport {\n useGetRegistrationInfoQuery,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n} from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { getByteSize } from '../../../utils/strings';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst REGISTER_USER_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required).nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value || typeof value !== 'string') return true; // validated elsewhere\n\n const byteSize = getByteSize(value);\n return byteSize <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .nullable(),\n registrationToken: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Registration token is required',\n }),\n});\n\nconst REGISTER_ADMIN_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Firstname is required',\n })\n .nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value) return true;\n return new TextEncoder().encode(value).length <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .nullable()\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .strict()\n .lowercase({\n id: translatedErrors.lowercase.id,\n defaultMessage: 'Email must be lowercase',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Email is required',\n })\n .nullable(),\n});\n\ninterface RegisterProps {\n hasAdmin?: boolean;\n}\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\nconst Register = ({ hasAdmin }: RegisterProps) => {\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const [submitCount, setSubmitCount] = React.useState(0);\n const [apiError, setApiError] = React.useState<string>();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const setSkipped = useGuidedTour('Register', (state) => state.setSkipped);\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const match = useMatch('/auth/:authType');\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo, error } = useGetRegistrationInfoQuery(registrationToken as string, {\n skip: !registrationToken,\n });\n\n React.useEffect(() => {\n if (error) {\n const message: string = isBaseQueryError(error)\n ? formatAPIError(error)\n : (error.message ?? '');\n\n toggleNotification({\n type: 'danger',\n message,\n });\n\n navigate(`/auth/oops?info=${encodeURIComponent(message)}`);\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const [registerAdmin] = useRegisterAdminMutation();\n const [registerUser] = useRegisterUserMutation();\n const dispatch = useTypedDispatch();\n\n const handleRegisterAdmin = async (\n { news, ...body }: RegisterAdmin.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerAdmin(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n const { roles } = res.data.user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n localStorage.setItem('GUIDED_TOUR_SKIPPED', JSON.stringify(false));\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${true}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n const handleRegisterUser = async (\n { news, ...body }: RegisterUser.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerUser(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n if (\n !match ||\n (match.params.authType !== 'register' && match.params.authType !== 'register-admin')\n ) {\n return <Navigate to=\"/\" />;\n }\n\n const isAdminRegistration = match.params.authType === 'register-admin';\n\n const schema = isAdminRegistration ? REGISTER_ADMIN_SCHEMA : REGISTER_USER_SCHEMA;\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography tag=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n <Typography variant=\"epsilon\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.register.subtitle',\n defaultMessage:\n 'Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.',\n })}\n </Typography>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Flex>\n <Form\n method=\"POST\"\n initialValues={\n {\n firstname: userInfo?.firstname || '',\n lastname: userInfo?.lastname || '',\n email: userInfo?.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n } satisfies RegisterFormValues\n }\n onSubmit={async (data, helpers) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && isAdminRegistration) {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (normalizedData.registrationToken) {\n handleRegisterUser(\n {\n userInfo: omit(normalizedData, [\n 'registrationToken',\n 'confirmPassword',\n 'email',\n 'news',\n ]),\n registrationToken: normalizedData.registrationToken,\n news: normalizedData.news,\n },\n helpers.setErrors\n );\n } else {\n await handleRegisterAdmin(\n omit(normalizedData, ['registrationToken', 'confirmPassword']),\n helpers.setErrors\n );\n }\n } catch (err) {\n if (err instanceof ValidationError) {\n helpers.setErrors(\n err.inner.reduce<Record<string, string>>((acc, { message, path }) => {\n if (path && typeof message === 'object') {\n acc[path] = formatMessage(message);\n }\n return acc;\n }, {})\n );\n }\n setSubmitCount(submitCount + 1);\n }\n }}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid.Root gap={4}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !isAdminRegistration,\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 12,\n type: 'email' as const,\n },\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage(\n {\n id: 'Auth.form.register.news.label',\n defaultMessage:\n 'Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).',\n },\n {\n terms: (\n <A target=\"_blank\" href=\"https://strapi.io/terms\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.terms',\n defaultMessage: 'terms',\n })}\n </A>\n ),\n policy: (\n <A target=\"_blank\" href=\"https://strapi.io/privacy\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.policy',\n defaultMessage: 'policy',\n })}\n </A>\n ),\n }\n ),\n name: 'news',\n size: 12,\n type: 'checkbox' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Button fullWidth size=\"L\" type=\"submit\">\n {formatMessage({\n id: 'Auth.form.button.register',\n defaultMessage: \"Let's start\",\n })}\n </Button>\n </Flex>\n </Form>\n {match?.params.authType === 'register' && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({\n id: 'Auth.link.signin.account',\n defaultMessage: 'Already have an account?',\n })}\n </Link>\n </Flex>\n </Box>\n )}\n </LayoutContent>\n </UnauthenticatedLayout>\n );\n};\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\ntype StringKeys<T> = {\n [K in keyof T]: T[K] extends string | undefined ? K : never;\n}[keyof T];\n\n/**\n * @description Trims all values but the password & sets lastName to null if it's a falsey value.\n */\nfunction normalizeData(data: RegisterFormValues) {\n return Object.entries(data).reduce(\n (acc, [key, value]) => {\n type PasswordKeys = Extract<keyof RegisterFormValues, 'password' | 'confirmPassword'>;\n type RegisterFormStringValues = Exclude<\n keyof Pick<RegisterFormValues, StringKeys<RegisterFormValues>>,\n PasswordKeys\n >;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n acc[key as RegisterFormStringValues] = value.trim();\n\n if (key === 'lastname') {\n acc[key] = value || undefined;\n }\n } else {\n acc[key as PasswordKeys] = value;\n }\n\n return acc;\n },\n {} as {\n firstname: string;\n lastname: string | undefined;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n }\n );\n}\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nexport { Register };\nexport type { RegisterProps };\n"],"names":["REGISTER_USER_SCHEMA","yup","object","shape","firstname","string","trim","required","translatedErrors","nullable","lastname","password","min","id","minLength","defaultMessage","values","test","value","byteSize","getByteSize","matches","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","setSkipped","useGuidedTour","state","search","searchString","useLocation","query","useMemo","URLSearchParams","match","useMatch","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","setNpsSurveySettings","useNpsSurveySettings","get","data","userInfo","error","useGetRegistrationInfoQuery","skip","useEffect","isBaseQueryError","type","encodeURIComponent","registerAdmin","useRegisterAdminMutation","registerUser","useRegisterUserMutation","dispatch","useTypedDispatch","handleRegisterAdmin","news","body","setFormErrors","res","login","token","roles","user","isUserSuperAdmin","find","code","localStorage","setItem","JSON","stringify","s","enabled","pathname","name","handleRegisterUser","params","authType","_jsx","Navigate","to","isAdminRegistration","schema","UnauthenticatedLayout","_jsxs","LayoutContent","Flex","direction","alignItems","gap","Logo","Typography","tag","variant","textAlign","textColor","role","tabIndex","Form","method","initialValues","undefined","onSubmit","helpers","normalizedData","normalizeData","validate","abortEarly","count","toString","omit","setErrors","err","ValidationError","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","col","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
@@ -111,7 +111,7 @@ const REGISTER_ADMIN_SCHEMA = yup.object().shape({
111
111
  defaultMessage: 'Password is required'
112
112
  }).nullable(),
113
113
  confirmPassword: yup.string().required({
114
- id: errorsTrads.required,
114
+ id: errorsTrads.required.id,
115
115
  defaultMessage: 'Confirm password is required'
116
116
  }).nullable().oneOf([
117
117
  yup.ref('password'),
@@ -1 +1 @@
1
- {"version":3,"file":"Register.mjs","sources":["../../../../../../../admin/src/pages/Auth/components/Register.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, Link } from '@strapi/design-system';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate, useMatch, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\nimport { ValidationError } from 'yup';\n\nimport {\n Register as RegisterUser,\n RegisterAdmin,\n} from '../../../../../shared/contracts/authentication';\nimport { Form, FormHelpers } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../../../components/GuidedTour/Provider';\nimport { useNpsSurveySettings } from '../../../components/NpsSurvey';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useTypedDispatch } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../layouts/UnauthenticatedLayout';\nimport { login } from '../../../reducer';\nimport {\n useGetRegistrationInfoQuery,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n} from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { getByteSize } from '../../../utils/strings';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst REGISTER_USER_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required).nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value || typeof value !== 'string') return true; // validated elsewhere\n\n const byteSize = getByteSize(value);\n return byteSize <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .nullable(),\n registrationToken: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Registration token is required',\n }),\n});\n\nconst REGISTER_ADMIN_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Firstname is required',\n })\n .nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value) return true;\n return new TextEncoder().encode(value).length <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required,\n defaultMessage: 'Confirm password is required',\n })\n .nullable()\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .strict()\n .lowercase({\n id: translatedErrors.lowercase.id,\n defaultMessage: 'Email must be lowercase',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Email is required',\n })\n .nullable(),\n});\n\ninterface RegisterProps {\n hasAdmin?: boolean;\n}\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\nconst Register = ({ hasAdmin }: RegisterProps) => {\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const [submitCount, setSubmitCount] = React.useState(0);\n const [apiError, setApiError] = React.useState<string>();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const setSkipped = useGuidedTour('Register', (state) => state.setSkipped);\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const match = useMatch('/auth/:authType');\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo, error } = useGetRegistrationInfoQuery(registrationToken as string, {\n skip: !registrationToken,\n });\n\n React.useEffect(() => {\n if (error) {\n const message: string = isBaseQueryError(error)\n ? formatAPIError(error)\n : (error.message ?? '');\n\n toggleNotification({\n type: 'danger',\n message,\n });\n\n navigate(`/auth/oops?info=${encodeURIComponent(message)}`);\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const [registerAdmin] = useRegisterAdminMutation();\n const [registerUser] = useRegisterUserMutation();\n const dispatch = useTypedDispatch();\n\n const handleRegisterAdmin = async (\n { news, ...body }: RegisterAdmin.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerAdmin(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n const { roles } = res.data.user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n localStorage.setItem('GUIDED_TOUR_SKIPPED', JSON.stringify(false));\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${true}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n const handleRegisterUser = async (\n { news, ...body }: RegisterUser.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerUser(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n if (\n !match ||\n (match.params.authType !== 'register' && match.params.authType !== 'register-admin')\n ) {\n return <Navigate to=\"/\" />;\n }\n\n const isAdminRegistration = match.params.authType === 'register-admin';\n\n const schema = isAdminRegistration ? REGISTER_ADMIN_SCHEMA : REGISTER_USER_SCHEMA;\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography tag=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n <Typography variant=\"epsilon\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.register.subtitle',\n defaultMessage:\n 'Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.',\n })}\n </Typography>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Flex>\n <Form\n method=\"POST\"\n initialValues={\n {\n firstname: userInfo?.firstname || '',\n lastname: userInfo?.lastname || '',\n email: userInfo?.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n } satisfies RegisterFormValues\n }\n onSubmit={async (data, helpers) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && isAdminRegistration) {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (normalizedData.registrationToken) {\n handleRegisterUser(\n {\n userInfo: omit(normalizedData, [\n 'registrationToken',\n 'confirmPassword',\n 'email',\n 'news',\n ]),\n registrationToken: normalizedData.registrationToken,\n news: normalizedData.news,\n },\n helpers.setErrors\n );\n } else {\n await handleRegisterAdmin(\n omit(normalizedData, ['registrationToken', 'confirmPassword']),\n helpers.setErrors\n );\n }\n } catch (err) {\n if (err instanceof ValidationError) {\n helpers.setErrors(\n err.inner.reduce<Record<string, string>>((acc, { message, path }) => {\n if (path && typeof message === 'object') {\n acc[path] = formatMessage(message);\n }\n return acc;\n }, {})\n );\n }\n setSubmitCount(submitCount + 1);\n }\n }}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid.Root gap={4}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !isAdminRegistration,\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 12,\n type: 'email' as const,\n },\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage(\n {\n id: 'Auth.form.register.news.label',\n defaultMessage:\n 'Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).',\n },\n {\n terms: (\n <A target=\"_blank\" href=\"https://strapi.io/terms\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.terms',\n defaultMessage: 'terms',\n })}\n </A>\n ),\n policy: (\n <A target=\"_blank\" href=\"https://strapi.io/privacy\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.policy',\n defaultMessage: 'policy',\n })}\n </A>\n ),\n }\n ),\n name: 'news',\n size: 12,\n type: 'checkbox' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Button fullWidth size=\"L\" type=\"submit\">\n {formatMessage({\n id: 'Auth.form.button.register',\n defaultMessage: \"Let's start\",\n })}\n </Button>\n </Flex>\n </Form>\n {match?.params.authType === 'register' && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({\n id: 'Auth.link.signin.account',\n defaultMessage: 'Already have an account?',\n })}\n </Link>\n </Flex>\n </Box>\n )}\n </LayoutContent>\n </UnauthenticatedLayout>\n );\n};\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\ntype StringKeys<T> = {\n [K in keyof T]: T[K] extends string | undefined ? K : never;\n}[keyof T];\n\n/**\n * @description Trims all values but the password & sets lastName to null if it's a falsey value.\n */\nfunction normalizeData(data: RegisterFormValues) {\n return Object.entries(data).reduce(\n (acc, [key, value]) => {\n type PasswordKeys = Extract<keyof RegisterFormValues, 'password' | 'confirmPassword'>;\n type RegisterFormStringValues = Exclude<\n keyof Pick<RegisterFormValues, StringKeys<RegisterFormValues>>,\n PasswordKeys\n >;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n acc[key as RegisterFormStringValues] = value.trim();\n\n if (key === 'lastname') {\n acc[key] = value || undefined;\n }\n } else {\n acc[key as PasswordKeys] = value;\n }\n\n return acc;\n },\n {} as {\n firstname: string;\n lastname: string | undefined;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n }\n );\n}\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nexport { Register };\nexport type { RegisterProps };\n"],"names":["REGISTER_USER_SCHEMA","yup","object","shape","firstname","string","trim","required","translatedErrors","nullable","lastname","password","min","id","minLength","defaultMessage","values","test","value","byteSize","getByteSize","matches","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","setSkipped","useGuidedTour","state","search","searchString","useLocation","query","useMemo","URLSearchParams","match","useMatch","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","setNpsSurveySettings","useNpsSurveySettings","get","data","userInfo","error","useGetRegistrationInfoQuery","skip","useEffect","isBaseQueryError","type","encodeURIComponent","registerAdmin","useRegisterAdminMutation","registerUser","useRegisterUserMutation","dispatch","useTypedDispatch","handleRegisterAdmin","news","body","setFormErrors","res","login","token","roles","user","isUserSuperAdmin","find","code","localStorage","setItem","JSON","stringify","s","enabled","pathname","name","handleRegisterUser","params","authType","_jsx","Navigate","to","isAdminRegistration","schema","UnauthenticatedLayout","_jsxs","LayoutContent","Flex","direction","alignItems","gap","Logo","Typography","tag","variant","textAlign","textColor","role","tabIndex","Form","method","initialValues","undefined","onSubmit","helpers","normalizedData","normalizeData","validate","abortEarly","count","toString","omit","setErrors","err","ValidationError","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","col","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
1
+ {"version":3,"file":"Register.mjs","sources":["../../../../../../../admin/src/pages/Auth/components/Register.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, Link } from '@strapi/design-system';\nimport omit from 'lodash/omit';\nimport { useIntl } from 'react-intl';\nimport { NavLink, Navigate, useNavigate, useMatch, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\nimport { ValidationError } from 'yup';\n\nimport {\n Register as RegisterUser,\n RegisterAdmin,\n} from '../../../../../shared/contracts/authentication';\nimport { Form, FormHelpers } from '../../../components/Form';\nimport { InputRenderer } from '../../../components/FormInputs/Renderer';\nimport { useGuidedTour } from '../../../components/GuidedTour/Provider';\nimport { useNpsSurveySettings } from '../../../components/NpsSurvey';\nimport { Logo } from '../../../components/UnauthenticatedLogo';\nimport { useTypedDispatch } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { LayoutContent, UnauthenticatedLayout } from '../../../layouts/UnauthenticatedLayout';\nimport { login } from '../../../reducer';\nimport {\n useGetRegistrationInfoQuery,\n useRegisterAdminMutation,\n useRegisterUserMutation,\n} from '../../../services/auth';\nimport { isBaseQueryError } from '../../../utils/baseQuery';\nimport { getByteSize } from '../../../utils/strings';\nimport { translatedErrors } from '../../../utils/translatedErrors';\n\nconst REGISTER_USER_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required(translatedErrors.required).nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value || typeof value !== 'string') return true; // validated elsewhere\n\n const byteSize = getByteSize(value);\n return byteSize <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n })\n .nullable(),\n registrationToken: yup.string().required({\n id: translatedErrors.required.id,\n defaultMessage: 'Registration token is required',\n }),\n});\n\nconst REGISTER_ADMIN_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Firstname is required',\n })\n .nullable(),\n lastname: yup.string().nullable(),\n password: yup\n .string()\n .min(8, {\n id: translatedErrors.minLength.id,\n defaultMessage: 'Password must be at least 8 characters',\n values: { min: 8 },\n })\n .test(\n 'max-bytes',\n {\n id: 'components.Input.error.contain.maxBytes',\n defaultMessage: 'Password must be less than 73 bytes',\n },\n function (value) {\n if (!value) return true;\n return new TextEncoder().encode(value).length <= 72;\n }\n )\n .matches(/[a-z]/, {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n })\n .matches(/[A-Z]/, {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n })\n .matches(/\\d/, {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Password is required',\n })\n .nullable(),\n confirmPassword: yup\n .string()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Confirm password is required',\n })\n .nullable()\n .oneOf([yup.ref('password'), null], {\n id: 'components.Input.error.password.noMatch',\n defaultMessage: 'Passwords must match',\n }),\n email: yup\n .string()\n .email({\n id: translatedErrors.email.id,\n defaultMessage: 'Not a valid email',\n })\n .strict()\n .lowercase({\n id: translatedErrors.lowercase.id,\n defaultMessage: 'Email must be lowercase',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'Email is required',\n })\n .nullable(),\n});\n\ninterface RegisterProps {\n hasAdmin?: boolean;\n}\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\nconst Register = ({ hasAdmin }: RegisterProps) => {\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n const [submitCount, setSubmitCount] = React.useState(0);\n const [apiError, setApiError] = React.useState<string>();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const setSkipped = useGuidedTour('Register', (state) => state.setSkipped);\n const { search: searchString } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const match = useMatch('/auth/:authType');\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { setNpsSurveySettings } = useNpsSurveySettings();\n\n const registrationToken = query.get('registrationToken');\n\n const { data: userInfo, error } = useGetRegistrationInfoQuery(registrationToken as string, {\n skip: !registrationToken,\n });\n\n React.useEffect(() => {\n if (error) {\n const message: string = isBaseQueryError(error)\n ? formatAPIError(error)\n : (error.message ?? '');\n\n toggleNotification({\n type: 'danger',\n message,\n });\n\n navigate(`/auth/oops?info=${encodeURIComponent(message)}`);\n }\n }, [error, formatAPIError, navigate, toggleNotification]);\n\n const [registerAdmin] = useRegisterAdminMutation();\n const [registerUser] = useRegisterUserMutation();\n const dispatch = useTypedDispatch();\n\n const handleRegisterAdmin = async (\n { news, ...body }: RegisterAdmin.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerAdmin(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n const { roles } = res.data.user;\n\n if (roles) {\n const isUserSuperAdmin = roles.find(({ code }) => code === 'strapi-super-admin');\n\n if (isUserSuperAdmin) {\n localStorage.setItem('GUIDED_TOUR_SKIPPED', JSON.stringify(false));\n setSkipped(false);\n trackUsage('didLaunchGuidedtour');\n }\n }\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${true}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n const handleRegisterUser = async (\n { news, ...body }: RegisterUser.Request['body'] & { news: boolean },\n setFormErrors: FormHelpers<RegisterFormValues>['setErrors']\n ) => {\n const res = await registerUser(body);\n\n if ('data' in res) {\n dispatch(login({ token: res.data.token }));\n\n if (news) {\n // Only enable EE survey if user accepted the newsletter\n setNpsSurveySettings((s) => ({ ...s, enabled: true }));\n\n navigate({\n pathname: '/usecase',\n search: `?hasAdmin=${hasAdmin}`,\n });\n } else {\n navigate('/');\n }\n } else {\n if (isBaseQueryError(res.error)) {\n trackUsage('didNotCreateFirstAdmin');\n\n if (res.error.name === 'ValidationError') {\n setFormErrors(formatValidationErrors(res.error));\n return;\n }\n\n setApiError(formatAPIError(res.error));\n }\n }\n };\n\n if (\n !match ||\n (match.params.authType !== 'register' && match.params.authType !== 'register-admin')\n ) {\n return <Navigate to=\"/\" />;\n }\n\n const isAdminRegistration = match.params.authType === 'register-admin';\n\n const schema = isAdminRegistration ? REGISTER_ADMIN_SCHEMA : REGISTER_USER_SCHEMA;\n\n return (\n <UnauthenticatedLayout>\n <LayoutContent>\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Logo />\n\n <Typography tag=\"h1\" variant=\"alpha\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.welcome.title',\n defaultMessage: 'Welcome to Strapi!',\n })}\n </Typography>\n <Typography variant=\"epsilon\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: 'Auth.form.register.subtitle',\n defaultMessage:\n 'Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.',\n })}\n </Typography>\n {apiError ? (\n <Typography id=\"global-form-error\" role=\"alert\" tabIndex={-1} textColor=\"danger600\">\n {apiError}\n </Typography>\n ) : null}\n </Flex>\n <Form\n method=\"POST\"\n initialValues={\n {\n firstname: userInfo?.firstname || '',\n lastname: userInfo?.lastname || '',\n email: userInfo?.email || '',\n password: '',\n confirmPassword: '',\n registrationToken: registrationToken || undefined,\n news: false,\n } satisfies RegisterFormValues\n }\n onSubmit={async (data, helpers) => {\n const normalizedData = normalizeData(data);\n\n try {\n await schema.validate(normalizedData, { abortEarly: false });\n\n if (submitCount > 0 && isAdminRegistration) {\n trackUsage('didSubmitWithErrorsFirstAdmin', { count: submitCount.toString() });\n }\n\n if (normalizedData.registrationToken) {\n handleRegisterUser(\n {\n userInfo: omit(normalizedData, [\n 'registrationToken',\n 'confirmPassword',\n 'email',\n 'news',\n ]),\n registrationToken: normalizedData.registrationToken,\n news: normalizedData.news,\n },\n helpers.setErrors\n );\n } else {\n await handleRegisterAdmin(\n omit(normalizedData, ['registrationToken', 'confirmPassword']),\n helpers.setErrors\n );\n }\n } catch (err) {\n if (err instanceof ValidationError) {\n helpers.setErrors(\n err.inner.reduce<Record<string, string>>((acc, { message, path }) => {\n if (path && typeof message === 'object') {\n acc[path] = formatMessage(message);\n }\n return acc;\n }, {})\n );\n }\n setSubmitCount(submitCount + 1);\n }\n }}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6} marginTop={7}>\n <Grid.Root gap={4}>\n {[\n {\n label: formatMessage({\n id: 'Auth.form.firstname.label',\n defaultMessage: 'Firstname',\n }),\n name: 'firstname',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Lastname',\n }),\n name: 'lastname',\n size: 6,\n type: 'string' as const,\n },\n {\n disabled: !isAdminRegistration,\n label: formatMessage({\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n }),\n name: 'email',\n required: true,\n size: 12,\n type: 'email' as const,\n },\n {\n hint: formatMessage({\n id: 'Auth.form.password.hint',\n defaultMessage:\n 'Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number',\n }),\n label: formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n }),\n name: 'password',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage({\n id: 'Auth.form.confirmPassword.label',\n defaultMessage: 'Confirm Password',\n }),\n name: 'confirmPassword',\n required: true,\n size: 12,\n type: 'password' as const,\n },\n {\n label: formatMessage(\n {\n id: 'Auth.form.register.news.label',\n defaultMessage:\n 'Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).',\n },\n {\n terms: (\n <A target=\"_blank\" href=\"https://strapi.io/terms\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.terms',\n defaultMessage: 'terms',\n })}\n </A>\n ),\n policy: (\n <A target=\"_blank\" href=\"https://strapi.io/privacy\" rel=\"noreferrer\">\n {formatMessage({\n id: 'Auth.privacy-policy-agreement.policy',\n defaultMessage: 'policy',\n })}\n </A>\n ),\n }\n ),\n name: 'news',\n size: 12,\n type: 'checkbox' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Button fullWidth size=\"L\" type=\"submit\">\n {formatMessage({\n id: 'Auth.form.button.register',\n defaultMessage: \"Let's start\",\n })}\n </Button>\n </Flex>\n </Form>\n {match?.params.authType === 'register' && (\n <Box paddingTop={4}>\n <Flex justifyContent=\"center\">\n <Link tag={NavLink} to=\"/auth/login\">\n {formatMessage({\n id: 'Auth.link.signin.account',\n defaultMessage: 'Already have an account?',\n })}\n </Link>\n </Flex>\n </Box>\n )}\n </LayoutContent>\n </UnauthenticatedLayout>\n );\n};\n\ninterface RegisterFormValues {\n firstname: string;\n lastname: string;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n}\n\ntype StringKeys<T> = {\n [K in keyof T]: T[K] extends string | undefined ? K : never;\n}[keyof T];\n\n/**\n * @description Trims all values but the password & sets lastName to null if it's a falsey value.\n */\nfunction normalizeData(data: RegisterFormValues) {\n return Object.entries(data).reduce(\n (acc, [key, value]) => {\n type PasswordKeys = Extract<keyof RegisterFormValues, 'password' | 'confirmPassword'>;\n type RegisterFormStringValues = Exclude<\n keyof Pick<RegisterFormValues, StringKeys<RegisterFormValues>>,\n PasswordKeys\n >;\n\n if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {\n acc[key as RegisterFormStringValues] = value.trim();\n\n if (key === 'lastname') {\n acc[key] = value || undefined;\n }\n } else {\n acc[key as PasswordKeys] = value;\n }\n\n return acc;\n },\n {} as {\n firstname: string;\n lastname: string | undefined;\n email: string;\n password: string;\n confirmPassword: string;\n registrationToken: string | undefined;\n news: boolean;\n }\n );\n}\n\nconst A = styled.a`\n color: ${({ theme }) => theme.colors.primary600};\n`;\n\nexport { Register };\nexport type { RegisterProps };\n"],"names":["REGISTER_USER_SCHEMA","yup","object","shape","firstname","string","trim","required","translatedErrors","nullable","lastname","password","min","id","minLength","defaultMessage","values","test","value","byteSize","getByteSize","matches","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","setSkipped","useGuidedTour","state","search","searchString","useLocation","query","useMemo","URLSearchParams","match","useMatch","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","setNpsSurveySettings","useNpsSurveySettings","get","data","userInfo","error","useGetRegistrationInfoQuery","skip","useEffect","isBaseQueryError","type","encodeURIComponent","registerAdmin","useRegisterAdminMutation","registerUser","useRegisterUserMutation","dispatch","useTypedDispatch","handleRegisterAdmin","news","body","setFormErrors","res","login","token","roles","user","isUserSuperAdmin","find","code","localStorage","setItem","JSON","stringify","s","enabled","pathname","name","handleRegisterUser","params","authType","_jsx","Navigate","to","isAdminRegistration","schema","UnauthenticatedLayout","_jsxs","LayoutContent","Flex","direction","alignItems","gap","Logo","Typography","tag","variant","textAlign","textColor","role","tabIndex","Form","method","initialValues","undefined","onSubmit","helpers","normalizedData","normalizeData","validate","abortEarly","count","toString","omit","setErrors","err","ValidationError","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","col","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
@@ -13,7 +13,6 @@ require('../../services/admin.js');
13
13
  var useEnterprise = require('../../hooks/useEnterprise.js');
14
14
  var Auth = require('../../features/Auth.js');
15
15
  var StrapiApp = require('../../features/StrapiApp.js');
16
- var ContentManagerWidgets = require('./components/ContentManagerWidgets.js');
17
16
  var GuidedTour = require('./components/GuidedTour.js');
18
17
 
19
18
  function _interopNamespaceDefault(e) {
@@ -47,8 +46,7 @@ const WidgetRoot = ({ title, icon = icons.PuzzlePiece, permissions = [], childre
47
46
  const shouldGrant = matchingPermissions.length >= permissions.length;
48
47
  setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');
49
48
  };
50
- if (// TODO: remove unstable check once widgets API is stable
51
- !window.strapi.future.isEnabled('unstableWidgetsApi') || !permissions || permissions.length === 0) {
49
+ if (!permissions || permissions.length === 0) {
52
50
  setPermissionStatus('granted');
53
51
  } else {
54
52
  checkPermissions();
@@ -138,7 +136,9 @@ const WidgetRoot = ({ title, icon = icons.PuzzlePiece, permissions = [], childre
138
136
  }
139
137
  return /*#__PURE__*/ jsxRuntime.jsx(Component, {});
140
138
  };
141
- const UnstableHomePageCe = ()=>{
139
+ /* -------------------------------------------------------------------------------------------------
140
+ * HomePageCE
141
+ * -----------------------------------------------------------------------------------------------*/ const HomePageCE = ()=>{
142
142
  const { formatMessage } = reactIntl.useIntl();
143
143
  const user = Auth.useAuth('HomePageCE', (state)=>state.user);
144
144
  const displayName = user?.firstname ?? user?.username ?? user?.email;
@@ -195,78 +195,6 @@ const UnstableHomePageCe = ()=>{
195
195
  ]
196
196
  });
197
197
  };
198
- /* -------------------------------------------------------------------------------------------------
199
- * HomePageCE
200
- * -----------------------------------------------------------------------------------------------*/ const HomePageCE = ()=>{
201
- const { formatMessage } = reactIntl.useIntl();
202
- const user = Auth.useAuth('HomePageCE', (state)=>state.user);
203
- const displayName = user?.firstname ?? user?.username ?? user?.email;
204
- if (window.strapi.future.isEnabled('unstableWidgetsApi')) {
205
- return /*#__PURE__*/ jsxRuntime.jsx(UnstableHomePageCe, {});
206
- }
207
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Main, {
208
- children: [
209
- /*#__PURE__*/ jsxRuntime.jsx(PageHelpers.Page.Title, {
210
- children: formatMessage({
211
- id: 'HomePage.head.title',
212
- defaultMessage: 'Homepage'
213
- })
214
- }),
215
- /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Header, {
216
- title: formatMessage({
217
- id: 'HomePage.header.title',
218
- defaultMessage: 'Hello {name}'
219
- }, {
220
- name: displayName
221
- }),
222
- subtitle: formatMessage({
223
- id: 'HomePage.header.subtitle',
224
- defaultMessage: 'Welcome to your administration panel'
225
- })
226
- }),
227
- /*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
228
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
229
- direction: "column",
230
- alignItems: "stretch",
231
- gap: 8,
232
- paddingBottom: 10,
233
- children: [
234
- /*#__PURE__*/ jsxRuntime.jsx(GuidedTour.GuidedTour, {}),
235
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
236
- gap: 5,
237
- children: [
238
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
239
- col: 6,
240
- s: 12,
241
- children: /*#__PURE__*/ jsxRuntime.jsx(WidgetRoot, {
242
- title: {
243
- id: 'content-manager.widget.last-edited.title',
244
- defaultMessage: 'Last edited entries'
245
- },
246
- icon: icons.Pencil,
247
- children: /*#__PURE__*/ jsxRuntime.jsx(ContentManagerWidgets.LastEditedWidget, {})
248
- })
249
- }),
250
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
251
- col: 6,
252
- s: 12,
253
- children: /*#__PURE__*/ jsxRuntime.jsx(WidgetRoot, {
254
- title: {
255
- id: 'content-manager.widget.last-published.title',
256
- defaultMessage: 'Last published entries'
257
- },
258
- icon: icons.CheckCircle,
259
- children: /*#__PURE__*/ jsxRuntime.jsx(ContentManagerWidgets.LastPublishedWidget, {})
260
- })
261
- })
262
- ]
263
- })
264
- ]
265
- })
266
- })
267
- ]
268
- });
269
- };
270
198
  /* -------------------------------------------------------------------------------------------------
271
199
  * HomePage
272
200
  * -----------------------------------------------------------------------------------------------*/ const HomePage = ()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { CheckCircle, Pencil, PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { LastEditedWidget, LastPublishedWidget } from './components/ContentManagerWidgets';\nimport { GuidedTour } from './components/GuidedTour';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (\n // TODO: remove unstable check once widgets API is stable\n !window.strapi.future.isEnabled('unstableWidgetsApi') ||\n !permissions ||\n permissions.length === 0\n ) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\nconst UnstableHomePageCe = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTour />\n <Grid.Root gap={5}>\n {getAllWidgets().map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n if (window.strapi.future.isEnabled('unstableWidgetsApi')) {\n return <UnstableHomePageCe />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTour />\n <Grid.Root gap={5}>\n <Grid.Item col={6} s={12}>\n <WidgetRoot\n title={{\n id: 'content-manager.widget.last-edited.title',\n defaultMessage: 'Last edited entries',\n }}\n icon={Pencil}\n >\n <LastEditedWidget />\n </WidgetRoot>\n </Grid.Item>\n <Grid.Item col={6} s={12}>\n <WidgetRoot\n title={{\n id: 'content-manager.widget.last-published.title',\n defaultMessage: 'Last published entries',\n }}\n icon={CheckCircle}\n >\n <LastPublishedWidget />\n </WidgetRoot>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","window","strapi","future","isEnabled","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","UnstableHomePageCe","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","Content","paddingBottom","GuidedTour","Grid","Root","map","widget","Item","col","s","uid","HomePageCE","Pencil","LastEditedWidget","CheckCircle","LastPublishedWidget","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
1
+ {"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Grid, Main, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nimport { GuidedTour } from './components/GuidedTour';\n\nimport type { WidgetType } from '@strapi/admin/strapi-admin';\n\n/* -------------------------------------------------------------------------------------------------\n * WidgetRoot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {\n children: React.ReactNode;\n}\n\nexport const WidgetRoot = ({\n title,\n icon = PuzzlePiece,\n permissions = [],\n children,\n link,\n}: WidgetRootProps) => {\n const { formatMessage } = useIntl();\n const id = React.useId();\n const Icon = icon;\n\n const [permissionStatus, setPermissionStatus] = React.useState<\n 'loading' | 'granted' | 'forbidden'\n >('loading');\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n React.useEffect(() => {\n const checkPermissions = async () => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const shouldGrant = matchingPermissions.length >= permissions.length;\n setPermissionStatus(shouldGrant ? 'granted' : 'forbidden');\n };\n\n if (!permissions || permissions.length === 0) {\n setPermissionStatus('granted');\n } else {\n checkPermissions();\n }\n }, [checkUserHasPermissions, permissions]);\n\n return (\n <Flex\n width=\"100%\"\n hasRadius\n direction=\"column\"\n alignItems=\"flex-start\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n shadow=\"tableShadow\"\n tag=\"section\"\n gap={4}\n padding={6}\n aria-labelledby={id}\n >\n <Flex direction=\"row\" gap={2} justifyContent=\"space-between\" width=\"100%\" tag=\"header\">\n <Flex gap={2}>\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\" id={id}>\n {formatMessage(title)}\n </Typography>\n </Flex>\n {link && (\n <Typography\n tag={ReactRouterLink}\n variant=\"omega\"\n textColor=\"primary600\"\n style={{ textDecoration: 'none' }}\n to={link.href}\n >\n {formatMessage(link.label)}\n </Typography>\n )}\n </Flex>\n <Box width=\"100%\" height=\"261px\" overflow=\"auto\" tag=\"main\">\n {permissionStatus === 'loading' && <Widget.Loading />}\n {permissionStatus === 'forbidden' && <Widget.NoPermissions />}\n {permissionStatus === 'granted' && children}\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nconst WidgetComponent = ({ component }: { component: () => Promise<React.ComponentType> }) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n\n return (\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTour />\n <Grid.Root gap={5}>\n {getAllWidgets().map((widget) => {\n return (\n <Grid.Item col={6} s={12} key={widget.uid}>\n <WidgetRoot\n title={widget.title}\n icon={widget.icon}\n permissions={widget.permissions}\n link={widget.link}\n >\n <WidgetComponent component={widget.component} />\n </WidgetRoot>\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Flex>\n </Layouts.Content>\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["WidgetRoot","title","icon","PuzzlePiece","permissions","children","link","formatMessage","useIntl","id","React","useId","Icon","permissionStatus","setPermissionStatus","useState","checkUserHasPermissions","useAuth","state","useEffect","checkPermissions","matchingPermissions","shouldGrant","length","_jsxs","Flex","width","hasRadius","direction","alignItems","background","borderColor","shadow","tag","gap","padding","aria-labelledby","justifyContent","_jsx","fill","aria-hidden","Typography","textColor","variant","ReactRouterLink","style","textDecoration","to","href","label","Box","height","overflow","Widget","Loading","NoPermissions","WidgetComponent","component","loadedComponent","setLoadedComponent","loadComponent","resolvedComponent","Component","HomePageCE","user","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","Main","Page","Title","defaultMessage","Layouts","Header","name","subtitle","Content","paddingBottom","GuidedTour","Grid","Root","map","widget","Item","col","s","uid","HomePage","useEnterprise","HomePageEE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BaA,MAAAA,UAAAA,GAAa,CAAC,EACzBC,KAAK,EACLC,IAAAA,GAAOC,iBAAW,EAClBC,cAAc,EAAE,EAChBC,QAAQ,EACRC,IAAI,EACY,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,EAAAA,GAAKC,iBAAMC,KAAK,EAAA;AACtB,IAAA,MAAMC,IAAOV,GAAAA,IAAAA;AAEb,IAAA,MAAM,CAACW,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGJ,gBAAAA,CAAMK,QAAQ,CAE5D,SAAA,CAAA;AACF,IAAA,MAAMC,0BAA0BC,YAAQ,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMF,uBAAuB,CAAA;AAC9FN,IAAAA,gBAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,gBAAmB,GAAA,UAAA;YACvB,MAAMC,mBAAAA,GAAsB,MAAML,uBAAwBZ,CAAAA,WAAAA,CAAAA;AAC1D,YAAA,MAAMkB,WAAcD,GAAAA,mBAAAA,CAAoBE,MAAM,IAAInB,YAAYmB,MAAM;AACpET,YAAAA,mBAAAA,CAAoBQ,cAAc,SAAY,GAAA,WAAA,CAAA;AAChD,SAAA;AAEA,QAAA,IAAI,CAAClB,WAAAA,IAAeA,WAAYmB,CAAAA,MAAM,KAAK,CAAG,EAAA;YAC5CT,mBAAoB,CAAA,SAAA,CAAA;SACf,MAAA;AACLM,YAAAA,gBAAAA,EAAAA;AACF;KACC,EAAA;AAACJ,QAAAA,uBAAAA;AAAyBZ,QAAAA;AAAY,KAAA,CAAA;AAEzC,IAAA,qBACEoB,eAACC,CAAAA,iBAAAA,EAAAA;QACCC,KAAM,EAAA,MAAA;QACNC,SAAS,EAAA,IAAA;QACTC,SAAU,EAAA,QAAA;QACVC,UAAW,EAAA,YAAA;QACXC,UAAW,EAAA,UAAA;QACXC,WAAY,EAAA,YAAA;QACZC,MAAO,EAAA,aAAA;QACPC,GAAI,EAAA,SAAA;QACJC,GAAK,EAAA,CAAA;QACLC,OAAS,EAAA,CAAA;QACTC,iBAAiB3B,EAAAA,EAAAA;;0BAEjBe,eAACC,CAAAA,iBAAAA,EAAAA;gBAAKG,SAAU,EAAA,KAAA;gBAAMM,GAAK,EAAA,CAAA;gBAAGG,cAAe,EAAA,eAAA;gBAAgBX,KAAM,EAAA,MAAA;gBAAOO,GAAI,EAAA,QAAA;;kCAC5ET,eAACC,CAAAA,iBAAAA,EAAAA;wBAAKS,GAAK,EAAA,CAAA;;0CACTI,cAAC1B,CAAAA,IAAAA,EAAAA;gCAAK2B,IAAK,EAAA,YAAA;gCAAaC,aAAW,EAAA;;0CACnCF,cAACG,CAAAA,uBAAAA,EAAAA;gCAAWC,SAAU,EAAA,YAAA;gCAAaC,OAAQ,EAAA,OAAA;gCAAQV,GAAI,EAAA,IAAA;gCAAKxB,EAAIA,EAAAA,EAAAA;0CAC7DF,aAAcN,CAAAA,KAAAA;;;;AAGlBK,oBAAAA,IAAAA,kBACCgC,cAACG,CAAAA,uBAAAA,EAAAA;wBACCR,GAAKW,EAAAA,mBAAAA;wBACLD,OAAQ,EAAA,OAAA;wBACRD,SAAU,EAAA,YAAA;wBACVG,KAAO,EAAA;4BAAEC,cAAgB,EAAA;AAAO,yBAAA;AAChCC,wBAAAA,EAAAA,EAAIzC,KAAK0C,IAAI;AAEZzC,wBAAAA,QAAAA,EAAAA,aAAAA,CAAcD,KAAK2C,KAAK;;;;0BAI/BzB,eAAC0B,CAAAA,gBAAAA,EAAAA;gBAAIxB,KAAM,EAAA,MAAA;gBAAOyB,MAAO,EAAA,OAAA;gBAAQC,QAAS,EAAA,MAAA;gBAAOnB,GAAI,EAAA,MAAA;;oBAClDpB,gBAAqB,KAAA,SAAA,kBAAayB,cAACe,CAAAA,oBAAAA,CAAOC,OAAO,EAAA,EAAA,CAAA;oBACjDzC,gBAAqB,KAAA,WAAA,kBAAeyB,cAACe,CAAAA,oBAAAA,CAAOE,aAAa,EAAA,EAAA,CAAA;AACzD1C,oBAAAA,gBAAAA,KAAqB,SAAaR,IAAAA;;;;;AAI3C;AAEA;;AAEkG,qGAElG,MAAMmD,eAAAA,GAAkB,CAAC,EAAEC,SAAS,EAAqD,GAAA;AACvF,IAAA,MAAM,CAACC,eAAiBC,EAAAA,kBAAAA,CAAmB,GAAGjD,gBAAAA,CAAMK,QAAQ,CAA6B,IAAA,CAAA;AAEzFL,IAAAA,gBAAAA,CAAMS,SAAS,CAAC,IAAA;AACd,QAAA,MAAMyC,aAAgB,GAAA,UAAA;AACpB,YAAA,MAAMC,oBAAoB,MAAMJ,SAAAA,EAAAA;AAEhCE,YAAAA,kBAAAA,CAAmB,IAAME,iBAAAA,CAAAA;AAC3B,SAAA;AAEAD,QAAAA,aAAAA,EAAAA;KACC,EAAA;AAACH,QAAAA;AAAU,KAAA,CAAA;AAEd,IAAA,MAAMK,SAAYJ,GAAAA,eAAAA;AAElB,IAAA,IAAI,CAACI,SAAW,EAAA;QACd,qBAAOxB,cAAA,CAACe,qBAAOC,OAAO,EAAA,EAAA,CAAA;AACxB;AAEA,IAAA,qBAAOhB,cAACwB,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;AACV,CAAA;AAEA;;AAEkG,2GAE5FC,UAAa,GAAA,IAAA;IACjB,MAAM,EAAExD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMwD,OAAO/C,YAAQ,CAAA,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAM8C,IAAI,CAAA;AACxD,IAAA,MAAMC,WAAcD,GAAAA,IAAAA,EAAME,SAAaF,IAAAA,IAAAA,EAAMG,YAAYH,IAAMI,EAAAA,KAAAA;IAE/D,MAAMC,aAAAA,GAAgBC,uBAAa,oBAAsB,EAAA,CAACpD,QAAUA,KAAMqD,CAAAA,OAAO,CAACC,MAAM,CAAA;AAExF,IAAA,qBACEhD,eAACiD,CAAAA,iBAAAA,EAAAA;;AACC,0BAAAnC,cAAA,CAACoC,iBAAKC,KAAK,EAAA;0BACRpE,aAAc,CAAA;oBAAEE,EAAI,EAAA,qBAAA;oBAAuBmE,cAAgB,EAAA;AAAW,iBAAA;;AAEzE,0BAAAtC,cAAA,CAACuC,eAAQC,MAAM,EAAA;AACb7E,gBAAAA,KAAAA,EAAOM,aACL,CAAA;oBAAEE,EAAI,EAAA,uBAAA;oBAAyBmE,cAAgB,EAAA;iBAC/C,EAAA;oBAAEG,IAAMd,EAAAA;AAAY,iBAAA,CAAA;AAEtBe,gBAAAA,QAAAA,EAAUzE,aAAc,CAAA;oBACtBE,EAAI,EAAA,0BAAA;oBACJmE,cAAgB,EAAA;AAClB,iBAAA;;AAEF,0BAAAtC,cAAA,CAACuC,eAAQI,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAzD,eAACC,CAAAA,iBAAAA,EAAAA;oBAAKG,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;oBAAUK,GAAK,EAAA,CAAA;oBAAGgD,aAAe,EAAA,EAAA;;sCACnE5C,cAAC6C,CAAAA,qBAAAA,EAAAA,EAAAA,CAAAA;AACD,sCAAA7C,cAAA,CAAC8C,kBAAKC,IAAI,EAAA;4BAACnD,GAAK,EAAA,CAAA;sCACbmC,aAAgBiB,EAAAA,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;gCACpB,qBACEjD,cAAA,CAAC8C,kBAAKI,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGC,CAAG,EAAA,EAAA;AACpB,oCAAA,QAAA,gBAAApD,cAACtC,CAAAA,UAAAA,EAAAA;AACCC,wCAAAA,KAAAA,EAAOsF,OAAOtF,KAAK;AACnBC,wCAAAA,IAAAA,EAAMqF,OAAOrF,IAAI;AACjBE,wCAAAA,WAAAA,EAAamF,OAAOnF,WAAW;AAC/BE,wCAAAA,IAAAA,EAAMiF,OAAOjF,IAAI;AAEjB,wCAAA,QAAA,gBAAAgC,cAACkB,CAAAA,eAAAA,EAAAA;AAAgBC,4CAAAA,SAAAA,EAAW8B,OAAO9B;;;AAPR8B,iCAAAA,EAAAA,MAAAA,CAAOI,GAAG,CAAA;AAW7C,6BAAA;;;;;;;AAMZ;AAEA;;AAEkG,2GAE5FC,QAAW,GAAA,IAAA;IACf,MAAMlB,IAAAA,GAAOmB,2BACX9B,CAAAA,UAAAA;AAEA,IAAA,UAAY,CAAC,MAAM,oDAAO,4CAAA,KAAyC,EAAG+B,UAAU,CAAA;;AAIlF,IAAA,IAAI,CAACpB,IAAM,EAAA;QACT,OAAO,IAAA;AACT;AAEA,IAAA,qBAAOpC,cAACoC,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACV;;;;;;"}