//import dari api import * as api from "./api.js"; export const store = new Vuex.Store({ state: { isLogin: false, token: "", isLoading: false, errorMessage: "", nextPage: "" }, mutations: { updateLoading(state, flag) { state.isLoading = flag; }, updateIsLogin(state, flag) { state.isLogin = flag; }, updateToken(state, resp) { state.token = resp.data.token; state.nextPage = resp.nextPage; }, updateErrorMessage(state, msg) { state.errorMessage = msg; } }, actions: { async login(context, data) { context.commit("updateLoading", true); let resp = await api.login(data.userName, data.userPassword); if (resp.status == "OK") { context.commit("updateIsLogin", true); api.saveOneToken(resp.data.token); context.commit("updateToken", resp); context.commit("updateErrorMessage", ""); } else { context.commit("updateIsLogin", false); context.commit("updateErrorMessage", resp.message); api.removeOneToken(); setTimeout(() => { context.commit("updateErrorMessage", ""); }, 3000); } context.commit("updateLoading", false); }, async loadToken(context) { context.commit("updateLoading", true); let token = api.loadOneToken(); if (token == "") { context.commit("updateIsLogin", false); } else { let resp = await api.isLogin(token); if (resp.status == "OK") { context.commit("updateToken", resp); context.commit("updateIsLogin", true); } } context.commit("updateLoading", false); } } });