From f83823fc957a4200faa0d1eca702c1f1fa1d0093 Mon Sep 17 00:00:00 2001 From: V S Tharunika <1vstharu279@gmail.com> Date: Sun, 3 Jan 2021 16:01:58 +0530 Subject: [PATCH] rectifying errors --- book-racker/src/components/Header.vue | 4 +-- book-racker/src/components/Login.vue | 6 +++-- book-racker/src/components/Register.vue | 4 ++- book-racker/src/main.js | 5 ++++ book-racker/src/store/store.js | 35 +++++++++++++++++++++++++ 5 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 book-racker/src/store/store.js diff --git a/book-racker/src/components/Header.vue b/book-racker/src/components/Header.vue index aeec67e5..db4c6853 100644 --- a/book-racker/src/components/Header.vue +++ b/book-racker/src/components/Header.vue @@ -23,7 +23,7 @@ <v-toolbar-items style="padding-top: 50px;padding-bottom: 20px;padding-right: 20px;"> <router-link to="register"> - <v-btn > + <v-btn v-if="!$store.state.isUserLoggedIn"> Sign Up </v-btn> </router-link> @@ -31,7 +31,7 @@ <v-toolbar-items style="padding-top: 50px;padding-bottom: 20px;"> <router-link to="login"> - <v-btn> + <v-btn v-if="!$store.state.isUserLoggedIn"> Log In </v-btn> </router-link> diff --git a/book-racker/src/components/Login.vue b/book-racker/src/components/Login.vue index 423270bb..223ebb43 100644 --- a/book-racker/src/components/Login.vue +++ b/book-racker/src/components/Login.vue @@ -33,11 +33,13 @@ export default { methods: { async login () { try { - await AuthentiacationService.login({ + const response = await AuthentiacationService.login({ email: this.email, password: this.password }) - } catch (error) { + this.$store.dispatch('setToken', response.data.token) + this.$store.dispatch('setUser', response.data.user) + } catch (error) { this.error = error.response.data.error } } diff --git a/book-racker/src/components/Register.vue b/book-racker/src/components/Register.vue index 3311dcf6..04388134 100644 --- a/book-racker/src/components/Register.vue +++ b/book-racker/src/components/Register.vue @@ -35,10 +35,12 @@ export default { methods: { async register () { try { - await AuthentiacationService.register({ + const response = await AuthentiacationService.register({ email: this.email, password: this.password }) + this.$store.dispatch('setToken', response.data.token) + this.$store.dispatch('setUser', response.data.user) } catch (error) { this.error = error.response.data.error } diff --git a/book-racker/src/main.js b/book-racker/src/main.js index fc247db3..32096e0f 100644 --- a/book-racker/src/main.js +++ b/book-racker/src/main.js @@ -4,16 +4,21 @@ import Vue from 'vue' import App from './App' import router from './router' import Vuetify from 'vuetify' +import { sync } from 'vuex-router-sync' import 'vuetify/dist/vuetify.min.css' +import store from '@/store/store' Vue.config.productionTip = false Vue.use(Vuetify) +sync(store, router) + /* eslint-disable no-new */ new Vue({ el: '#app', router, + store, components: { App }, template: '<App/>' }) diff --git a/book-racker/src/store/store.js b/book-racker/src/store/store.js new file mode 100644 index 00000000..2015d476 --- /dev/null +++ b/book-racker/src/store/store.js @@ -0,0 +1,35 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +export default new Vuex.Store({ + strict: true, + state: { + token: null, + user: null, + isUserLoggedIn: false + }, + mutations: { + setToken (state, token) { + state.token = token + if (token) { + state.isUserLoggedIn = true + } else { + state.isUserLoggedIn = false + } + }, + setUser (state, user) { + state.user = user + } + + }, + actions: { + setToken({commit}, token) { + commit('setToken', token) + }, + setUser({commit}, user) { + commit('setUser', user) + } + } +}) -- GitLab