@strapi/admin 5.50.0 → 5.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/components/ConfirmDialog.js +2 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js +3 -3
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +4 -4
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/Form.js +41 -27
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +41 -27
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js +18 -26
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs +20 -28
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js +2 -2
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.js +3 -3
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +8 -8
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +4 -4
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +4 -4
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +3 -3
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +4 -4
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
- package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +3 -3
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +8 -8
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +7 -7
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +3 -3
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js +6 -6
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +11 -9
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +4 -2
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +9 -5
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +6 -2
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +2 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -3
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js +4 -7
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js +5 -5
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/store/configure.js.map +1 -1
- package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +3 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +3 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js +4 -4
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +5 -3
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +5 -3
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +17 -9
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +15 -7
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +2 -2
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +3 -6
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +4 -8
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +4 -8
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +693 -687
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +693 -687
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.js +22 -0
- package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.mjs +22 -0
- package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/arrays.js.map +1 -1
- package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/objects.js +43 -11
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.mjs +43 -11
- package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
- package/dist/admin/admin/src/utils/once.js.map +1 -1
- package/dist/admin/admin/src/utils/once.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js +2 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs +2 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/shims.js.map +1 -1
- package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
- package/dist/admin/admin/src/utils/widgetVisibility.js +16 -1
- package/dist/admin/admin/src/utils/widgetVisibility.js.map +1 -1
- package/dist/admin/admin/src/utils/widgetVisibility.mjs +14 -2
- package/dist/admin/admin/src/utils/widgetVisibility.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +2 -2
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/src/StrapiApp.d.ts +2 -2
- package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +2 -1
- package/dist/admin/src/components/Form.d.ts +14 -12
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +1 -1
- package/dist/admin/src/components/GuidedTour/Steps/Step.d.ts +1 -1
- package/dist/admin/src/components/SubNav.d.ts +1 -1
- package/dist/admin/src/components/Table.d.ts +3 -2
- package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
- package/dist/admin/src/core/utils/createHook.d.ts +6 -6
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useMenu.d.ts +1 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +2 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +2 -2
- package/dist/admin/src/services/auth.d.ts +12 -12
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/src/utils/arrays.d.ts +1 -1
- package/dist/admin/src/utils/baseQuery.d.ts +1 -1
- package/dist/admin/src/utils/getFetchClient.d.ts +7 -7
- package/dist/admin/src/utils/objects.d.ts +6 -4
- package/dist/admin/src/utils/once.d.ts +1 -1
- package/dist/admin/src/utils/widgetVisibility.d.ts +11 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/tableHeaders.d.ts +2 -1
- package/dist/ee/admin/src/services/ai.d.ts +3 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js +9 -2
- package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +9 -2
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +5 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +5 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +19 -11
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +19 -11
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/permission.js +1 -1
- package/dist/server/server/src/validation/permission.js.map +1 -1
- package/dist/server/server/src/validation/permission.mjs +1 -1
- package/dist/server/server/src/validation/permission.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js +2 -2
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs +2 -2
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -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 { type MessageDescriptor, type PrimitiveType, 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 { 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 { getOrCreateDeviceId } from '../../../utils/deviceId';\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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\ninterface IntlFormattedMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\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 { 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, deviceId: getOrCreateDeviceId() });\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=${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, deviceId: getOrCreateDeviceId() });\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 const formatDescriptor = (msg: any) => {\n try {\n if (!msg) return '';\n if (typeof msg === 'string') return msg;\n // Direct descriptor\n if ('id' in msg && 'defaultMessage' in msg) return formatMessage(msg as any);\n // Wrapped descriptor: { message: { id, defaultMessage } }\n if (msg.message && typeof msg.message === 'object' && 'id' in msg.message) {\n return formatMessage(msg.message as any);\n }\n // errors array: [{ id, defaultMessage }]\n if (Array.isArray(msg.errors) && msg.errors.length > 0) {\n const first = msg.errors[0];\n if (typeof first === 'string') return first;\n if (first && typeof first === 'object' && 'id' in first)\n return formatMessage(first as any);\n }\n // fallback to defaultMessage if present\n if ('defaultMessage' in msg) return msg.defaultMessage;\n return String(msg);\n } catch (e) {\n return String(msg);\n }\n };\n\n const computed = err.inner.reduce<Record<string, string>>(\n (acc, { message, path }) => {\n if (!path) return acc;\n acc[path] = formatDescriptor(message);\n return acc;\n },\n {}\n );\n\n helpers.setErrors(computed);\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\n key={field.name}\n xs={12}\n m={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\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\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","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","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","deviceId","getOrCreateDeviceId","login","token","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","formatDescriptor","msg","Array","isArray","errors","first","String","e","computed","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","xs","m","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, type MessageDescriptor } 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 { 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 { getOrCreateDeviceId } from '../../../utils/deviceId';\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === 'object' && !Array.isArray(value) && value !== null;\n};\n\nconst isMessageDescriptor = (value: unknown): value is MessageDescriptor => {\n return (\n isRecord(value) && typeof value.id === 'string' && typeof value.defaultMessage === 'string'\n );\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 { 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, deviceId: getOrCreateDeviceId() });\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=${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, deviceId: getOrCreateDeviceId() });\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 const formatDescriptor = (msg: unknown) => {\n try {\n if (msg === undefined || msg === null) return '';\n if (typeof msg === 'string') return msg;\n // Direct descriptor\n if (isMessageDescriptor(msg)) return formatMessage(msg);\n // Wrapped descriptor: { message: { id, defaultMessage } }\n if (isRecord(msg) && isMessageDescriptor(msg.message)) {\n return formatMessage(msg.message);\n }\n // errors array: [{ id, defaultMessage }]\n if (isRecord(msg) && Array.isArray(msg.errors) && msg.errors.length > 0) {\n const first = msg.errors[0];\n if (typeof first === 'string') return first;\n if (isMessageDescriptor(first)) return formatMessage(first);\n }\n // fallback to defaultMessage if present\n if (isRecord(msg) && typeof msg.defaultMessage === 'string') {\n return msg.defaultMessage;\n }\n return String(msg);\n } catch {\n return String(msg);\n }\n };\n\n const computed = err.inner.reduce<Record<string, string>>(\n (acc, { message, path }) => {\n if (!path) return acc;\n acc[path] = formatDescriptor(message);\n return acc;\n },\n {}\n );\n\n helpers.setErrors(computed);\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\n key={field.name}\n xs={12}\n m={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\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\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","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","isRecord","Array","isArray","isMessageDescriptor","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","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","deviceId","getOrCreateDeviceId","login","token","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","formatDescriptor","msg","errors","first","String","computed","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","xs","m","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
|
|
@@ -149,6 +149,12 @@ const REGISTER_ADMIN_SCHEMA = yup.object().shape({
|
|
|
149
149
|
defaultMessage: 'Email is required'
|
|
150
150
|
}).nullable()
|
|
151
151
|
});
|
|
152
|
+
const isRecord = (value)=>{
|
|
153
|
+
return typeof value === 'object' && !Array.isArray(value) && value !== null;
|
|
154
|
+
};
|
|
155
|
+
const isMessageDescriptor = (value)=>{
|
|
156
|
+
return isRecord(value) && typeof value.id === 'string' && typeof value.defaultMessage === 'string';
|
|
157
|
+
};
|
|
152
158
|
const Register = ({ hasAdmin })=>{
|
|
153
159
|
const { toggleNotification } = useNotification();
|
|
154
160
|
const navigate = useNavigate();
|
|
@@ -337,24 +343,26 @@ const Register = ({ hasAdmin })=>{
|
|
|
337
343
|
if (err instanceof ValidationError) {
|
|
338
344
|
const formatDescriptor = (msg)=>{
|
|
339
345
|
try {
|
|
340
|
-
if (
|
|
346
|
+
if (msg === undefined || msg === null) return '';
|
|
341
347
|
if (typeof msg === 'string') return msg;
|
|
342
348
|
// Direct descriptor
|
|
343
|
-
if (
|
|
349
|
+
if (isMessageDescriptor(msg)) return formatMessage(msg);
|
|
344
350
|
// Wrapped descriptor: { message: { id, defaultMessage } }
|
|
345
|
-
if (msg
|
|
351
|
+
if (isRecord(msg) && isMessageDescriptor(msg.message)) {
|
|
346
352
|
return formatMessage(msg.message);
|
|
347
353
|
}
|
|
348
354
|
// errors array: [{ id, defaultMessage }]
|
|
349
|
-
if (Array.isArray(msg.errors) && msg.errors.length > 0) {
|
|
355
|
+
if (isRecord(msg) && Array.isArray(msg.errors) && msg.errors.length > 0) {
|
|
350
356
|
const first = msg.errors[0];
|
|
351
357
|
if (typeof first === 'string') return first;
|
|
352
|
-
if (first
|
|
358
|
+
if (isMessageDescriptor(first)) return formatMessage(first);
|
|
353
359
|
}
|
|
354
360
|
// fallback to defaultMessage if present
|
|
355
|
-
if (
|
|
361
|
+
if (isRecord(msg) && typeof msg.defaultMessage === 'string') {
|
|
362
|
+
return msg.defaultMessage;
|
|
363
|
+
}
|
|
356
364
|
return String(msg);
|
|
357
|
-
} catch
|
|
365
|
+
} catch {
|
|
358
366
|
return String(msg);
|
|
359
367
|
}
|
|
360
368
|
};
|
|
@@ -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 { type MessageDescriptor, type PrimitiveType, 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 { 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 { getOrCreateDeviceId } from '../../../utils/deviceId';\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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\ninterface IntlFormattedMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\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 { 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, deviceId: getOrCreateDeviceId() });\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=${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, deviceId: getOrCreateDeviceId() });\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 const formatDescriptor = (msg: any) => {\n try {\n if (!msg) return '';\n if (typeof msg === 'string') return msg;\n // Direct descriptor\n if ('id' in msg && 'defaultMessage' in msg) return formatMessage(msg as any);\n // Wrapped descriptor: { message: { id, defaultMessage } }\n if (msg.message && typeof msg.message === 'object' && 'id' in msg.message) {\n return formatMessage(msg.message as any);\n }\n // errors array: [{ id, defaultMessage }]\n if (Array.isArray(msg.errors) && msg.errors.length > 0) {\n const first = msg.errors[0];\n if (typeof first === 'string') return first;\n if (first && typeof first === 'object' && 'id' in first)\n return formatMessage(first as any);\n }\n // fallback to defaultMessage if present\n if ('defaultMessage' in msg) return msg.defaultMessage;\n return String(msg);\n } catch (e) {\n return String(msg);\n }\n };\n\n const computed = err.inner.reduce<Record<string, string>>(\n (acc, { message, path }) => {\n if (!path) return acc;\n acc[path] = formatDescriptor(message);\n return acc;\n },\n {}\n );\n\n helpers.setErrors(computed);\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\n key={field.name}\n xs={12}\n m={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\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\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","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","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","deviceId","getOrCreateDeviceId","login","token","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","formatDescriptor","msg","Array","isArray","errors","first","String","e","computed","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","xs","m","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, type MessageDescriptor } 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 { 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 { getOrCreateDeviceId } from '../../../utils/deviceId';\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 .test(\n 'lowercase',\n {\n message: {\n id: 'components.Input.error.contain.lowercase',\n defaultMessage: 'Password must contain at least 1 lowercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[a-z]/.test(value);\n }\n )\n .test(\n 'uppercase',\n {\n message: {\n id: 'components.Input.error.contain.uppercase',\n defaultMessage: 'Password must contain at least 1 uppercase letter',\n },\n },\n (value) => {\n if (!value) return true;\n return /[A-Z]/.test(value);\n }\n )\n .test(\n 'number',\n {\n message: {\n id: 'components.Input.error.contain.number',\n defaultMessage: 'Password must contain at least 1 number',\n },\n },\n (value) => {\n if (!value) return true;\n return /\\d/.test(value);\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 isRecord = (value: unknown): value is Record<string, unknown> => {\n return typeof value === 'object' && !Array.isArray(value) && value !== null;\n};\n\nconst isMessageDescriptor = (value: unknown): value is MessageDescriptor => {\n return (\n isRecord(value) && typeof value.id === 'string' && typeof value.defaultMessage === 'string'\n );\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 { 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, deviceId: getOrCreateDeviceId() });\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=${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, deviceId: getOrCreateDeviceId() });\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 const formatDescriptor = (msg: unknown) => {\n try {\n if (msg === undefined || msg === null) return '';\n if (typeof msg === 'string') return msg;\n // Direct descriptor\n if (isMessageDescriptor(msg)) return formatMessage(msg);\n // Wrapped descriptor: { message: { id, defaultMessage } }\n if (isRecord(msg) && isMessageDescriptor(msg.message)) {\n return formatMessage(msg.message);\n }\n // errors array: [{ id, defaultMessage }]\n if (isRecord(msg) && Array.isArray(msg.errors) && msg.errors.length > 0) {\n const first = msg.errors[0];\n if (typeof first === 'string') return first;\n if (isMessageDescriptor(first)) return formatMessage(first);\n }\n // fallback to defaultMessage if present\n if (isRecord(msg) && typeof msg.defaultMessage === 'string') {\n return msg.defaultMessage;\n }\n return String(msg);\n } catch {\n return String(msg);\n }\n };\n\n const computed = err.inner.reduce<Record<string, string>>(\n (acc, { message, path }) => {\n if (!path) return acc;\n acc[path] = formatDescriptor(message);\n return acc;\n },\n {}\n );\n\n helpers.setErrors(computed);\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\n key={field.name}\n xs={12}\n m={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\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\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","message","confirmPassword","oneOf","ref","registrationToken","REGISTER_ADMIN_SCHEMA","TextEncoder","encode","length","email","strict","lowercase","isRecord","Array","isArray","isMessageDescriptor","Register","hasAdmin","toggleNotification","useNotification","navigate","useNavigate","submitCount","setSubmitCount","React","useState","apiError","setApiError","trackUsage","useTracking","formatMessage","useIntl","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","deviceId","getOrCreateDeviceId","login","token","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","formatDescriptor","msg","errors","first","String","computed","inner","reduce","acc","path","marginTop","Grid","Root","label","size","disabled","hint","terms","A","target","href","rel","policy","map","field","Item","xs","m","InputRenderer","Button","fullWidth","Box","paddingTop","justifyContent","Link","NavLink","Object","entries","key","includes","styled","a","theme","colors","primary600"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
6
|
var icons = require('@strapi/icons');
|
|
7
7
|
var reactIntl = require('react-intl');
|
|
8
|
-
var
|
|
8
|
+
var styledComponents = require('styled-components');
|
|
9
9
|
var DragLayer = require('../../components/DragLayer.js');
|
|
10
10
|
var GapDropZone = require('../../components/GapDropZone.js');
|
|
11
11
|
var Overview = require('../../components/GuidedTour/Overview.js');
|
|
@@ -57,7 +57,7 @@ const getWidgetPermissionsCacheKey = (permissions)=>{
|
|
|
57
57
|
})).sort().join('|');
|
|
58
58
|
};
|
|
59
59
|
// Styled wrapper for the drag preview
|
|
60
|
-
const DragPreviewWrapper =
|
|
60
|
+
const DragPreviewWrapper = styledComponents.styled.div`
|
|
61
61
|
max-width: ${(props)=>props.$maxWidth};
|
|
62
62
|
overflow: hidden;
|
|
63
63
|
opacity: 0.9;
|