LoginRegisterForm.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <div id="login-form">
  3. <fieldset class="login">
  4. <h2>Login</h2>
  5. <input
  6. type="email"
  7. name="email"
  8. v-model="loginEmail"
  9. placeholder="Email"
  10. >
  11. <input
  12. type="password"
  13. name="password"
  14. v-model="password"
  15. placeholder="Password"
  16. >
  17. <button
  18. type="button"
  19. name="login"
  20. @click.stop="onLogin"
  21. >
  22. login
  23. </button>
  24. </fieldset>
  25. <fieldset class="register">
  26. <h2>Or register</h2>
  27. <input
  28. type="email"
  29. name="email"
  30. v-model="registerEmail"
  31. placeholder="Email"
  32. >
  33. <button
  34. type="button"
  35. name="register"
  36. @click.stop="onRegister"
  37. >
  38. register
  39. </button>
  40. </fieldset>
  41. </div>
  42. </template>
  43. <script>
  44. import { mapState, mapActions } from 'vuex'
  45. export default {
  46. name: "LoginForm",
  47. data: () => ({
  48. loginEmail:null,
  49. password:null,
  50. registerEmail:null
  51. }),
  52. methods: {
  53. ...mapActions({
  54. userLogin: 'User/userLogin',
  55. userRegister: 'User/userRegister'
  56. }),
  57. onLogin () {
  58. this.userLogin({
  59. mail: this.loginEmail,
  60. pass: this.password
  61. }).then( () => {
  62. console.log('logedin from login component');
  63. this.$emit('onLogedIn')
  64. }
  65. ).catch(( error ) => {
  66. console.warn('Issue with login from login component', error)
  67. Promise.reject(error)
  68. })
  69. },
  70. onRegister () {
  71. console.log('on register');
  72. this.userRegister({
  73. mail: this.registerEmail
  74. }).then( () => {
  75. console.log('user registered');
  76. }
  77. ).catch(( error ) => {
  78. console.warn('Issue with register from login component', error)
  79. Promise.reject(error)
  80. })
  81. }
  82. }
  83. }
  84. </script>
  85. <style lang="scss" scoped>
  86. fieldset{
  87. padding:0;
  88. margin:0;
  89. border:none;
  90. }
  91. </style>