@openedx/frontend-app-authn 1.0.0-alpha.4 → 1.0.0-alpha.6

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 (506) hide show
  1. package/dist/Main.d.ts +3 -0
  2. package/{src/Main.tsx → dist/Main.js} +4 -15
  3. package/dist/Main.js.map +1 -0
  4. package/dist/app.d.ts +3 -0
  5. package/dist/app.js +41 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/app.scss +2 -0
  8. package/dist/base-container/components/default-layout/LargeLayout.d.ts +2 -0
  9. package/dist/base-container/components/default-layout/LargeLayout.js +11 -0
  10. package/dist/base-container/components/default-layout/LargeLayout.js.map +1 -0
  11. package/dist/base-container/components/default-layout/MediumLayout.d.ts +2 -0
  12. package/dist/base-container/components/default-layout/MediumLayout.js +11 -0
  13. package/dist/base-container/components/default-layout/MediumLayout.js.map +1 -0
  14. package/dist/base-container/components/default-layout/SmallLayout.d.ts +2 -0
  15. package/dist/base-container/components/default-layout/SmallLayout.js +11 -0
  16. package/dist/base-container/components/default-layout/SmallLayout.js.map +1 -0
  17. package/dist/base-container/components/default-layout/index.d.ts +3 -0
  18. package/{src/base-container/components/default-layout/index.jsx → dist/base-container/components/default-layout/index.js} +1 -0
  19. package/dist/base-container/components/default-layout/index.js.map +1 -0
  20. package/dist/base-container/components/default-layout/messages.d.ts +13 -0
  21. package/dist/base-container/components/default-layout/messages.js +15 -0
  22. package/dist/base-container/components/default-layout/messages.js.map +1 -0
  23. package/dist/base-container/components/image-layout/ExtraSmallLayout.d.ts +2 -0
  24. package/dist/base-container/components/image-layout/ExtraSmallLayout.js +10 -0
  25. package/dist/base-container/components/image-layout/ExtraSmallLayout.js.map +1 -0
  26. package/dist/base-container/components/image-layout/LargeLayout.d.ts +2 -0
  27. package/dist/base-container/components/image-layout/LargeLayout.js +11 -0
  28. package/dist/base-container/components/image-layout/LargeLayout.js.map +1 -0
  29. package/dist/base-container/components/image-layout/MediumLayout.d.ts +2 -0
  30. package/dist/base-container/components/image-layout/MediumLayout.js +11 -0
  31. package/dist/base-container/components/image-layout/MediumLayout.js.map +1 -0
  32. package/dist/base-container/components/image-layout/SmallLayout.d.ts +2 -0
  33. package/dist/base-container/components/image-layout/SmallLayout.js +10 -0
  34. package/dist/base-container/components/image-layout/SmallLayout.js.map +1 -0
  35. package/dist/base-container/components/image-layout/index.d.ts +4 -0
  36. package/{src/base-container/components/image-layout/index.jsx → dist/base-container/components/image-layout/index.js} +1 -0
  37. package/dist/base-container/components/image-layout/index.js.map +1 -0
  38. package/dist/base-container/components/image-layout/messages.d.ts +13 -0
  39. package/dist/base-container/components/image-layout/messages.js +15 -0
  40. package/dist/base-container/components/image-layout/messages.js.map +1 -0
  41. package/dist/base-container/components/welcome-page-layout/LargeLayout.d.ts +10 -0
  42. package/dist/base-container/components/welcome-page-layout/LargeLayout.js +14 -0
  43. package/dist/base-container/components/welcome-page-layout/LargeLayout.js.map +1 -0
  44. package/dist/base-container/components/welcome-page-layout/MediumLayout.d.ts +10 -0
  45. package/dist/base-container/components/welcome-page-layout/MediumLayout.js +14 -0
  46. package/dist/base-container/components/welcome-page-layout/MediumLayout.js.map +1 -0
  47. package/dist/base-container/components/welcome-page-layout/SmallLayout.d.ts +10 -0
  48. package/dist/base-container/components/welcome-page-layout/SmallLayout.js +14 -0
  49. package/dist/base-container/components/welcome-page-layout/SmallLayout.js.map +1 -0
  50. package/dist/base-container/components/welcome-page-layout/index.d.ts +3 -0
  51. package/{src/base-container/components/welcome-page-layout/index.jsx → dist/base-container/components/welcome-page-layout/index.js} +1 -0
  52. package/dist/base-container/components/welcome-page-layout/index.js.map +1 -0
  53. package/dist/base-container/components/welcome-page-layout/messages.d.ts +18 -0
  54. package/dist/base-container/components/welcome-page-layout/messages.js +20 -0
  55. package/dist/base-container/components/welcome-page-layout/messages.js.map +1 -0
  56. package/dist/base-container/index.d.ts +20 -0
  57. package/dist/base-container/index.js +27 -0
  58. package/dist/base-container/index.js.map +1 -0
  59. package/dist/common-components/EmbeddedRegistrationRoute.d.ts +14 -0
  60. package/{src/common-components/EmbeddedRegistrationRoute.jsx → dist/common-components/EmbeddedRegistrationRoute.js} +9 -13
  61. package/dist/common-components/EmbeddedRegistrationRoute.js.map +1 -0
  62. package/dist/common-components/EnterpriseSSO.d.ts +29 -0
  63. package/dist/common-components/EnterpriseSSO.js +55 -0
  64. package/dist/common-components/EnterpriseSSO.js.map +1 -0
  65. package/dist/common-components/FormGroup.d.ts +60 -0
  66. package/dist/common-components/FormGroup.js +66 -0
  67. package/dist/common-components/FormGroup.js.map +1 -0
  68. package/dist/common-components/InstitutionLogistration.d.ts +34 -0
  69. package/dist/common-components/InstitutionLogistration.js +38 -0
  70. package/dist/common-components/InstitutionLogistration.js.map +1 -0
  71. package/dist/common-components/NotFoundPage.d.ts +2 -0
  72. package/dist/common-components/NotFoundPage.js +5 -0
  73. package/dist/common-components/NotFoundPage.js.map +1 -0
  74. package/dist/common-components/PasswordField.d.ts +39 -0
  75. package/dist/common-components/PasswordField.js +94 -0
  76. package/dist/common-components/PasswordField.js.map +1 -0
  77. package/dist/common-components/RedirectLogistration.d.ts +39 -0
  78. package/dist/common-components/RedirectLogistration.js +68 -0
  79. package/dist/common-components/RedirectLogistration.js.map +1 -0
  80. package/dist/common-components/RegisterFaIcons.d.ts +1 -0
  81. package/dist/common-components/RegisterFaIcons.js +6 -0
  82. package/dist/common-components/RegisterFaIcons.js.map +1 -0
  83. package/dist/common-components/SocialAuthProviders.d.ts +23 -0
  84. package/dist/common-components/SocialAuthProviders.js +42 -0
  85. package/dist/common-components/SocialAuthProviders.js.map +1 -0
  86. package/dist/common-components/ThirdPartyAuth.d.ts +42 -0
  87. package/dist/common-components/ThirdPartyAuth.js +56 -0
  88. package/dist/common-components/ThirdPartyAuth.js.map +1 -0
  89. package/dist/common-components/ThirdPartyAuthAlert.d.ts +15 -0
  90. package/dist/common-components/ThirdPartyAuthAlert.js +32 -0
  91. package/dist/common-components/ThirdPartyAuthAlert.js.map +1 -0
  92. package/dist/common-components/UnAuthOnlyRoute.d.ts +14 -0
  93. package/dist/common-components/UnAuthOnlyRoute.js +31 -0
  94. package/dist/common-components/UnAuthOnlyRoute.js.map +1 -0
  95. package/dist/common-components/data/actions.d.ts +26 -0
  96. package/{src → dist}/common-components/data/actions.js +8 -13
  97. package/dist/common-components/data/actions.js.map +1 -0
  98. package/dist/common-components/data/reducers.d.ts +62 -0
  99. package/dist/common-components/data/reducers.js +39 -0
  100. package/dist/common-components/data/reducers.js.map +1 -0
  101. package/dist/common-components/data/sagas.d.ts +12 -0
  102. package/dist/common-components/data/sagas.js +21 -0
  103. package/dist/common-components/data/sagas.js.map +1 -0
  104. package/dist/common-components/data/selectors.d.ts +98 -0
  105. package/dist/common-components/data/selectors.js +11 -0
  106. package/dist/common-components/data/selectors.js.map +1 -0
  107. package/dist/common-components/data/service.d.ts +5 -0
  108. package/dist/common-components/data/service.js +31 -0
  109. package/dist/common-components/data/service.js.map +1 -0
  110. package/dist/common-components/index.d.ts +13 -0
  111. package/{src/common-components/index.jsx → dist/common-components/index.js} +1 -0
  112. package/dist/common-components/index.js.map +1 -0
  113. package/dist/common-components/messages.d.ts +113 -0
  114. package/dist/common-components/messages.js +126 -0
  115. package/dist/common-components/messages.js.map +1 -0
  116. package/dist/constants.d.ts +1 -0
  117. package/{src/constants.ts → dist/constants.js} +1 -0
  118. package/dist/constants.js.map +1 -0
  119. package/dist/data/configureStore.d.ts +3 -0
  120. package/{src → dist}/data/configureStore.js +11 -20
  121. package/dist/data/configureStore.js.map +1 -0
  122. package/dist/data/constants.d.ts +24 -0
  123. package/{src → dist}/data/constants.js +4 -8
  124. package/dist/data/constants.js.map +1 -0
  125. package/dist/data/countries.d.ts +26 -0
  126. package/{src/data/countries.ts → dist/data/countries.js} +6 -9
  127. package/dist/data/countries.js.map +1 -0
  128. package/dist/data/oneTrust.d.ts +2 -0
  129. package/dist/data/oneTrust.js +3 -0
  130. package/dist/data/oneTrust.js.map +1 -0
  131. package/dist/data/reducers.d.ts +254 -0
  132. package/dist/data/reducers.js +17 -0
  133. package/dist/data/reducers.js.map +1 -0
  134. package/dist/data/sagas.d.ts +1 -0
  135. package/{src → dist}/data/sagas.js +9 -10
  136. package/dist/data/sagas.js.map +1 -0
  137. package/dist/data/utils/cookies.d.ts +1 -0
  138. package/dist/data/utils/cookies.js +12 -0
  139. package/dist/data/utils/cookies.js.map +1 -0
  140. package/dist/data/utils/dataUtils.d.ts +11 -0
  141. package/dist/data/utils/dataUtils.js +67 -0
  142. package/dist/data/utils/dataUtils.js.map +1 -0
  143. package/dist/data/utils/index.d.ts +3 -0
  144. package/dist/data/utils/index.js +4 -0
  145. package/dist/data/utils/index.js.map +1 -0
  146. package/dist/data/utils/reduxUtils.d.ts +15 -0
  147. package/dist/data/utils/reduxUtils.js +29 -0
  148. package/dist/data/utils/reduxUtils.js.map +1 -0
  149. package/dist/data/utils/useMobileResponsive.d.ts +7 -0
  150. package/dist/data/utils/useMobileResponsive.js +22 -0
  151. package/dist/data/utils/useMobileResponsive.js.map +1 -0
  152. package/dist/field-renderer/FieldRenderer.d.ts +34 -0
  153. package/dist/field-renderer/FieldRenderer.js +70 -0
  154. package/dist/field-renderer/FieldRenderer.js.map +1 -0
  155. package/dist/field-renderer/index.d.ts +1 -0
  156. package/{src/field-renderer/index.jsx → dist/field-renderer/index.js} +1 -0
  157. package/dist/field-renderer/index.js.map +1 -0
  158. package/dist/forgot-password/ForgotPasswordAlert.d.ts +16 -0
  159. package/dist/forgot-password/ForgotPasswordAlert.js +66 -0
  160. package/dist/forgot-password/ForgotPasswordAlert.js.map +1 -0
  161. package/dist/forgot-password/ForgotPasswordPage.d.ts +36 -0
  162. package/dist/forgot-password/ForgotPasswordPage.js +91 -0
  163. package/dist/forgot-password/ForgotPasswordPage.js.map +1 -0
  164. package/dist/forgot-password/data/actions.d.ts +30 -0
  165. package/{src → dist}/forgot-password/data/actions.js +10 -16
  166. package/dist/forgot-password/data/actions.js.map +1 -0
  167. package/dist/forgot-password/data/reducers.d.ts +13 -0
  168. package/dist/forgot-password/data/reducers.js +46 -0
  169. package/dist/forgot-password/data/reducers.js.map +1 -0
  170. package/dist/forgot-password/data/sagas.d.ts +4 -0
  171. package/dist/forgot-password/data/sagas.js +28 -0
  172. package/dist/forgot-password/data/sagas.js.map +1 -0
  173. package/dist/forgot-password/data/selectors.d.ts +23 -0
  174. package/dist/forgot-password/data/selectors.js +5 -0
  175. package/dist/forgot-password/data/selectors.js.map +1 -0
  176. package/dist/forgot-password/data/service.d.ts +1 -0
  177. package/dist/forgot-password/data/service.js +26 -0
  178. package/dist/forgot-password/data/service.js.map +1 -0
  179. package/dist/forgot-password/index.d.ts +5 -0
  180. package/{src → dist}/forgot-password/index.js +1 -0
  181. package/dist/forgot-password/index.js.map +1 -0
  182. package/dist/forgot-password/messages.d.ts +123 -0
  183. package/dist/forgot-password/messages.js +128 -0
  184. package/dist/forgot-password/messages.js.map +1 -0
  185. package/dist/i18n/index.d.ts +25 -0
  186. package/dist/i18n/index.js +26 -0
  187. package/dist/i18n/index.js.map +1 -0
  188. package/dist/index.js +4 -0
  189. package/dist/index.js.map +1 -0
  190. package/dist/login/AccountActivationMessage.d.ts +14 -0
  191. package/dist/login/AccountActivationMessage.js +49 -0
  192. package/dist/login/AccountActivationMessage.js.map +1 -0
  193. package/dist/login/ChangePasswordPrompt.d.ts +18 -0
  194. package/dist/login/ChangePasswordPrompt.js +45 -0
  195. package/dist/login/ChangePasswordPrompt.js.map +1 -0
  196. package/dist/login/LoginFailure.d.ts +25 -0
  197. package/dist/login/LoginFailure.js +109 -0
  198. package/dist/login/LoginFailure.js.map +1 -0
  199. package/dist/login/LoginPage.d.ts +10 -0
  200. package/dist/login/LoginPage.js +216 -0
  201. package/dist/login/LoginPage.js.map +1 -0
  202. package/dist/login/data/actions.d.ts +36 -0
  203. package/{src → dist}/login/data/actions.js +12 -19
  204. package/dist/login/data/actions.js.map +1 -0
  205. package/dist/login/data/constants.d.ts +17 -0
  206. package/{src → dist}/login/data/constants.js +4 -4
  207. package/dist/login/data/constants.js.map +1 -0
  208. package/dist/login/data/reducers.d.ts +82 -0
  209. package/dist/login/data/reducers.js +44 -0
  210. package/dist/login/data/reducers.js.map +1 -0
  211. package/dist/login/data/sagas.d.ts +10 -0
  212. package/dist/login/data/sagas.js +34 -0
  213. package/dist/login/data/sagas.js.map +1 -0
  214. package/dist/login/data/service.d.ts +4 -0
  215. package/dist/login/data/service.js +32 -0
  216. package/dist/login/data/service.js.map +1 -0
  217. package/dist/login/index.d.ts +4 -0
  218. package/{src → dist}/login/index.js +1 -1
  219. package/dist/login/index.js.map +1 -0
  220. package/dist/login/messages.d.ts +198 -0
  221. package/dist/login/messages.js +210 -0
  222. package/dist/login/messages.js.map +1 -0
  223. package/dist/logistration/Logistration.d.ts +32 -0
  224. package/dist/logistration/Logistration.js +106 -0
  225. package/dist/logistration/Logistration.js.map +1 -0
  226. package/dist/progressive-profiling/ProgressiveProfiling.d.ts +46 -0
  227. package/dist/progressive-profiling/ProgressiveProfiling.js +167 -0
  228. package/dist/progressive-profiling/ProgressiveProfiling.js.map +1 -0
  229. package/dist/progressive-profiling/ProgressiveProfilingPageModal.d.ts +13 -0
  230. package/dist/progressive-profiling/ProgressiveProfilingPageModal.js +24 -0
  231. package/dist/progressive-profiling/ProgressiveProfilingPageModal.js.map +1 -0
  232. package/dist/progressive-profiling/data/actions.d.ts +19 -0
  233. package/{src → dist}/progressive-profiling/data/actions.js +6 -10
  234. package/dist/progressive-profiling/data/actions.js.map +1 -0
  235. package/dist/progressive-profiling/data/reducers.d.ts +22 -0
  236. package/dist/progressive-profiling/data/reducers.js +23 -0
  237. package/dist/progressive-profiling/data/reducers.js.map +1 -0
  238. package/dist/progressive-profiling/data/sagas.d.ts +4 -0
  239. package/dist/progressive-profiling/data/sagas.js +17 -0
  240. package/dist/progressive-profiling/data/sagas.js.map +1 -0
  241. package/dist/progressive-profiling/data/selectors.d.ts +39 -0
  242. package/{src → dist}/progressive-profiling/data/selectors.js +4 -9
  243. package/dist/progressive-profiling/data/selectors.js.map +1 -0
  244. package/dist/progressive-profiling/data/service.d.ts +1 -0
  245. package/dist/progressive-profiling/data/service.js +23 -0
  246. package/dist/progressive-profiling/data/service.js.map +1 -0
  247. package/dist/progressive-profiling/index.d.ts +4 -0
  248. package/{src → dist}/progressive-profiling/index.js +1 -1
  249. package/dist/progressive-profiling/index.js.map +1 -0
  250. package/dist/progressive-profiling/messages.d.ts +53 -0
  251. package/dist/progressive-profiling/messages.js +57 -0
  252. package/dist/progressive-profiling/messages.js.map +1 -0
  253. package/dist/register/RegistrationFields/CountryField/CountryField.d.ts +38 -0
  254. package/dist/register/RegistrationFields/CountryField/CountryField.js +95 -0
  255. package/dist/register/RegistrationFields/CountryField/CountryField.js.map +1 -0
  256. package/dist/register/RegistrationFields/CountryField/validator.d.ts +8 -0
  257. package/dist/register/RegistrationFields/CountryField/validator.js +29 -0
  258. package/dist/register/RegistrationFields/CountryField/validator.js.map +1 -0
  259. package/dist/register/RegistrationFields/EmailField/EmailField.d.ts +30 -0
  260. package/dist/register/RegistrationFields/EmailField/EmailField.js +80 -0
  261. package/dist/register/RegistrationFields/EmailField/EmailField.js.map +1 -0
  262. package/dist/register/RegistrationFields/EmailField/constants.d.ts +3 -0
  263. package/dist/register/RegistrationFields/EmailField/constants.js +130 -0
  264. package/dist/register/RegistrationFields/EmailField/constants.js.map +1 -0
  265. package/dist/register/RegistrationFields/EmailField/validator.d.ts +17 -0
  266. package/dist/register/RegistrationFields/EmailField/validator.js +107 -0
  267. package/dist/register/RegistrationFields/EmailField/validator.js.map +1 -0
  268. package/dist/register/RegistrationFields/HonorCodeField/HonorCode.d.ts +21 -0
  269. package/dist/register/RegistrationFields/HonorCodeField/HonorCode.js +40 -0
  270. package/dist/register/RegistrationFields/HonorCodeField/HonorCode.js.map +1 -0
  271. package/dist/register/RegistrationFields/NameField/NameField.d.ts +29 -0
  272. package/dist/register/RegistrationFields/NameField/NameField.js +52 -0
  273. package/dist/register/RegistrationFields/NameField/NameField.js.map +1 -0
  274. package/dist/register/RegistrationFields/NameField/validator.d.ts +5 -0
  275. package/{src → dist}/register/RegistrationFields/NameField/validator.js +9 -12
  276. package/dist/register/RegistrationFields/NameField/validator.js.map +1 -0
  277. package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.d.ts +16 -0
  278. package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.js +24 -0
  279. package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.js.map +1 -0
  280. package/dist/register/RegistrationFields/UsernameField/UsernameField.d.ts +31 -0
  281. package/dist/register/RegistrationFields/UsernameField/UsernameField.js +113 -0
  282. package/dist/register/RegistrationFields/UsernameField/UsernameField.js.map +1 -0
  283. package/dist/register/RegistrationFields/UsernameField/validator.d.ts +4 -0
  284. package/dist/register/RegistrationFields/UsernameField/validator.js +15 -0
  285. package/dist/register/RegistrationFields/UsernameField/validator.js.map +1 -0
  286. package/dist/register/RegistrationFields/index.d.ts +6 -0
  287. package/{src → dist}/register/RegistrationFields/index.js +1 -0
  288. package/dist/register/RegistrationFields/index.js.map +1 -0
  289. package/dist/register/RegistrationPage.d.ts +18 -0
  290. package/dist/register/RegistrationPage.js +216 -0
  291. package/dist/register/RegistrationPage.js.map +1 -0
  292. package/dist/register/components/ConfigurableRegistrationForm.d.ts +37 -0
  293. package/dist/register/components/ConfigurableRegistrationForm.js +145 -0
  294. package/dist/register/components/ConfigurableRegistrationForm.js.map +1 -0
  295. package/dist/register/components/RegistrationFailure.d.ts +19 -0
  296. package/dist/register/components/RegistrationFailure.js +57 -0
  297. package/dist/register/components/RegistrationFailure.js.map +1 -0
  298. package/dist/register/data/actions.d.ts +80 -0
  299. package/{src → dist}/register/data/actions.js +26 -42
  300. package/dist/register/data/actions.js.map +1 -0
  301. package/dist/register/data/constants.d.ts +10 -0
  302. package/{src → dist}/register/data/constants.js +4 -4
  303. package/dist/register/data/constants.js.map +1 -0
  304. package/dist/register/data/reducers.d.ts +237 -0
  305. package/dist/register/data/reducers.js +86 -0
  306. package/dist/register/data/reducers.js.map +1 -0
  307. package/dist/register/data/sagas.d.ts +19 -0
  308. package/dist/register/data/sagas.js +45 -0
  309. package/dist/register/data/sagas.js.map +1 -0
  310. package/dist/register/data/selectors.d.ts +26 -0
  311. package/dist/register/data/selectors.js +25 -0
  312. package/dist/register/data/selectors.js.map +1 -0
  313. package/dist/register/data/service.d.ts +8 -0
  314. package/dist/register/data/service.js +46 -0
  315. package/dist/register/data/service.js.map +1 -0
  316. package/dist/register/data/utils.d.ts +6 -0
  317. package/dist/register/data/utils.js +128 -0
  318. package/dist/register/data/utils.js.map +1 -0
  319. package/dist/register/index.d.ts +3 -0
  320. package/{src → dist}/register/index.js +1 -0
  321. package/dist/register/index.js.map +1 -0
  322. package/dist/register/messages.d.ts +193 -0
  323. package/dist/register/messages.js +205 -0
  324. package/dist/register/messages.js.map +1 -0
  325. package/dist/reset-password/ResetPasswordFailure.d.ts +15 -0
  326. package/dist/reset-password/ResetPasswordFailure.js +44 -0
  327. package/dist/reset-password/ResetPasswordFailure.js.map +1 -0
  328. package/dist/reset-password/ResetPasswordPage.d.ts +32 -0
  329. package/dist/reset-password/ResetPasswordPage.js +150 -0
  330. package/dist/reset-password/ResetPasswordPage.js.map +1 -0
  331. package/dist/reset-password/ResetPasswordSuccess.d.ts +2 -0
  332. package/dist/reset-password/ResetPasswordSuccess.js +10 -0
  333. package/dist/reset-password/ResetPasswordSuccess.js.map +1 -0
  334. package/dist/reset-password/data/actions.d.ts +56 -0
  335. package/{src → dist}/reset-password/data/actions.js +17 -26
  336. package/dist/reset-password/data/actions.js.map +1 -0
  337. package/dist/reset-password/data/constants.d.ts +13 -0
  338. package/{src → dist}/reset-password/data/constants.js +6 -7
  339. package/dist/reset-password/data/constants.js.map +1 -0
  340. package/dist/reset-password/data/reducers.d.ts +19 -0
  341. package/dist/reset-password/data/reducers.js +25 -0
  342. package/dist/reset-password/data/reducers.js.map +1 -0
  343. package/dist/reset-password/data/sagas.d.ts +7 -0
  344. package/dist/reset-password/data/sagas.js +63 -0
  345. package/dist/reset-password/data/sagas.js.map +1 -0
  346. package/dist/reset-password/data/selectors.d.ts +23 -0
  347. package/dist/reset-password/data/selectors.js +5 -0
  348. package/dist/reset-password/data/selectors.js.map +1 -0
  349. package/dist/reset-password/data/service.d.ts +3 -0
  350. package/dist/reset-password/data/service.js +62 -0
  351. package/dist/reset-password/data/service.js.map +1 -0
  352. package/dist/reset-password/index.d.ts +5 -0
  353. package/{src → dist}/reset-password/index.js +1 -0
  354. package/dist/reset-password/index.js.map +1 -0
  355. package/dist/reset-password/messages.d.ts +83 -0
  356. package/dist/reset-password/messages.js +87 -0
  357. package/dist/reset-password/messages.js.map +1 -0
  358. package/dist/routes.d.ts +18 -0
  359. package/dist/routes.js +75 -0
  360. package/dist/routes.js.map +1 -0
  361. package/{src → dist}/sass/_base_component.scss +57 -54
  362. package/{src → dist}/sass/_progressive_profiling_page.scss +1 -3
  363. package/{src → dist}/sass/_registration.scss +7 -8
  364. package/{src → dist}/sass/_style.scss +40 -43
  365. package/package.json +17 -6
  366. package/src/__mocks__/file.js +0 -1
  367. package/src/__mocks__/svg.js +0 -1
  368. package/src/app.scss +0 -6
  369. package/src/app.ts +0 -43
  370. package/src/base-container/components/default-layout/DefaultLayout.test.jsx +0 -48
  371. package/src/base-container/components/default-layout/LargeLayout.jsx +0 -42
  372. package/src/base-container/components/default-layout/MediumLayout.jsx +0 -49
  373. package/src/base-container/components/default-layout/SmallLayout.jsx +0 -37
  374. package/src/base-container/components/default-layout/messages.js +0 -16
  375. package/src/base-container/components/image-layout/ExtraSmallLayout.jsx +0 -31
  376. package/src/base-container/components/image-layout/LargeLayout.jsx +0 -32
  377. package/src/base-container/components/image-layout/MediumLayout.jsx +0 -32
  378. package/src/base-container/components/image-layout/SmallLayout.jsx +0 -31
  379. package/src/base-container/components/image-layout/messages.js +0 -16
  380. package/src/base-container/components/welcome-page-layout/LargeLayout.jsx +0 -46
  381. package/src/base-container/components/welcome-page-layout/MediumLayout.jsx +0 -49
  382. package/src/base-container/components/welcome-page-layout/SmallLayout.jsx +0 -38
  383. package/src/base-container/components/welcome-page-layout/messages.js +0 -21
  384. package/src/base-container/index.jsx +0 -70
  385. package/src/base-container/tests/BaseContainer.test.jsx +0 -44
  386. package/src/common-components/EnterpriseSSO.jsx +0 -110
  387. package/src/common-components/FormGroup.jsx +0 -106
  388. package/src/common-components/InstitutionLogistration.jsx +0 -102
  389. package/src/common-components/NotFoundPage.jsx +0 -15
  390. package/src/common-components/PasswordField.jsx +0 -175
  391. package/src/common-components/RedirectLogistration.jsx +0 -94
  392. package/src/common-components/RegisterFaIcons.jsx +0 -8
  393. package/src/common-components/SocialAuthProviders.jsx +0 -75
  394. package/src/common-components/ThirdPartyAuth.jsx +0 -123
  395. package/src/common-components/ThirdPartyAuthAlert.jsx +0 -49
  396. package/src/common-components/UnAuthOnlyRoute.jsx +0 -41
  397. package/src/common-components/data/reducers.js +0 -63
  398. package/src/common-components/data/sagas.js +0 -32
  399. package/src/common-components/data/selectors.js +0 -28
  400. package/src/common-components/data/service.js +0 -23
  401. package/src/common-components/data/tests/reducer.test.js +0 -82
  402. package/src/common-components/data/tests/sagas.test.js +0 -71
  403. package/src/common-components/messages.jsx +0 -127
  404. package/src/common-components/tests/EmbeddedRegistrationRoute.test.jsx +0 -76
  405. package/src/common-components/tests/FormField.test.jsx +0 -289
  406. package/src/common-components/tests/SocialAuthProviders.test.jsx +0 -75
  407. package/src/common-components/tests/ThirdPartyAuthAlert.test.jsx +0 -39
  408. package/src/common-components/tests/UnAuthOnlyRoute.test.jsx +0 -73
  409. package/src/common-components/tests/__snapshots__/SocialAuthProviders.test.jsx.snap +0 -156
  410. package/src/common-components/tests/__snapshots__/ThirdPartyAuthAlert.test.jsx.snap +0 -53
  411. package/src/data/oneTrust.js +0 -3
  412. package/src/data/reducers.js +0 -36
  413. package/src/data/tests/cookies.test.js +0 -42
  414. package/src/data/tests/dataUtils.test.js +0 -19
  415. package/src/data/tests/reduxUtils.test.js +0 -14
  416. package/src/data/utils/cookies.js +0 -12
  417. package/src/data/utils/dataUtils.js +0 -81
  418. package/src/data/utils/index.js +0 -11
  419. package/src/data/utils/reduxUtils.js +0 -34
  420. package/src/data/utils/useMobileResponsive.js +0 -24
  421. package/src/field-renderer/FieldRenderer.jsx +0 -156
  422. package/src/field-renderer/tests/FieldRenderer.test.jsx +0 -201
  423. package/src/forgot-password/ForgotPasswordAlert.jsx +0 -97
  424. package/src/forgot-password/ForgotPasswordPage.jsx +0 -193
  425. package/src/forgot-password/data/reducers.js +0 -58
  426. package/src/forgot-password/data/sagas.js +0 -35
  427. package/src/forgot-password/data/selectors.js +0 -10
  428. package/src/forgot-password/data/service.js +0 -21
  429. package/src/forgot-password/data/tests/reducers.test.js +0 -34
  430. package/src/forgot-password/data/tests/sagas.test.js +0 -67
  431. package/src/forgot-password/messages.js +0 -128
  432. package/src/forgot-password/tests/ForgotPasswordPage.test.jsx +0 -269
  433. package/src/i18n/index.js +0 -25
  434. package/src/login/AccountActivationMessage.jsx +0 -78
  435. package/src/login/ChangePasswordPrompt.jsx +0 -91
  436. package/src/login/LoginFailure.jsx +0 -231
  437. package/src/login/LoginPage.jsx +0 -368
  438. package/src/login/data/reducers.js +0 -76
  439. package/src/login/data/sagas.js +0 -45
  440. package/src/login/data/service.js +0 -27
  441. package/src/login/data/tests/reducers.test.js +0 -155
  442. package/src/login/data/tests/sagas.test.js +0 -110
  443. package/src/login/messages.jsx +0 -211
  444. package/src/login/tests/AccountActivationMessage.test.jsx +0 -122
  445. package/src/login/tests/ChangePasswordPrompt.test.jsx +0 -75
  446. package/src/login/tests/LoginFailure.test.jsx +0 -323
  447. package/src/login/tests/LoginPage.test.jsx +0 -839
  448. package/src/logistration/Logistration.jsx +0 -189
  449. package/src/logistration/Logistration.test.jsx +0 -275
  450. package/src/progressive-profiling/ProgressiveProfiling.jsx +0 -313
  451. package/src/progressive-profiling/ProgressiveProfilingPageModal.jsx +0 -56
  452. package/src/progressive-profiling/data/reducers.js +0 -38
  453. package/src/progressive-profiling/data/sagas.js +0 -24
  454. package/src/progressive-profiling/data/service.js +0 -17
  455. package/src/progressive-profiling/messages.jsx +0 -57
  456. package/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx +0 -322
  457. package/src/register/RegistrationFields/CountryField/CountryField.jsx +0 -164
  458. package/src/register/RegistrationFields/CountryField/CountryField.test.jsx +0 -204
  459. package/src/register/RegistrationFields/CountryField/validator.js +0 -32
  460. package/src/register/RegistrationFields/EmailField/EmailField.jsx +0 -140
  461. package/src/register/RegistrationFields/EmailField/EmailField.test.jsx +0 -236
  462. package/src/register/RegistrationFields/EmailField/constants.js +0 -131
  463. package/src/register/RegistrationFields/EmailField/validator.js +0 -126
  464. package/src/register/RegistrationFields/EmailField/validator.test.js +0 -39
  465. package/src/register/RegistrationFields/HonorCodeField/HonorCode.jsx +0 -104
  466. package/src/register/RegistrationFields/HonorCodeField/HonorCode.test.jsx +0 -70
  467. package/src/register/RegistrationFields/NameField/NameField.jsx +0 -68
  468. package/src/register/RegistrationFields/NameField/NameField.test.jsx +0 -146
  469. package/src/register/RegistrationFields/TermsOfServiceField/TermsOfService.jsx +0 -58
  470. package/src/register/RegistrationFields/TermsOfServiceField/TermsOfService.test.jsx +0 -55
  471. package/src/register/RegistrationFields/UsernameField/UsernameField.jsx +0 -162
  472. package/src/register/RegistrationFields/UsernameField/UsernameField.test.jsx +0 -319
  473. package/src/register/RegistrationFields/UsernameField/validator.js +0 -16
  474. package/src/register/RegistrationPage.jsx +0 -428
  475. package/src/register/RegistrationPage.test.jsx +0 -854
  476. package/src/register/components/ConfigurableRegistrationForm.jsx +0 -244
  477. package/src/register/components/RegistrationFailure.jsx +0 -80
  478. package/src/register/components/tests/ConfigurableRegistrationForm.test.jsx +0 -401
  479. package/src/register/components/tests/RegistrationFailure.test.jsx +0 -212
  480. package/src/register/components/tests/ThirdPartyAuth.test.jsx +0 -439
  481. package/src/register/data/reducers.js +0 -140
  482. package/src/register/data/sagas.js +0 -58
  483. package/src/register/data/selectors.js +0 -34
  484. package/src/register/data/service.js +0 -45
  485. package/src/register/data/tests/reducers.test.js +0 -277
  486. package/src/register/data/tests/sagas.test.js +0 -239
  487. package/src/register/data/tests/utils.test.js +0 -98
  488. package/src/register/data/utils.js +0 -153
  489. package/src/register/messages.jsx +0 -206
  490. package/src/reset-password/ResetPasswordFailure.jsx +0 -55
  491. package/src/reset-password/ResetPasswordPage.jsx +0 -224
  492. package/src/reset-password/ResetPasswordSuccess.jsx +0 -19
  493. package/src/reset-password/data/reducers.js +0 -44
  494. package/src/reset-password/data/sagas.js +0 -67
  495. package/src/reset-password/data/selectors.js +0 -10
  496. package/src/reset-password/data/service.js +0 -61
  497. package/src/reset-password/data/tests/sagas.test.js +0 -185
  498. package/src/reset-password/messages.js +0 -88
  499. package/src/reset-password/tests/ResetPasswordPage.test.jsx +0 -241
  500. package/src/routes.jsx +0 -79
  501. package/src/setupTest.js +0 -68
  502. /package/{src → dist}/base-container/components/image-layout/index.scss +0 -0
  503. /package/{src/index.ts → dist/index.d.ts} +0 -0
  504. /package/{src → dist}/sass/_forgot_password.scss +0 -0
  505. /package/{src → dist}/sass/_login_page.scss +0 -0
  506. /package/{src → dist}/sass/_reset_password.scss +0 -0
@@ -1,153 +0,0 @@
1
- import { snakeCaseObject } from '@openedx/frontend-base';
2
-
3
- import { LETTER_REGEX, NUMBER_REGEX } from '../../data/constants';
4
- import messages from '../messages';
5
- import validateEmail from '../RegistrationFields/EmailField/validator';
6
- import validateName from '../RegistrationFields/NameField/validator';
7
- import validateUsername from '../RegistrationFields/UsernameField/validator';
8
-
9
- /**
10
- * It validates the password field value
11
- * @param value
12
- * @param formatMessage
13
- * @returns {string}
14
- */
15
- export const validatePasswordField = (value, formatMessage) => {
16
- let fieldError = '';
17
- if (!value || !LETTER_REGEX.test(value) || !NUMBER_REGEX.test(value) || value.length < 8) {
18
- fieldError = formatMessage(messages['password.validation.message']);
19
- }
20
- return fieldError;
21
- };
22
-
23
- /**
24
- * It accepts complete registration data as payload and checks if the form is valid.
25
- * @param payload
26
- * @param errors
27
- * @param configurableFormFields
28
- * @param fieldDescriptions
29
- * @param formatMessage
30
- * @returns {{fieldErrors, isValid: boolean}}
31
- */
32
- export const isFormValid = (
33
- payload,
34
- errors,
35
- configurableFormFields,
36
- fieldDescriptions,
37
- formatMessage,
38
- ) => {
39
- const fieldErrors = { ...errors };
40
- let isValid = true;
41
- let emailSuggestion = { suggestion: '', type: '' };
42
-
43
- Object.keys(payload).forEach(key => {
44
- switch (key) {
45
- case 'name':
46
- if (!fieldErrors.name) {
47
- fieldErrors.name = validateName(payload.name, formatMessage);
48
- }
49
- if (fieldErrors.name) {
50
- isValid = false;
51
- }
52
- break;
53
- case 'email': {
54
- if (!fieldErrors.email) {
55
- const {
56
- fieldError, confirmEmailError, suggestion,
57
- } = validateEmail(payload.email, configurableFormFields?.confirm_email, formatMessage);
58
- if (fieldError) {
59
- fieldErrors.email = fieldError;
60
- isValid = false;
61
- }
62
- if (confirmEmailError) {
63
- fieldErrors.confirm_email = confirmEmailError;
64
- isValid = false;
65
- }
66
- emailSuggestion = suggestion;
67
- }
68
- if (fieldErrors.email) {
69
- isValid = false;
70
- }
71
- break;
72
- }
73
- case 'username':
74
- if (!fieldErrors.username) {
75
- fieldErrors.username = validateUsername(payload.username, formatMessage);
76
- }
77
- if (fieldErrors.username) {
78
- isValid = false;
79
- }
80
- break;
81
- case 'password':
82
- if (!fieldErrors.password) {
83
- fieldErrors.password = validatePasswordField(payload.password, formatMessage);
84
- }
85
- if (fieldErrors.password) {
86
- isValid = false;
87
- }
88
- break;
89
- default:
90
- break;
91
- }
92
- });
93
-
94
- // Don't validate when country field is optional or hidden and not present on registration form
95
- if (configurableFormFields?.country && !configurableFormFields.country?.displayValue) {
96
- fieldErrors.country = formatMessage(messages['empty.country.field.error']);
97
- isValid = false;
98
- } else if (configurableFormFields?.country && !configurableFormFields.country?.countryCode) {
99
- fieldErrors.country = formatMessage(messages['invalid.country.field.error']);
100
- isValid = false;
101
- }
102
-
103
- Object.keys(fieldDescriptions).forEach(key => {
104
- if (key === 'country' && !configurableFormFields?.country?.displayValue) {
105
- fieldErrors[key] = formatMessage(messages['empty.country.field.error']);
106
- } else if (!configurableFormFields[key]) {
107
- fieldErrors[key] = fieldDescriptions[key].error_message;
108
- }
109
- if (fieldErrors[key]) {
110
- isValid = false;
111
- }
112
- });
113
-
114
- return { isValid, fieldErrors, emailSuggestion };
115
- };
116
-
117
- /**
118
- * It prepares a payload for registration data that can be passed to registration API endpoint.
119
- * @param initPayload
120
- * @param configurableFormFields
121
- * @param showMarketingEmailOptInCheckbox
122
- * @param totalRegistrationTime
123
- * @param queryParams
124
- * @returns {*}
125
- */
126
- export const prepareRegistrationPayload = (
127
- initPayload,
128
- configurableFormFields,
129
- showMarketingEmailOptInCheckbox,
130
- totalRegistrationTime,
131
- queryParams,
132
- ) => {
133
- let payload = { ...initPayload };
134
- Object.keys(configurableFormFields).forEach((fieldName) => {
135
- if (fieldName === 'country') {
136
- payload[fieldName] = configurableFormFields[fieldName].countryCode;
137
- } else {
138
- payload[fieldName] = configurableFormFields[fieldName];
139
- }
140
- });
141
-
142
- // Don't send the marketing email opt-in value if the flag is turned off
143
- if (!showMarketingEmailOptInCheckbox) {
144
- delete payload.marketingEmailsOptIn;
145
- }
146
-
147
- payload.totalRegistrationTime = totalRegistrationTime;
148
- payload = snakeCaseObject(payload);
149
-
150
- // add query params to the payload
151
- payload = { ...payload, ...queryParams };
152
- return payload;
153
- };
@@ -1,206 +0,0 @@
1
- import { defineMessages } from '@openedx/frontend-base';
2
-
3
- const messages = defineMessages({
4
- 'register.page.title': {
5
- id: 'register.page.title',
6
- defaultMessage: 'Register | {siteName}',
7
- description: 'register page title',
8
- },
9
- // Field labels
10
- 'registration.fullname.label': {
11
- id: 'registration.fullname.label',
12
- defaultMessage: 'Full name',
13
- description: 'Label that appears above fullname field',
14
- },
15
- 'registration.email.label': {
16
- id: 'registration.email.label',
17
- defaultMessage: 'Email',
18
- description: 'Label that appears above email field on register page',
19
- },
20
- 'registration.username.label': {
21
- id: 'registration.username.label',
22
- defaultMessage: 'Public username',
23
- description: 'Label that appears above username field',
24
- },
25
- 'registration.password.label': {
26
- id: 'registration.password.label',
27
- defaultMessage: 'Password',
28
- description: 'Label that appears above password field',
29
- },
30
- 'registration.country.label': {
31
- id: 'registration.country.label',
32
- defaultMessage: 'Country/Region',
33
- description: 'Placeholder for the country options dropdown.',
34
- },
35
- 'registration.opt.in.label': {
36
- id: 'registration.opt.in.label',
37
- defaultMessage: 'I agree that {siteName} may send me marketing messages.',
38
- description: 'Text for opt in option on register page.',
39
- },
40
- // Help text
41
- 'help.text.name': {
42
- id: 'help.text.name',
43
- defaultMessage: 'This name will be used by any certificates that you earn.',
44
- description: 'Help text for fullname field on registration page',
45
- },
46
- 'help.text.username.1': {
47
- id: 'help.text.username.1',
48
- defaultMessage: 'The name that will identify you in your courses.',
49
- description: 'Part of help text for username field on registration page',
50
- },
51
- 'help.text.username.2': {
52
- id: 'help.text.username.2',
53
- defaultMessage: 'This can not be changed later.',
54
- description: 'Part of help text for username field on registration page',
55
- },
56
- 'help.text.email': {
57
- id: 'help.text.email',
58
- defaultMessage: 'For account activation and important updates',
59
- description: 'Help text for email field on registration page',
60
- },
61
- // Form buttons
62
- 'create.account.for.free.button': {
63
- id: 'create.account.for.free.button',
64
- defaultMessage: 'Create an account for free',
65
- description: 'Label text for registration form submission button',
66
- },
67
- 'create.account.cta.button': {
68
- id: 'create.account.cta.button',
69
- defaultMessage: '{label}',
70
- description: 'Label text for registration form submission button for those users who are landing through redirections',
71
- },
72
- // Institution login
73
- 'register.institution.login.page.title': {
74
- id: 'register.institution.login.page.title',
75
- defaultMessage: 'Register with institution/campus credentials',
76
- description: 'Heading of institution page',
77
- },
78
- // Validation messages
79
- 'empty.name.field.error': {
80
- id: 'empty.name.field.error',
81
- defaultMessage: 'Enter your full name',
82
- description: 'Error message for empty fullname field',
83
- },
84
- 'empty.email.field.error': {
85
- id: 'empty.email.field.error',
86
- defaultMessage: 'Enter your email',
87
- description: 'Error message for empty email field',
88
- },
89
- 'empty.username.field.error': {
90
- id: 'empty.username.field.error',
91
- defaultMessage: 'Username must be between 2 and 30 characters',
92
- description: 'Error message for empty username field',
93
- },
94
- 'empty.password.field.error': {
95
- id: 'empty.password.field.error',
96
- defaultMessage: 'Password criteria has not been met',
97
- description: 'Error message for empty password field',
98
- },
99
- 'empty.country.field.error': {
100
- id: 'empty.country.field.error',
101
- defaultMessage: 'Select your country or region of residence',
102
- description: 'Error message when no country/region is selected',
103
- },
104
- 'invalid.country.field.error': {
105
- id: 'invalid.country.field.error',
106
- defaultMessage: 'Country must match with an option available in the dropdown.',
107
- description: 'Error message when country is invalid',
108
- },
109
- 'email.do.not.match': {
110
- id: 'email.do.not.match',
111
- defaultMessage: 'The email addresses do not match.',
112
- description: 'Email not match to confirm email',
113
- },
114
- 'email.invalid.format.error': {
115
- id: 'email.invalid.format.error',
116
- defaultMessage: 'Enter a valid email address',
117
- description: 'Validation error for invalid email address',
118
- },
119
- 'username.validation.message': {
120
- id: 'username.validation.message',
121
- defaultMessage: 'Username must be between 2 and 30 characters',
122
- description: 'Error message for empty username field',
123
- },
124
- 'name.validation.message': {
125
- id: 'name.validation.message',
126
- defaultMessage: 'Enter a valid name',
127
- description: 'Validation message that appears when fullname contain URL',
128
- },
129
- 'password.validation.message': {
130
- id: 'password.validation.message',
131
- defaultMessage: 'Password criteria has not been met',
132
- description: 'Error message for empty or invalid password',
133
- },
134
- 'username.format.validation.message': {
135
- id: 'username.format.validation.message',
136
- defaultMessage: 'Usernames can only contain letters (A-Z, a-z), numerals (0-9), underscores (_), and hyphens (-). Usernames cannot contain spaces',
137
- description: 'Validation message that appears when username format is invalid',
138
- },
139
- // Error messages
140
- 'registration.request.failure.header': {
141
- id: 'registration.request.failure.header',
142
- defaultMessage: 'We couldn\'t create your account.',
143
- description: 'error message when registration failure.',
144
- },
145
- 'registration.empty.form.submission.error': {
146
- id: 'registration.empty.form.submission.error',
147
- defaultMessage: 'Please check your responses and try again.',
148
- description: 'Error message that appears on top of the form when empty form is submitted',
149
- },
150
- 'registration.request.server.error': {
151
- id: 'registration.request.server.error',
152
- defaultMessage: 'An error has occurred. Try refreshing the page, or check your internet connection.',
153
- description: 'Error message for internal server error.',
154
- },
155
- 'registration.rate.limit.error': {
156
- id: 'registration.rate.limit.error',
157
- defaultMessage: 'Too many failed registration attempts. Try again later.',
158
- description: 'Error message that appears when an anonymous user has made too many failed registration attempts',
159
- },
160
- 'registration.tpa.session.expired': {
161
- id: 'registration.tpa.session.expired',
162
- defaultMessage: 'Registration using {provider} has timed out.',
163
- description: 'Error message that appears when a user has not registered in the required timeframe for the registration method they chose.',
164
- },
165
- 'registration.tpa.authentication.failure': {
166
- id: 'registration.tpa.authentication.failure',
167
- defaultMessage: 'We are sorry, you are not authorized to access {platform_name} via this channel. '
168
- + 'Please contact your learning administrator or manager in order to access {platform_name}.'
169
- + '{lineBreak}{lineBreak}Error Details:{lineBreak}{errorMessage}',
170
- description: 'Error message third party authentication pipeline fails',
171
- },
172
- // Terms of Service and Honor Code
173
- 'terms.of.service.and.honor.code': {
174
- id: 'terms.of.service.and.honor.code',
175
- defaultMessage: 'Terms of Service and Honor Code',
176
- description: 'Text for the hyperlink that redirects user to terms of service and honor code',
177
- },
178
- 'privacy.policy': {
179
- id: 'privacy.policy',
180
- defaultMessage: 'Privacy Policy',
181
- description: 'Text for the hyperlink that redirects user to privacy policy',
182
- },
183
- 'honor.code': {
184
- id: 'honor.code',
185
- defaultMessage: 'Honor Code',
186
- description: 'Text for the hyperlink that redirects user to the honor code',
187
- },
188
- 'terms.of.service': {
189
- id: 'terms.of.service',
190
- defaultMessage: 'Terms of Service',
191
- description: 'Text for the hyperlink that redirects user to the terms of service',
192
- },
193
- // miscellaneous strings
194
- 'registration.username.suggestion.label': {
195
- id: 'registration.username.suggestion.label',
196
- defaultMessage: 'Suggested:',
197
- description: 'Suggested usernames label text.',
198
- },
199
- 'did.you.mean.alert.text': {
200
- id: 'did.you.mean.alert.text',
201
- defaultMessage: 'Did you mean',
202
- description: 'Did you mean alert suggestion',
203
- },
204
- });
205
-
206
- export default messages;
@@ -1,55 +0,0 @@
1
- import { useIntl } from '@openedx/frontend-base';
2
- import { Alert } from '@openedx/paragon';
3
- import { Error } from '@openedx/paragon/icons';
4
- import PropTypes from 'prop-types';
5
-
6
- import { FORM_SUBMISSION_ERROR, PASSWORD_RESET, PASSWORD_VALIDATION_ERROR } from './data/constants';
7
- import messages from './messages';
8
-
9
- const ResetPasswordFailure = (props) => {
10
- const { formatMessage } = useIntl();
11
- const { errorCode, errorMsg } = props;
12
-
13
- let errorMessage = null;
14
- let heading = formatMessage(messages['reset.password.failure.heading']);
15
- switch (errorCode) {
16
- case PASSWORD_RESET.FORBIDDEN_REQUEST:
17
- heading = formatMessage(messages['reset.server.rate.limit.error']);
18
- errorMessage = formatMessage(messages['rate.limit.error']);
19
- break;
20
- case PASSWORD_RESET.INTERNAL_SERVER_ERROR:
21
- errorMessage = formatMessage(messages['internal.server.error']);
22
- break;
23
- case PASSWORD_VALIDATION_ERROR:
24
- errorMessage = errorMsg;
25
- break;
26
- case FORM_SUBMISSION_ERROR:
27
- errorMessage = formatMessage(messages['reset.password.form.submission.error']);
28
- break;
29
- default:
30
- break;
31
- }
32
-
33
- if (errorMessage) {
34
- return (
35
- <Alert id="validation-errors" className="mb-5" variant="danger" icon={Error}>
36
- <Alert.Heading>{heading}</Alert.Heading>
37
- <p>{errorMessage}</p>
38
- </Alert>
39
- );
40
- }
41
-
42
- return null;
43
- };
44
-
45
- ResetPasswordFailure.defaultProps = {
46
- errorCode: null,
47
- errorMsg: null,
48
- };
49
-
50
- ResetPasswordFailure.propTypes = {
51
- errorCode: PropTypes.string,
52
- errorMsg: PropTypes.string,
53
- };
54
-
55
- export default ResetPasswordFailure;
@@ -1,224 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import { connect } from 'react-redux';
3
-
4
- import { getSiteConfig, useIntl } from '@openedx/frontend-base';
5
- import {
6
- Form,
7
- Icon,
8
- Spinner,
9
- StatefulButton,
10
- Tab,
11
- Tabs,
12
- } from '@openedx/paragon';
13
- import { ChevronLeft } from '@openedx/paragon/icons';
14
- import PropTypes from 'prop-types';
15
- import { Helmet } from 'react-helmet';
16
- import { useNavigate, useParams } from 'react-router-dom';
17
-
18
- import BaseContainer from '../base-container';
19
- import { PasswordField } from '../common-components';
20
- import {
21
- LETTER_REGEX, LOGIN_PAGE, NUMBER_REGEX, RESET_PAGE,
22
- } from '../data/constants';
23
- import { getAllPossibleQueryParams, updatePathWithQueryParams, windowScrollTo } from '../data/utils';
24
- import { resetPassword, validateToken } from './data/actions';
25
- import {
26
- FORM_SUBMISSION_ERROR, PASSWORD_RESET_ERROR, PASSWORD_VALIDATION_ERROR, TOKEN_STATE,
27
- } from './data/constants';
28
- import { resetPasswordResultSelector } from './data/selectors';
29
- import { validatePassword } from './data/service';
30
- import messages from './messages';
31
- import ResetPasswordFailure from './ResetPasswordFailure';
32
-
33
- const ResetPasswordPage = (props) => {
34
- const { formatMessage } = useIntl();
35
- const newPasswordError = formatMessage(messages['password.validation.message']);
36
-
37
- const [newPassword, setNewPassword] = useState('');
38
- const [confirmPassword, setConfirmPassword] = useState('');
39
- const [formErrors, setFormErrors] = useState({});
40
- const [errorCode, setErrorCode] = useState(null);
41
- const { token } = useParams();
42
- const navigate = useNavigate();
43
-
44
- useEffect(() => {
45
- if (props.status === PASSWORD_RESET_ERROR) {
46
- navigate(updatePathWithQueryParams(RESET_PAGE));
47
- }
48
- if (props.status === 'success') {
49
- navigate(updatePathWithQueryParams(LOGIN_PAGE));
50
- }
51
- if (props.status !== TOKEN_STATE.PENDING) {
52
- setErrorCode(props.status);
53
- }
54
- if (props.status === PASSWORD_VALIDATION_ERROR) {
55
- setFormErrors({ newPassword: newPasswordError });
56
- }
57
- }, [props.status]);
58
-
59
- const validatePasswordFromBackend = async (password) => {
60
- let errorMessage = '';
61
- try {
62
- const payload = {
63
- reset_password_page: true,
64
- password,
65
- };
66
- errorMessage = await validatePassword(payload);
67
- } catch (err) {
68
- errorMessage = '';
69
- }
70
- setFormErrors({ ...formErrors, newPassword: errorMessage });
71
- };
72
-
73
- const validateInput = (name, value) => {
74
- switch (name) {
75
- case 'newPassword':
76
- if (!value || !LETTER_REGEX.test(value) || !NUMBER_REGEX.test(value) || value.length < 8) {
77
- formErrors.newPassword = formatMessage(messages['password.validation.message']);
78
- } else {
79
- validatePasswordFromBackend(value);
80
- }
81
- break;
82
- case 'confirmPassword':
83
- if (!value) {
84
- formErrors.confirmPassword = formatMessage(messages['confirm.your.password']);
85
- } else if (value !== newPassword) {
86
- formErrors.confirmPassword = formatMessage(messages['passwords.do.not.match']);
87
- } else {
88
- formErrors.confirmPassword = '';
89
- }
90
- break;
91
- default:
92
- break;
93
- }
94
- setFormErrors({ ...formErrors });
95
- return !Object.values(formErrors).some(x => (x !== ''));
96
- };
97
-
98
- const handleOnBlur = (event) => {
99
- const { name, value } = event.target;
100
- validateInput(name, value);
101
- };
102
-
103
- const handleConfirmPasswordChange = (e) => {
104
- const { value } = e.target;
105
-
106
- setConfirmPassword(value);
107
- validateInput('confirmPassword', value);
108
- };
109
-
110
- const handleOnFocus = (e) => {
111
- setFormErrors({ ...formErrors, [e.target.name]: '' });
112
- };
113
-
114
- const handleSubmit = (e) => {
115
- e.preventDefault();
116
-
117
- const isPasswordValid = validateInput('newPassword', newPassword);
118
- const isPasswordConfirmed = validateInput('confirmPassword', confirmPassword);
119
-
120
- if (isPasswordValid && isPasswordConfirmed) {
121
- const formPayload = {
122
- new_password1: newPassword,
123
- new_password2: confirmPassword,
124
- };
125
- const params = getAllPossibleQueryParams();
126
- props.resetPassword(formPayload, props.token, params);
127
- } else {
128
- setErrorCode(FORM_SUBMISSION_ERROR);
129
- windowScrollTo({ left: 0, top: 0, behavior: 'smooth' });
130
- }
131
- };
132
-
133
- const tabTitle = (
134
- <div className="d-inline-flex flex-wrap align-items-center">
135
- <Icon src={ChevronLeft} />
136
- <span className="ml-2">{formatMessage(messages['sign.in'])}</span>
137
- </div>
138
- );
139
-
140
- if (props.status === TOKEN_STATE.PENDING && token) {
141
- props.validateToken(token);
142
- return (
143
- <Spinner animation="border" variant="primary" className="spinner--position-centered" />
144
- );
145
- } else {
146
- return (
147
- <BaseContainer>
148
- <div>
149
- <Helmet>
150
- <title>
151
- {formatMessage(messages['reset.password.page.title'], { siteName: getSiteConfig().siteName })}
152
- </title>
153
- </Helmet>
154
- <Tabs activeKey="" id="controlled-tab" onSelect={(key) => navigate(updatePathWithQueryParams(key))}>
155
- <Tab title={tabTitle} eventKey={LOGIN_PAGE} />
156
- </Tabs>
157
- <div id="main-content" className="main-content">
158
- <div className="mw-xs">
159
- <ResetPasswordFailure errorCode={errorCode} errorMsg={props.errorMsg} />
160
- <h4>{formatMessage(messages['reset.password'])}</h4>
161
- <p className="mb-4">{formatMessage(messages['reset.password.page.instructions'])}</p>
162
- <Form id="set-reset-password-form" name="set-reset-password-form">
163
- <PasswordField
164
- name="newPassword"
165
- value={newPassword}
166
- handleChange={(e) => setNewPassword(e.target.value)}
167
- handleBlur={handleOnBlur}
168
- handleFocus={handleOnFocus}
169
- errorMessage={formErrors.newPassword}
170
- floatingLabel={formatMessage(messages['new.password.label'])}
171
- />
172
- <PasswordField
173
- name="confirmPassword"
174
- value={confirmPassword}
175
- handleChange={handleConfirmPasswordChange}
176
- handleFocus={handleOnFocus}
177
- errorMessage={formErrors.confirmPassword}
178
- showRequirements={false}
179
- floatingLabel={formatMessage(messages['confirm.password.label'])}
180
- />
181
- <StatefulButton
182
- id="submit-new-password"
183
- name="submit-new-password"
184
- type="submit"
185
- variant="brand"
186
- className="reset-password--button"
187
- state={props.status}
188
- labels={{
189
- default: formatMessage(messages['reset.password']),
190
- pending: '',
191
- }}
192
- onClick={e => handleSubmit(e)}
193
- onMouseDown={(e) => e.preventDefault()}
194
- />
195
- </Form>
196
- </div>
197
- </div>
198
- </div>
199
- </BaseContainer>
200
- );
201
- }
202
- };
203
-
204
- ResetPasswordPage.defaultProps = {
205
- status: null,
206
- token: null,
207
- errorMsg: null,
208
- };
209
-
210
- ResetPasswordPage.propTypes = {
211
- resetPassword: PropTypes.func.isRequired,
212
- validateToken: PropTypes.func.isRequired,
213
- token: PropTypes.string,
214
- status: PropTypes.string,
215
- errorMsg: PropTypes.string,
216
- };
217
-
218
- export default connect(
219
- resetPasswordResultSelector,
220
- {
221
- resetPassword,
222
- validateToken,
223
- },
224
- )(ResetPasswordPage);
@@ -1,19 +0,0 @@
1
- import { useIntl } from '@openedx/frontend-base';
2
- import { Alert } from '@openedx/paragon';
3
-
4
- import messages from './messages';
5
-
6
- const ResetPasswordSuccess = () => {
7
- const { formatMessage } = useIntl();
8
-
9
- return (
10
- <Alert id="reset-password-success" variant="success" className="mb-5">
11
- <Alert.Heading>
12
- {formatMessage(messages['reset.password.success.heading'])}
13
- </Alert.Heading>
14
- <p>{formatMessage(messages['reset.password.success'])}</p>
15
- </Alert>
16
- );
17
- };
18
-
19
- export default ResetPasswordSuccess;