Initial import
This commit is contained in:
61
apps/login/store.js
Normal file
61
apps/login/store.js
Normal file
@@ -0,0 +1,61 @@
|
||||
//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);
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user