Files
fakesw/src/store/index.js
Kamil Klecha 3320858efa a d
2021-06-01 22:56:36 +02:00

100 lines
2.0 KiB
JavaScript

import Vue from 'vue'
import Vuex from 'vuex'
import router from '../router/index'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
loginError: false,
login: null,
token: null,
planets: [],
people: [],
movies: [],
species: [],
starships: [],
vehicles: []
},
mutations: {
authUser(state, userData) {
state.token = "Miracle fake token"
state.login = userData.login
},
clearAuthData(state) {
state.token = null
state.login = null
},
setLoginError(state) {
state.loginError = true;
},
resetLoginError(state) {
state.loginError = false;
},
setPlanetsData(state, payload) {
state.planets = payload;
},
setPeopleData(state, payload) {
state.people = payload;
},
setFilmsData(state, payload) {
state.movies = payload;
},
setSpeciesData(state, payload) {
state.species = payload;
},
setStarshipsData(state, payload) {
state.starships = payload;
},
setVehiclesData(state, payload) {
state.vehicles = payload;
}
},
actions: {
login ({commit}, authData) {
if(authData.login === "Luke" && authData.pass === "123") {
commit('authUser', { login: authData.login });
commit('resetLoginError');
router.replace('/list');
}
else {
commit('setLoginError');
}
},
logout({commit}) {
commit('clearAuthData');
router.replace('/login');
}
},
getters: {
user (state) {
return state.user
},
isUserAuthenticated (state) {
return state.token !== null;
},
isLoginError(state) {
return state.loginError !== false;
},
Planets(state) {
return state.planets;
},
People(state) {
return state.people;
},
Films(state) {
return state.movies;
},
Species(state) {
return state.species;
},
Starships(state) {
return state.starships;
},
Vehicles(state) {
return state.vehicles;
}
},
modules: {
}
})