@verdaccio/ui-components 5.0.0-next-9.8 → 5.0.0-next-9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/build/Theme/ResetStyles.d.ts +1 -1
  2. package/build/Theme/StyleBaseline.d.ts +1 -2
  3. package/build/Theme/ThemeProvider.d.ts +1 -1
  4. package/build/Theme/modes.d.ts +13 -1
  5. package/build/Theme/modes.js +18 -3
  6. package/build/Theme/modes.js.map +1 -1
  7. package/build/Theme/modes.mjs +16 -2
  8. package/build/Theme/modes.mjs.map +1 -1
  9. package/build/Theme/theme.d.ts +27 -3
  10. package/build/Theme/theme.js.map +1 -1
  11. package/build/Theme/theme.mjs.map +1 -1
  12. package/build/api/use-data-mutation.d.ts +3 -3
  13. package/build/api/use-data.d.ts +2 -2
  14. package/build/components/ActionBar/ActionBar.d.ts +1 -1
  15. package/build/components/ActionBar/ActionBarAction.d.ts +7 -2
  16. package/build/components/ActionBar/ActionBarAction.mjs +2 -2
  17. package/build/components/ActionBar/ActionBarAction.mjs.map +1 -1
  18. package/build/components/AppRoute/AppRoute.d.ts +1 -1
  19. package/build/components/AppRoute/AppRoute.js +54 -47
  20. package/build/components/AppRoute/AppRoute.js.map +1 -1
  21. package/build/components/AppRoute/AppRoute.mjs +54 -47
  22. package/build/components/AppRoute/AppRoute.mjs.map +1 -1
  23. package/build/components/Author/Author.d.ts +1 -1
  24. package/build/components/Author/styles.d.ts +9 -2
  25. package/build/components/CopyClipboard/CopyToClipBoard.d.ts +1 -1
  26. package/build/components/CopyClipboard/utils.d.ts +1 -1
  27. package/build/components/Dependencies/Dependencies.d.ts +1 -1
  28. package/build/components/Dependencies/DependencyBlock.d.ts +15 -7
  29. package/build/components/Dependencies/DependencyBlock.mjs +2 -2
  30. package/build/components/Dependencies/DependencyBlock.mjs.map +1 -1
  31. package/build/components/Dependencies/index.js +1 -1
  32. package/build/components/Dependencies/types.d.ts +1 -1
  33. package/build/components/Deprecated/Deprecated.d.ts +1 -1
  34. package/build/components/Developers/Developers.d.ts +8 -3
  35. package/build/components/Developers/Title.d.ts +1 -1
  36. package/build/components/Developers/Title.mjs +2 -2
  37. package/build/components/Developers/Title.mjs.map +1 -1
  38. package/build/components/Developers/get-unique-developer-values.d.ts +1 -1
  39. package/build/components/Distribution/Dist.d.ts +2 -2
  40. package/build/components/Distribution/styles.d.ts +12 -3
  41. package/build/components/Distribution/styles.mjs +2 -2
  42. package/build/components/Distribution/styles.mjs.map +1 -1
  43. package/build/components/Engines/Engines.d.ts +2 -2
  44. package/build/components/Engines/styles.d.ts +9 -2
  45. package/build/components/Engines/styles.mjs +2 -2
  46. package/build/components/Engines/styles.mjs.map +1 -1
  47. package/build/components/ErrorBoundary/ErrorBoundary.d.ts +1 -2
  48. package/build/components/Forbidden/Forbidden.d.ts +1 -1
  49. package/build/components/FundButton/FundButton.d.ts +1 -1
  50. package/build/components/FundButton/FundButton.js +1 -1
  51. package/build/components/FundButton/FundButton.js.map +1 -1
  52. package/build/components/FundButton/FundButton.mjs +1 -1
  53. package/build/components/FundButton/FundButton.mjs.map +1 -1
  54. package/build/components/HeaderInfoDialog/HeaderInfoDialog.d.ts +1 -1
  55. package/build/components/Heading/Heading.d.ts +2 -2
  56. package/build/components/Heading/Heading.mjs +2 -2
  57. package/build/components/Heading/Heading.mjs.map +1 -1
  58. package/build/components/Help/Help.d.ts +1 -1
  59. package/build/components/Help/Help.mjs +3 -3
  60. package/build/components/Help/Help.mjs.map +1 -1
  61. package/build/components/Help/styles.d.ts +3 -1
  62. package/build/components/Icons/DevsIcons/CommonJS.d.ts +1 -1
  63. package/build/components/Icons/DevsIcons/ES6Module.d.ts +1 -1
  64. package/build/components/Icons/DevsIcons/Git.d.ts +1 -1
  65. package/build/components/Icons/DevsIcons/NodeJS.d.ts +1 -1
  66. package/build/components/Icons/DevsIcons/TypeScript.d.ts +1 -1
  67. package/build/components/Icons/DevsIcons/commonjs.svg +4 -0
  68. package/build/components/Icons/DevsIcons/es6module.svg +4 -0
  69. package/build/components/Icons/DevsIcons/git.svg +4 -0
  70. package/build/components/Icons/DevsIcons/nodejs.svg +6 -0
  71. package/build/components/Icons/DevsIcons/typescript.svg +4 -0
  72. package/build/components/Icons/Earth.d.ts +1 -1
  73. package/build/components/Icons/FileBinary.d.ts +1 -1
  74. package/build/components/Icons/Law.d.ts +1 -1
  75. package/build/components/Icons/License.d.ts +1 -1
  76. package/build/components/Icons/Managers/Npm.d.ts +1 -1
  77. package/build/components/Icons/Managers/Pnpm.d.ts +1 -1
  78. package/build/components/Icons/Managers/Yarn.d.ts +1 -1
  79. package/build/components/Icons/Managers/npm.svg +15 -0
  80. package/build/components/Icons/Managers/pnpm.svg +1 -0
  81. package/build/components/Icons/Managers/yarn.svg +1 -0
  82. package/build/components/Icons/SvgIcon.d.ts +2 -2
  83. package/build/components/Icons/Time.d.ts +1 -1
  84. package/build/components/Icons/Version.d.ts +1 -1
  85. package/build/components/Install/Install.d.ts +3 -3
  86. package/build/components/Install/InstallListItem.d.ts +1 -1
  87. package/build/components/Keywords/KeywordListItems.d.ts +1 -1
  88. package/build/components/Keywords/Keywords.d.ts +2 -2
  89. package/build/components/Keywords/Keywords.mjs +2 -2
  90. package/build/components/Keywords/Keywords.mjs.map +1 -1
  91. package/build/components/Label/Label.d.ts +2 -2
  92. package/build/components/Link/Link.d.ts +1 -1
  93. package/build/components/Link/Link.mjs +2 -2
  94. package/build/components/Link/Link.mjs.map +1 -1
  95. package/build/components/LinkExternal/LinkExternal.d.ts +1 -1
  96. package/build/components/Loading/Loading.d.ts +1 -1
  97. package/build/components/Loading/Spinner/Spinner.d.ts +1 -1
  98. package/build/components/Loading/styles.d.ts +7 -7
  99. package/build/components/LoginDialog/LoginDialog.d.ts +1 -1
  100. package/build/components/LoginDialog/LoginDialogCloseButton.d.ts +1 -1
  101. package/build/components/LoginDialog/LoginDialogCloseButton.js +2 -2
  102. package/build/components/LoginDialog/LoginDialogCloseButton.js.map +1 -1
  103. package/build/components/LoginDialog/LoginDialogCloseButton.mjs +2 -2
  104. package/build/components/LoginDialog/LoginDialogCloseButton.mjs.map +1 -1
  105. package/build/components/LoginDialog/LoginDialogForm.d.ts +1 -1
  106. package/build/components/LoginDialog/LoginDialogFormError.d.ts +1 -1
  107. package/build/components/LoginForm/Login.d.ts +2 -2
  108. package/build/components/LoginForm/Login.mjs +2 -2
  109. package/build/components/LoginForm/Login.mjs.map +1 -1
  110. package/build/components/LoginForm/PasswordField.d.ts +3 -3
  111. package/build/components/LoginForm/UsernameField.d.ts +3 -3
  112. package/build/components/LoginForm/styles.d.ts +1 -1
  113. package/build/components/LoginForm/styles.js +2 -2
  114. package/build/components/LoginForm/styles.js.map +1 -1
  115. package/build/components/LoginForm/styles.mjs +2 -2
  116. package/build/components/LoginForm/styles.mjs.map +1 -1
  117. package/build/components/LoginForm/useLoginForm.d.ts +17 -17
  118. package/build/components/Logo/Logo.d.ts +1 -1
  119. package/build/components/Logo/img/logo-black-and-white.svg +1 -0
  120. package/build/components/Logo/img/logo.svg +1 -0
  121. package/build/components/MenuItem/MenuItem.d.ts +2 -2
  122. package/build/components/NoItems/NoItems.d.ts +1 -1
  123. package/build/components/NoItems/NoItems.mjs +2 -2
  124. package/build/components/NoItems/NoItems.mjs.map +1 -1
  125. package/build/components/NotFound/NotFound.d.ts +1 -1
  126. package/build/components/NotFound/img/package.svg +1 -0
  127. package/build/components/Package/Package.d.ts +3 -3
  128. package/build/components/Package/Package.js.map +1 -1
  129. package/build/components/Package/Package.mjs +2 -2
  130. package/build/components/Package/Package.mjs.map +1 -1
  131. package/build/components/Package/styles.d.ts +39 -29
  132. package/build/components/PackageList/PackageList.d.ts +2 -2
  133. package/build/components/Person/Person.d.ts +2 -2
  134. package/build/components/Person/PersonTooltip.d.ts +2 -2
  135. package/build/components/Person/PersonTooltip.mjs +2 -2
  136. package/build/components/Person/PersonTooltip.mjs.map +1 -1
  137. package/build/components/Person/utils.d.ts +1 -1
  138. package/build/components/RawViewer/RawViewer.d.ts +1 -1
  139. package/build/components/Readme/Readme.d.ts +2 -5
  140. package/build/components/Readme/Readme.js +6 -6
  141. package/build/components/Readme/Readme.js.map +1 -1
  142. package/build/components/Readme/Readme.mjs +6 -6
  143. package/build/components/Readme/Readme.mjs.map +1 -1
  144. package/build/components/Readme/github-markdown.css +1592 -0
  145. package/build/components/Readme/hljs-github-dark.css +117 -0
  146. package/build/components/Readme/hljs-github-light.css +117 -0
  147. package/build/components/RegistryInfoDialog/RegistryInfoDialog.d.ts +2 -2
  148. package/build/components/RegistryInfoDialog/styles.d.ts +11 -7
  149. package/build/components/RegistryInfoDialog/types.d.ts +1 -1
  150. package/build/components/Repository/Repository.d.ts +1 -1
  151. package/build/components/Repository/Repository.mjs +2 -2
  152. package/build/components/Repository/Repository.mjs.map +1 -1
  153. package/build/components/Search/AutoComplete/AutoComplete.d.ts +2 -3
  154. package/build/components/Search/AutoComplete/styles.d.ts +3 -3
  155. package/build/components/Search/Search.d.ts +1 -1
  156. package/build/components/Search/SearchItem.d.ts +4 -4
  157. package/build/components/Search/styles.d.ts +10 -6
  158. package/build/components/SettingsMenu/SettingsMenu.d.ts +1 -1
  159. package/build/components/SideBarTitle/SideBarTitle.d.ts +1 -1
  160. package/build/components/UnAuthorized/UnAuthorized.d.ts +1 -1
  161. package/build/components/UpLinks/UpLinks.d.ts +1 -1
  162. package/build/components/UpLinks/UplinkLink.d.ts +1 -1
  163. package/build/components/UpLinks/index.js +1 -1
  164. package/build/components/UpLinks/styles.d.ts +11 -7
  165. package/build/components/UpLinks/styles.mjs +2 -2
  166. package/build/components/UpLinks/styles.mjs.map +1 -1
  167. package/build/components/Versions/HistoryList.d.ts +2 -2
  168. package/build/components/Versions/TagList.d.ts +2 -2
  169. package/build/components/Versions/Versions.d.ts +7 -2
  170. package/build/components/Versions/Versions.mjs +2 -2
  171. package/build/components/Versions/Versions.mjs.map +1 -1
  172. package/build/components/Versions/index.js +1 -1
  173. package/build/components/Versions/styles.d.ts +6 -6
  174. package/build/components/Versions/types.d.ts +1 -1
  175. package/build/configuration.d.ts +1 -1
  176. package/build/hooks/useOnClickOutside.d.ts +1 -1
  177. package/build/index.d.ts +0 -3
  178. package/build/index.js +59 -62
  179. package/build/index.mjs +2 -6
  180. package/build/layouts/Security/Dialog.d.ts +1 -1
  181. package/build/layouts/Version/Version.d.ts +1 -1
  182. package/build/pages/Front/index.js +1 -1
  183. package/build/pages/Version/Version.d.ts +1 -1
  184. package/build/pages/Version/index.js +1 -1
  185. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.d.ts +2 -2
  186. package/build/providers/AuthProvider/AuthProvider.d.ts +2 -3
  187. package/build/providers/AuthProvider/AuthProvider.js +11 -10
  188. package/build/providers/AuthProvider/AuthProvider.js.map +1 -1
  189. package/build/providers/AuthProvider/AuthProvider.mjs +12 -11
  190. package/build/providers/AuthProvider/AuthProvider.mjs.map +1 -1
  191. package/build/providers/AuthProvider/types.d.ts +1 -1
  192. package/build/providers/AuthProvider/utils.d.ts +1 -1
  193. package/build/providers/DownloadProvider/DownloadProvider.d.ts +1 -2
  194. package/build/providers/ManifestsProvider/ManifestsProvider.d.ts +2 -3
  195. package/build/providers/ManifestsProvider/README.md +22 -0
  196. package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.d.ts +1 -2
  197. package/build/providers/SearchProvider/SearchProvider.d.ts +2 -3
  198. package/build/providers/TranslatorProvider/TranslatorProvider.d.ts +2 -3
  199. package/build/providers/VersionProvider/README.md +22 -0
  200. package/build/providers/VersionProvider/VersionProvider.d.ts +2 -2
  201. package/build/routes/SecurityRoutes.d.ts +1 -1
  202. package/build/sections/Detail/ContainerContent.d.ts +1 -1
  203. package/build/sections/Detail/Detail.d.ts +1 -1
  204. package/build/sections/Detail/ReadmeSection.d.ts +1 -1
  205. package/build/sections/Detail/Tabs.d.ts +1 -1
  206. package/build/sections/Footer/Footer.d.ts +1 -1
  207. package/build/sections/Footer/styles.d.ts +17 -17
  208. package/build/sections/Header/Header.d.ts +1 -1
  209. package/build/sections/Header/HeaderGreetings.d.ts +1 -1
  210. package/build/sections/Header/HeaderLeft.d.ts +1 -1
  211. package/build/sections/Header/HeaderMenu.d.ts +1 -2
  212. package/build/sections/Header/HeaderMenu.js +10 -11
  213. package/build/sections/Header/HeaderMenu.js.map +1 -1
  214. package/build/sections/Header/HeaderMenu.mjs +10 -11
  215. package/build/sections/Header/HeaderMenu.mjs.map +1 -1
  216. package/build/sections/Header/HeaderRight.d.ts +1 -1
  217. package/build/sections/Header/HeaderSettingsDialog.d.ts +1 -1
  218. package/build/sections/Header/HeaderToolTip.d.ts +2 -2
  219. package/build/sections/Header/HeaderToolTipIcon.d.ts +1 -1
  220. package/build/sections/Header/LanguageSwitch.d.ts +12 -3
  221. package/build/sections/Header/LanguageSwitch.mjs +2 -2
  222. package/build/sections/Header/LanguageSwitch.mjs.map +1 -1
  223. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.d.ts +7 -8
  224. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +5 -5
  225. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs.map +1 -1
  226. package/build/sections/Header/RegistryInfoContent/styles.d.ts +7 -7
  227. package/build/sections/Header/styles.d.ts +33 -19
  228. package/build/sections/Home/Home.d.ts +1 -1
  229. package/build/sections/Security/AddUser.d.ts +1 -1
  230. package/build/sections/Security/AddUser.js +0 -1
  231. package/build/sections/Security/AddUser.js.map +1 -1
  232. package/build/sections/Security/AddUser.mjs +0 -1
  233. package/build/sections/Security/AddUser.mjs.map +1 -1
  234. package/build/sections/Security/ChangePassword.d.ts +1 -1
  235. package/build/sections/Security/ChangePassword.js +0 -1
  236. package/build/sections/Security/ChangePassword.js.map +1 -1
  237. package/build/sections/Security/ChangePassword.mjs +0 -1
  238. package/build/sections/Security/ChangePassword.mjs.map +1 -1
  239. package/build/sections/Security/Login.d.ts +1 -1
  240. package/build/sections/Security/Login.js +4 -6
  241. package/build/sections/Security/Login.js.map +1 -1
  242. package/build/sections/Security/Login.mjs +5 -7
  243. package/build/sections/Security/Login.mjs.map +1 -1
  244. package/build/sections/Security/Success.d.ts +1 -1
  245. package/build/sections/Security/styles.d.ts +5 -3
  246. package/build/sections/Security/styles.js +1 -1
  247. package/build/sections/Security/styles.js.map +1 -1
  248. package/build/sections/Security/styles.mjs +1 -1
  249. package/build/sections/Security/styles.mjs.map +1 -1
  250. package/build/sections/SideBar/Sidebar.d.ts +1 -1
  251. package/build/types/index.d.ts +1 -1
  252. package/build/types/packageMeta.d.ts +1 -1
  253. package/build/ui-components.css +941 -313
  254. package/build/utils/cli-utils.d.ts +1 -1
  255. package/build/utils/loadable.d.ts +1 -1
  256. package/build/utils/utils.d.ts +2 -2
  257. package/package.json +7 -8
  258. package/build/pages/Security/index.js +0 -4
  259. package/build/pages/Security/index.mjs +0 -4
  260. package/build/test/i18n-config.d.ts +0 -2
  261. package/build/test/test-react-testing-library.d.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePassword.js","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChangePassword.js","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":"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"}
@@ -63,7 +63,6 @@ var ChangePassword = () => {
63
63
  if (!changePasswordEnabled) navigate("/");
64
64
  }, [changePasswordEnabled, navigate]);
65
65
  return changePasswordEnabled ? /* @__PURE__ */ jsx(SecurityLayout, { children: /* @__PURE__ */ jsx(SecurityContainer, { children: /* @__PURE__ */ jsxs(SecurityForm, {
66
- component: "form",
67
66
  onSubmit: handleSubmit(onSubmit),
68
67
  children: [
69
68
  /* @__PURE__ */ jsx(Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePassword.mjs","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAM,uBAAiC;CACrC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,wBAAwB,eAAe,OAAO;CAapD,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aAfX,QAAkC;EAC7C,MAAM;EACN,eAAe;GACb,UAAU;GACV,aAAa;GACb,aAAa;GACb,iBAAiB;GAClB;EACD,UAAU,YAAY,qBAAqB;EAC5C,CAAC;CASF,MAAM,EAAE,YAAY,gBAAgC,UAAU,SAAS,gBAAgB,MAAM;CAE7F,MAAM,uBAAuB,YAC3B,OAAO,SAAqD;AAC1D,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAAmC;AACxC,MAAI;AACF,SAAM,qBAAqB,EACzB,UAAU;IACR,KAAK,KAAK;IACV,KAAK,KAAK;IACX,EACF,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,iBAAiB;UAChE;AACN,YAAS,QAAQ;IACf,MAAM;IACN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAsB;EAAU;EAAS,CAC3C;AAED,iBAAgB;AACd,MAAI,CAAC,sBACH,UAAS,IAAI;IAEd,CAAC,uBAAuB,SAAS,CAAC;AAErC,QAAO,wBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,WAAU;EAAO,UAAU,aAAa,SAAS;YAA/D;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,gCAAgC;IACxB,CAAA;GACb,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,UAAU;IAC7B,OAAO,EAAE,mCAAmC;IAC5C,GAAI,SAAS,WAAW;IACxB,UAAU;IACV,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,iBAAiB;IACpC,OAAO,EAAE,0CAA0C;IACnD,GAAI,SAAS,kBAAkB;IAC/B,UAAU;IACV,MAAK;IACL,CAAA;GACD,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,iCAAiC;IAC7B,CAAA;GACI;KACG,CAAA,EACL,CAAA,GACf"}
1
+ {"version":3,"file":"ChangePassword.mjs","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAM,uBAAiC;CACrC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,wBAAwB,eAAe,OAAO;CAapD,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aAfX,QAAkC;EAC7C,MAAM;EACN,eAAe;GACb,UAAU;GACV,aAAa;GACb,aAAa;GACb,iBAAiB;GAClB;EACD,UAAU,YAAY,qBAAqB;EAC5C,CAAC;CASF,MAAM,EAAE,YAAY,gBAAgC,UAAU,SAAS,gBAAgB,MAAM;CAE7F,MAAM,uBAAuB,YAC3B,OAAO,SAAqD;AAC1D,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAAmC;AACxC,MAAI;AACF,SAAM,qBAAqB,EACzB,UAAU;IACR,KAAK,KAAK;IACV,KAAK,KAAK;IACX,EACF,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,iBAAiB;UAChE;AACN,YAAS,QAAQ;IACf,MAAM;IACN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAsB;EAAU;EAAS,CAC3C;AAED,iBAAgB;AACd,MAAI,CAAC,sBACH,UAAS,IAAI;IAEd,CAAC,uBAAuB,SAAS,CAAC;AAErC,QAAO,wBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,UAAU,aAAa,SAAS;YAA9C;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,gCAAgC;IACxB,CAAA;GACb,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,UAAU;IAC7B,OAAO,EAAE,mCAAmC;IAC5C,GAAI,SAAS,WAAW;IACxB,UAAU;IACV,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,iBAAiB;IACpC,OAAO,EAAE,0CAA0C;IACnD,GAAI,SAAS,kBAAkB;IAC/B,UAAU;IACV,MAAK;IACL,CAAA;GACD,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,iCAAiC;IAC7B,CAAA;GACI;KACG,CAAA,EACL,CAAA,GACf"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const Login: React.FC;
3
3
  export default Login;
@@ -33,14 +33,14 @@ var Login = () => {
33
33
  const { next } = require_utils$2.getSecurityUrlParams(location);
34
34
  const createUserEnabled = configuration?.flags?.createUser;
35
35
  const addUserLink = require_routes.Route.ADD_USER + (next ? "?next=" + next : "");
36
- const { data, isMutating, trigger } = require_use_data_mutation.useDataMutation(basePath, next, "POST");
36
+ const { trigger } = require_use_data_mutation.useDataMutation(basePath, next, "POST");
37
37
  const { setError, handleSubmit, register, formState: { isValid, errors } } = (0, react_hook_form.useForm)({
38
38
  mode: "onChange",
39
39
  resolver: (0, _hookform_resolvers_yup.yupResolver)(require_schemas.loginSchema)
40
40
  });
41
41
  const handleLogin = async (body) => {
42
42
  try {
43
- await trigger(body);
43
+ return await trigger(body);
44
44
  } catch (err) {
45
45
  throw require_utils$1.normalizeAuthError(err);
46
46
  }
@@ -50,7 +50,8 @@ var Login = () => {
50
50
  }, [navigate]);
51
51
  const onSubmit = (0, react.useCallback)(async (data) => {
52
52
  try {
53
- await handleLogin?.(data);
53
+ const result = await handleLogin?.(data);
54
+ if (result && result.username && result.token) require_storage.saveAuth(result.username, result.token);
54
55
  onSuccess();
55
56
  } catch {
56
57
  setError("root", {
@@ -63,9 +64,6 @@ var Login = () => {
63
64
  setError,
64
65
  onSuccess
65
66
  ]);
66
- (0, react.useEffect)(() => {
67
- if (data && !isMutating && data.username && data.token) require_storage.saveAuth(data.username, data.token);
68
- }, [data, isMutating]);
69
67
  return !next ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_NotFound.default, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Dialog.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles$1.SecurityContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_styles$1.SecurityForm, { children: [
70
68
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.default, {}),
71
69
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Login.default, {
@@ -1 +1 @@
1
- {"version":3,"file":"Login.js","names":[],"sources":["../../../src/sections/Security/Login.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport type { LoginFormValues } from '../../components/LoginForm/Login';\nimport LoginForm from '../../components/LoginForm/Login';\nimport LoginFormHeader from '../../components/LoginForm/styles';\nimport NotFound from '../../components/NotFound';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport type { LoginBody } from '../../providers/AuthProvider/types';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { loginSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst Login: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { next } = getSecurityUrlParams(location);\n const createUserEnabled = configuration?.flags?.createUser;\n const addUserLink = Route.ADD_USER + (next ? '?next=' + next : '');\n\n const { data, isMutating, trigger } = useDataMutation<LoginBody>(basePath, next, 'POST');\n\n const form = useForm<LoginFormValues>({\n mode: 'onChange',\n resolver: yupResolver(loginSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const handleLogin = async (body: { username: string; password: string }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n };\n\n const onSuccess = useCallback(() => {\n navigate(`${Route.SUCCESS}?messageType=${MessageType.Login}`);\n }, [navigate]);\n\n const onSubmit = useCallback(\n async (data: LoginFormValues) => {\n try {\n await handleLogin?.(data);\n onSuccess();\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Invalid username or password',\n });\n }\n },\n [handleLogin, setError, onSuccess]\n );\n\n useEffect(() => {\n if (data && !isMutating && data.username && data.token) {\n saveAuth(data.username, data.token);\n }\n }, [data, isMutating]);\n\n return !next ? (\n <NotFound />\n ) : (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm>\n <LoginFormHeader />\n <LoginForm\n errors={errors}\n handleSubmit={handleSubmit}\n isValid={isValid}\n onSubmit={onSubmit}\n register={register}\n />\n {createUserEnabled && (\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.login.noUserQuestion')}\n <Link href={addUserLink} sx={{ ml: 1 }}>\n {t('security.login.createUser')}\n </Link>\n </Typography>\n )}\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n );\n};\n\nexport default Login;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,gBAAgB,sBAAA,kBAAkB;AACxC,IAAM,WAAW,cAAA,mBAAmB,cAAc,KAAK;AAEvD,IAAM,cAAwB;CAC5B,MAAM,EAAE,OAAA,GAAA,cAAA,iBAAsB;CAC9B,MAAM,YAAA,GAAA,aAAA,cAAwB;CAC9B,MAAM,YAAA,GAAA,aAAA,cAAwB;CAC9B,MAAM,EAAE,SAAS,gBAAA,qBAAqB,SAAS;CAC/C,MAAM,oBAAoB,eAAe,OAAO;CAChD,MAAM,cAAc,eAAA,MAAM,YAAY,OAAO,WAAW,OAAO;CAE/D,MAAM,EAAE,MAAM,YAAY,YAAY,0BAAA,gBAA2B,UAAU,MAAM,OAAO;CAOxF,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,cAAA,GAAA,gBAAA,SATc;EACpC,MAAM;EACN,WAAA,GAAA,wBAAA,aAAsB,gBAAA,YAAY;EACnC,CAAC;CASF,MAAM,cAAc,OAAO,SAAiD;AAC1E,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,gBAAA,mBAAmB,IAAI;;;CAIjC,MAAM,aAAA,GAAA,MAAA,mBAA8B;AAClC,WAAS,GAAG,eAAA,MAAM,QAAQ,eAAe,gBAAA,YAAY,QAAQ;IAC5D,CAAC,SAAS,CAAC;CAEd,MAAM,YAAA,GAAA,MAAA,aACJ,OAAO,SAA0B;AAC/B,MAAI;AACF,SAAM,cAAc,KAAK;AACzB,cAAW;UACL;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAa;EAAU;EAAU,CACnC;AAED,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI,QAAQ,CAAC,cAAc,KAAK,YAAY,KAAK,MAC/C,iBAAA,SAAS,KAAK,UAAU,KAAK,MAAM;IAEpC,CAAC,MAAM,WAAW,CAAC;AAEtB,QAAO,CAAC,OACN,iBAAA,GAAA,kBAAA,KAAC,iBAAA,SAAD,EAAY,CAAA,GAEZ,iBAAA,GAAA,kBAAA,KAAC,eAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAC,iBAAA,mBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,MAAC,iBAAA,cAAD,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAC,eAAA,SAAD,EAAmB,CAAA;EACnB,iBAAA,GAAA,kBAAA,KAAC,cAAA,SAAD;GACU;GACM;GACL;GACC;GACA;GACV,CAAA;EACD,qBACC,iBAAA,GAAA,kBAAA,MAAC,cAAA,YAAD;GAAY,OAAM;GAAS,IAAI;IAAE,IAAI;IAAG,UAAU;IAAI;GAAE,SAAQ;aAAhE,CACG,EAAE,gCAAgC,EACnC,iBAAA,GAAA,kBAAA,KAAC,cAAA,MAAD;IAAM,MAAM;IAAa,IAAI,EAAE,IAAI,GAAG;cACnC,EAAE,4BAA4B;IAC1B,CAAA,CACI;;EAEF,EAAA,CAAA,EACG,CAAA,EACL,CAAA"}
1
+ {"version":3,"file":"Login.js","names":[],"sources":["../../../src/sections/Security/Login.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Link, Typography } from '@mui/material';\nimport React, { useCallback } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport type { LoginFormValues } from '../../components/LoginForm/Login';\nimport LoginForm from '../../components/LoginForm/Login';\nimport LoginFormHeader from '../../components/LoginForm/styles';\nimport NotFound from '../../components/NotFound';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport type { LoginBody } from '../../providers/AuthProvider/types';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { loginSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst Login: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { next } = getSecurityUrlParams(location);\n const createUserEnabled = configuration?.flags?.createUser;\n const addUserLink = Route.ADD_USER + (next ? '?next=' + next : '');\n\n const { trigger } = useDataMutation<LoginBody>(basePath, next, 'POST');\n\n const form = useForm<LoginFormValues>({\n mode: 'onChange',\n resolver: yupResolver(loginSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const handleLogin = async (body: { username: string; password: string }) => {\n try {\n return await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n };\n\n const onSuccess = useCallback(() => {\n navigate(`${Route.SUCCESS}?messageType=${MessageType.Login}`);\n }, [navigate]);\n\n const onSubmit = useCallback(\n async (data: LoginFormValues) => {\n try {\n const result = await handleLogin?.(data);\n if (result && result.username && result.token) {\n saveAuth(result.username, result.token);\n }\n onSuccess();\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Invalid username or password',\n });\n }\n },\n [handleLogin, setError, onSuccess]\n );\n\n return !next ? (\n <NotFound />\n ) : (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm>\n <LoginFormHeader />\n <LoginForm\n errors={errors}\n handleSubmit={handleSubmit}\n isValid={isValid}\n onSubmit={onSubmit}\n register={register}\n />\n {createUserEnabled && (\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.login.noUserQuestion')}\n <Link href={addUserLink} sx={{ ml: 1 }}>\n {t('security.login.createUser')}\n </Link>\n </Typography>\n )}\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n );\n};\n\nexport default Login;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,gBAAgB,sBAAA,kBAAkB;AACxC,IAAM,WAAW,cAAA,mBAAmB,cAAc,KAAK;AAEvD,IAAM,cAAwB;CAC5B,MAAM,EAAE,OAAA,GAAA,cAAA,iBAAsB;CAC9B,MAAM,YAAA,GAAA,aAAA,cAAwB;CAC9B,MAAM,YAAA,GAAA,aAAA,cAAwB;CAC9B,MAAM,EAAE,SAAS,gBAAA,qBAAqB,SAAS;CAC/C,MAAM,oBAAoB,eAAe,OAAO;CAChD,MAAM,cAAc,eAAA,MAAM,YAAY,OAAO,WAAW,OAAO;CAE/D,MAAM,EAAE,YAAY,0BAAA,gBAA2B,UAAU,MAAM,OAAO;CAOtE,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,cAAA,GAAA,gBAAA,SATc;EACpC,MAAM;EACN,WAAA,GAAA,wBAAA,aAAsB,gBAAA,YAAY;EACnC,CAAC;CASF,MAAM,cAAc,OAAO,SAAiD;AAC1E,MAAI;AACF,UAAO,MAAM,QAAQ,KAAK;WACnB,KAAK;AACZ,SAAM,gBAAA,mBAAmB,IAAI;;;CAIjC,MAAM,aAAA,GAAA,MAAA,mBAA8B;AAClC,WAAS,GAAG,eAAA,MAAM,QAAQ,eAAe,gBAAA,YAAY,QAAQ;IAC5D,CAAC,SAAS,CAAC;CAEd,MAAM,YAAA,GAAA,MAAA,aACJ,OAAO,SAA0B;AAC/B,MAAI;GACF,MAAM,SAAS,MAAM,cAAc,KAAK;AACxC,OAAI,UAAU,OAAO,YAAY,OAAO,MACtC,iBAAA,SAAS,OAAO,UAAU,OAAO,MAAM;AAEzC,cAAW;UACL;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAa;EAAU;EAAU,CACnC;AAED,QAAO,CAAC,OACN,iBAAA,GAAA,kBAAA,KAAC,iBAAA,SAAD,EAAY,CAAA,GAEZ,iBAAA,GAAA,kBAAA,KAAC,eAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAC,iBAAA,mBAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,MAAC,iBAAA,cAAD,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAC,eAAA,SAAD,EAAmB,CAAA;EACnB,iBAAA,GAAA,kBAAA,KAAC,cAAA,SAAD;GACU;GACM;GACL;GACC;GACA;GACV,CAAA;EACD,qBACC,iBAAA,GAAA,kBAAA,MAAC,cAAA,YAAD;GAAY,OAAM;GAAS,IAAI;IAAE,IAAI;IAAG,UAAU;IAAI;GAAE,SAAQ;aAAhE,CACG,EAAE,gCAAgC,EACnC,iBAAA,GAAA,kBAAA,KAAC,cAAA,MAAD;IAAM,MAAM;IAAa,IAAI,EAAE,IAAI,GAAG;cACnC,EAAE,4BAA4B;IAC1B,CAAA,CACI;;EAEF,EAAA,CAAA,EACG,CAAA,EACL,CAAA"}
@@ -14,7 +14,7 @@ import SecurityLayout from "../../layouts/Security/Dialog.mjs";
14
14
  import { SecurityContainer, SecurityForm } from "./styles.mjs";
15
15
  import { MessageType } from "./Success.mjs";
16
16
  import { getSecurityUrlParams } from "./utils.mjs";
17
- import { useCallback, useEffect } from "react";
17
+ import { useCallback } from "react";
18
18
  import { jsx, jsxs } from "react/jsx-runtime";
19
19
  import { useTranslation } from "react-i18next";
20
20
  import { useLocation, useNavigate } from "react-router";
@@ -31,14 +31,14 @@ var Login = () => {
31
31
  const { next } = getSecurityUrlParams(location);
32
32
  const createUserEnabled = configuration?.flags?.createUser;
33
33
  const addUserLink = Route$1.ADD_USER + (next ? "?next=" + next : "");
34
- const { data, isMutating, trigger } = useDataMutation(basePath, next, "POST");
34
+ const { trigger } = useDataMutation(basePath, next, "POST");
35
35
  const { setError, handleSubmit, register, formState: { isValid, errors } } = useForm({
36
36
  mode: "onChange",
37
37
  resolver: yupResolver(loginSchema)
38
38
  });
39
39
  const handleLogin = async (body) => {
40
40
  try {
41
- await trigger(body);
41
+ return await trigger(body);
42
42
  } catch (err) {
43
43
  throw normalizeAuthError(err);
44
44
  }
@@ -48,7 +48,8 @@ var Login = () => {
48
48
  }, [navigate]);
49
49
  const onSubmit = useCallback(async (data) => {
50
50
  try {
51
- await handleLogin?.(data);
51
+ const result = await handleLogin?.(data);
52
+ if (result && result.username && result.token) saveAuth(result.username, result.token);
52
53
  onSuccess();
53
54
  } catch {
54
55
  setError("root", {
@@ -61,9 +62,6 @@ var Login = () => {
61
62
  setError,
62
63
  onSuccess
63
64
  ]);
64
- useEffect(() => {
65
- if (data && !isMutating && data.username && data.token) saveAuth(data.username, data.token);
66
- }, [data, isMutating]);
67
65
  return !next ? /* @__PURE__ */ jsx(NotFound, {}) : /* @__PURE__ */ jsx(SecurityLayout, { children: /* @__PURE__ */ jsx(SecurityContainer, { children: /* @__PURE__ */ jsxs(SecurityForm, { children: [
68
66
  /* @__PURE__ */ jsx(LoginFormHeader, {}),
69
67
  /* @__PURE__ */ jsx(LoginForm, {
@@ -1 +1 @@
1
- {"version":3,"file":"Login.mjs","names":[],"sources":["../../../src/sections/Security/Login.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport type { LoginFormValues } from '../../components/LoginForm/Login';\nimport LoginForm from '../../components/LoginForm/Login';\nimport LoginFormHeader from '../../components/LoginForm/styles';\nimport NotFound from '../../components/NotFound';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport type { LoginBody } from '../../providers/AuthProvider/types';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { loginSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst Login: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { next } = getSecurityUrlParams(location);\n const createUserEnabled = configuration?.flags?.createUser;\n const addUserLink = Route.ADD_USER + (next ? '?next=' + next : '');\n\n const { data, isMutating, trigger } = useDataMutation<LoginBody>(basePath, next, 'POST');\n\n const form = useForm<LoginFormValues>({\n mode: 'onChange',\n resolver: yupResolver(loginSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const handleLogin = async (body: { username: string; password: string }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n };\n\n const onSuccess = useCallback(() => {\n navigate(`${Route.SUCCESS}?messageType=${MessageType.Login}`);\n }, [navigate]);\n\n const onSubmit = useCallback(\n async (data: LoginFormValues) => {\n try {\n await handleLogin?.(data);\n onSuccess();\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Invalid username or password',\n });\n }\n },\n [handleLogin, setError, onSuccess]\n );\n\n useEffect(() => {\n if (data && !isMutating && data.username && data.token) {\n saveAuth(data.username, data.token);\n }\n }, [data, isMutating]);\n\n return !next ? (\n <NotFound />\n ) : (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm>\n <LoginFormHeader />\n <LoginForm\n errors={errors}\n handleSubmit={handleSubmit}\n isValid={isValid}\n onSubmit={onSubmit}\n register={register}\n />\n {createUserEnabled && (\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.login.noUserQuestion')}\n <Link href={addUserLink} sx={{ ml: 1 }}>\n {t('security.login.createUser')}\n </Link>\n </Typography>\n )}\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n );\n};\n\nexport default Login;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,gBAAgB,kBAAkB;AACxC,IAAM,WAAW,mBAAmB,cAAc,KAAK;AAEvD,IAAM,cAAwB;CAC5B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,SAAS,qBAAqB,SAAS;CAC/C,MAAM,oBAAoB,eAAe,OAAO;CAChD,MAAM,cAAc,QAAM,YAAY,OAAO,WAAW,OAAO;CAE/D,MAAM,EAAE,MAAM,YAAY,YAAY,gBAA2B,UAAU,MAAM,OAAO;CAOxF,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aATX,QAAyB;EACpC,MAAM;EACN,UAAU,YAAY,YAAY;EACnC,CAAC;CASF,MAAM,cAAc,OAAO,SAAiD;AAC1E,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;;CAIjC,MAAM,YAAY,kBAAkB;AAClC,WAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,QAAQ;IAC5D,CAAC,SAAS,CAAC;CAEd,MAAM,WAAW,YACf,OAAO,SAA0B;AAC/B,MAAI;AACF,SAAM,cAAc,KAAK;AACzB,cAAW;UACL;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAa;EAAU;EAAU,CACnC;AAED,iBAAgB;AACd,MAAI,QAAQ,CAAC,cAAc,KAAK,YAAY,KAAK,MAC/C,UAAS,KAAK,UAAU,KAAK,MAAM;IAEpC,CAAC,MAAM,WAAW,CAAC;AAEtB,QAAO,CAAC,OACN,oBAAC,UAAD,EAAY,CAAA,GAEZ,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD,EAAA,UAAA;EACE,oBAAC,iBAAD,EAAmB,CAAA;EACnB,oBAAC,WAAD;GACU;GACM;GACL;GACC;GACA;GACV,CAAA;EACD,qBACC,qBAAC,YAAD;GAAY,OAAM;GAAS,IAAI;IAAE,IAAI;IAAG,UAAU;IAAI;GAAE,SAAQ;aAAhE,CACG,EAAE,gCAAgC,EACnC,oBAAC,QAAD;IAAM,MAAM;IAAa,IAAI,EAAE,IAAI,GAAG;cACnC,EAAE,4BAA4B;IAC1B,CAAA,CACI;;EAEF,EAAA,CAAA,EACG,CAAA,EACL,CAAA"}
1
+ {"version":3,"file":"Login.mjs","names":[],"sources":["../../../src/sections/Security/Login.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Link, Typography } from '@mui/material';\nimport React, { useCallback } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport type { LoginFormValues } from '../../components/LoginForm/Login';\nimport LoginForm from '../../components/LoginForm/Login';\nimport LoginFormHeader from '../../components/LoginForm/styles';\nimport NotFound from '../../components/NotFound';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport type { LoginBody } from '../../providers/AuthProvider/types';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { loginSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst Login: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { next } = getSecurityUrlParams(location);\n const createUserEnabled = configuration?.flags?.createUser;\n const addUserLink = Route.ADD_USER + (next ? '?next=' + next : '');\n\n const { trigger } = useDataMutation<LoginBody>(basePath, next, 'POST');\n\n const form = useForm<LoginFormValues>({\n mode: 'onChange',\n resolver: yupResolver(loginSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const handleLogin = async (body: { username: string; password: string }) => {\n try {\n return await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n };\n\n const onSuccess = useCallback(() => {\n navigate(`${Route.SUCCESS}?messageType=${MessageType.Login}`);\n }, [navigate]);\n\n const onSubmit = useCallback(\n async (data: LoginFormValues) => {\n try {\n const result = await handleLogin?.(data);\n if (result && result.username && result.token) {\n saveAuth(result.username, result.token);\n }\n onSuccess();\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Invalid username or password',\n });\n }\n },\n [handleLogin, setError, onSuccess]\n );\n\n return !next ? (\n <NotFound />\n ) : (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm>\n <LoginFormHeader />\n <LoginForm\n errors={errors}\n handleSubmit={handleSubmit}\n isValid={isValid}\n onSubmit={onSubmit}\n register={register}\n />\n {createUserEnabled && (\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.login.noUserQuestion')}\n <Link href={addUserLink} sx={{ ml: 1 }}>\n {t('security.login.createUser')}\n </Link>\n </Typography>\n )}\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n );\n};\n\nexport default Login;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAM,gBAAgB,kBAAkB;AACxC,IAAM,WAAW,mBAAmB,cAAc,KAAK;AAEvD,IAAM,cAAwB;CAC5B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,SAAS,qBAAqB,SAAS;CAC/C,MAAM,oBAAoB,eAAe,OAAO;CAChD,MAAM,cAAc,QAAM,YAAY,OAAO,WAAW,OAAO;CAE/D,MAAM,EAAE,YAAY,gBAA2B,UAAU,MAAM,OAAO;CAOtE,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aATX,QAAyB;EACpC,MAAM;EACN,UAAU,YAAY,YAAY;EACnC,CAAC;CASF,MAAM,cAAc,OAAO,SAAiD;AAC1E,MAAI;AACF,UAAO,MAAM,QAAQ,KAAK;WACnB,KAAK;AACZ,SAAM,mBAAmB,IAAI;;;CAIjC,MAAM,YAAY,kBAAkB;AAClC,WAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,QAAQ;IAC5D,CAAC,SAAS,CAAC;CAEd,MAAM,WAAW,YACf,OAAO,SAA0B;AAC/B,MAAI;GACF,MAAM,SAAS,MAAM,cAAc,KAAK;AACxC,OAAI,UAAU,OAAO,YAAY,OAAO,MACtC,UAAS,OAAO,UAAU,OAAO,MAAM;AAEzC,cAAW;UACL;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAa;EAAU;EAAU,CACnC;AAED,QAAO,CAAC,OACN,oBAAC,UAAD,EAAY,CAAA,GAEZ,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD,EAAA,UAAA;EACE,oBAAC,iBAAD,EAAmB,CAAA;EACnB,oBAAC,WAAD;GACU;GACM;GACL;GACC;GACA;GACV,CAAA;EACD,qBACC,qBAAC,YAAD;GAAY,OAAM;GAAS,IAAI;IAAE,IAAI;IAAG,UAAU;IAAI;GAAE,SAAQ;aAAhE,CACG,EAAE,gCAAgC,EACnC,oBAAC,QAAD;IAAM,MAAM;IAAa,IAAI,EAAE,IAAI,GAAG;cACnC,EAAE,4BAA4B;IAC1B,CAAA,CACI;;EAEF,EAAA,CAAA,EACG,CAAA,EACL,CAAA"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  export declare enum MessageType {
3
3
  Login = "Login",
4
4
  ChangePassword = "ChangePassword",
@@ -1,3 +1,5 @@
1
- export declare const SecurityContainer: any;
2
- export declare const SecurityForm: any;
3
- export declare const SecurityTextField: any;
1
+ export declare const SecurityContainer: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<import('@mui/material').Theme>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, {}, {}>;
2
+ export declare const SecurityForm: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, import('react').DetailedHTMLProps<import('react').FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, {}>;
3
+ export declare const SecurityTextField: import('@emotion/styled').StyledComponent<{
4
+ variant?: import('@mui/material').TextFieldVariants | undefined;
5
+ } & Omit<import('@mui/material').OutlinedTextFieldProps | import('@mui/material').FilledTextFieldProps | import('@mui/material').StandardTextFieldProps, "variant"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, {}, {}>;
@@ -11,7 +11,7 @@ var SecurityContainer = (0, _mui_material_styles.styled)(_mui_material.Box)(({ t
11
11
  padding: theme.spacing(2),
12
12
  backgroundColor: theme.palette.background.default
13
13
  }));
14
- var SecurityForm = (0, _mui_material_styles.styled)(_mui_material.Box)(({ theme }) => ({
14
+ var SecurityForm = (0, _mui_material_styles.styled)("form")(({ theme }) => ({
15
15
  width: "100%",
16
16
  maxWidth: 420,
17
17
  padding: theme.spacing(4),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled(Box)(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;;AAGA,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,gBAAA,GAAA,qBAAA,QAAsB,cAAA,IAAI,EAAE,EAAE,aAAa;CACtD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
1
+ {"version":3,"file":"styles.js","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled('form')(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;;AAGA,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,gBAAA,GAAA,qBAAA,QAAsB,OAAO,EAAE,EAAE,aAAa;CACzD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
@@ -10,7 +10,7 @@ var SecurityContainer = styled(Box)(({ theme }) => ({
10
10
  padding: theme.spacing(2),
11
11
  backgroundColor: theme.palette.background.default
12
12
  }));
13
- var SecurityForm = styled(Box)(({ theme }) => ({
13
+ var SecurityForm = styled("form")(({ theme }) => ({
14
14
  width: "100%",
15
15
  maxWidth: 420,
16
16
  padding: theme.spacing(4),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.mjs","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled(Box)(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;AAGA,IAAa,oBAAoB,OAAO,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,eAAe,OAAO,IAAI,EAAE,EAAE,aAAa;CACtD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,oBAAoB,OAAO,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
1
+ {"version":3,"file":"styles.mjs","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled('form')(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;AAGA,IAAa,oBAAoB,OAAO,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,eAAe,OAAO,OAAO,EAAE,EAAE,aAAa;CACzD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,oBAAoB,OAAO,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const DetailSidebar: React.FC;
3
3
  export default DetailSidebar;
@@ -1,4 +1,4 @@
1
- import type { TemplateUIOptions } from '@verdaccio/types';
1
+ import { TemplateUIOptions } from '@verdaccio/types';
2
2
  declare global {
3
3
  interface Window {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { Author } from '@verdaccio/types';
1
+ import { Author } from '@verdaccio/types';
2
2
  export type ModuleType = 'commonjs' | 'module';
3
3
  export type Latest = {
4
4
  author?: string | Author;