Advertisement
ErolKZ

Untitled

Mar 31st, 2022
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1.  
  2. import { login } from '../api/api.js';
  3. import { html } from '../lib.js';
  4.  
  5. const loginTemplate = (onSubmit, errorMsg) => html`
  6. <div class="row space-top">
  7. <div class="col-md-12">
  8. <h1>Login 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" + (errorMsg ? ' 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" + (errorMsg ? ' is-invalid' : '' )} id="password" type="password"
  23. name="password">
  24. </div>
  25. <input type="submit" class="btn btn-primary" value="Login" />
  26. </div>
  27. </div>
  28. </form>`;
  29.  
  30. export function loginPage(ctx) {
  31. update();
  32.  
  33. function update(errorMsg) {
  34. ctx.render(loginTemplate(onSubmit, errorMsg));
  35. }
  36.  
  37. async function onSubmit(event) {
  38. event.preventDefault();
  39. const formData = new FormData(event.target);
  40.  
  41. const email = formData.get('email').trim();
  42. const password = formData.get('password').trim();
  43.  
  44. try {
  45. await login(email, password);
  46. ctx.updateUserNav();
  47. ctx.page.redirect('/');
  48. } catch (err) {
  49. update(err.message);
  50. }
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement