Advertisement
ErolKZ

Untitled

Mar 31st, 2022
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1.  
  2. import { register } from '../api/api.js';
  3. import { html } from '../lib.js';
  4.  
  5. const registerTemplate = (onSubmit, errorMsg, errors) => html`
  6. <div class="row space-top">
  7. <div class="col-md-12">
  8. <h1>Register New User</h1>
  9. <p>Please fill all fields.</p>
  10. </div>
  11. </div>
  12. <form @submit=${onSubmit}>
  13. <div class="row space-top">
  14. <div class="col-md-4">
  15. ${errorMsg ? html`<div class="form-group error">${errorMsg}</div>` : null}
  16. <div class="form-group">
  17. <label class="form-control-label" for="email">Email</label>
  18. <input class=${'form-control' + (errors.email ? ' is invalid' : '')} id="email" type="text" name="email">
  19. </div>
  20. <div class="form-group">
  21. <label class="form-control-label" for="password">Password</label>
  22. <input class=${'form-control' + (errors.password ? ' is invalid' : '')} id="password" type="password" name="password">
  23. </div>
  24. <div class="form-group">
  25. <label class="form-control-label" for="rePass">Repeat</label>
  26. <input class=${'form-control' + (errors.rePass ? ' is invalid' : '')} id="rePass" type="password" name="rePass">
  27. </div>
  28. <input type="submit" class="btn btn-primary" value="Register" />
  29. </div>
  30. </div>
  31. </form>`;
  32.  
  33. export function registerPage(ctx) {
  34. update(null, {});
  35.  
  36. function update(errorMsg, errors) {
  37. ctx.render(registerTemplate(onSubmit, errorMsg, errors));
  38. }
  39.  
  40. async function onSubmit(event) {
  41. event.preventDefault();
  42. const formData = new FormData(event.target);
  43.  
  44. const email = formData.get('email').trim();
  45. const password = formData.get('password').trim();
  46. const rePass = formData.get('rePass').trim();
  47.  
  48. try {
  49. if (email === '' || password === '') {
  50. throw {
  51. error: new Error('All fields are required!'),
  52. errors: {
  53. email: email === '',
  54. password: password === '',
  55. rePass: rePass === ''
  56. }
  57. };
  58. }
  59.  
  60. if (password !== rePass) {
  61. throw {
  62. error: new Error('Password don\'t match!'),
  63. errors: {
  64. password: true,
  65. rePass: true
  66. }
  67. };
  68. }
  69.  
  70. await register(email, password);
  71. ctx.page.redirect('/');
  72. } catch (err) {
  73. const message = err.message || err.error.message;
  74. update(message, err.errors || {});
  75. }
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement