vite-garden
Version:
Vite Garden -- a part of the threed.ai family of JavaScript-friendly food-growing libraries
103 lines (99 loc) • 3.37 kB
JavaScript
;
import { ACTION_TYPES, MUTATION_TYPES } from "../util/constants";
import getWeb3 from "../util/web3/getWeb3";
export default {
[ACTION_TYPES.REGISTER_WEB3_INSTANCE]({ state, commit }) {
return new Promise(function(resolve, reject) {
getWeb3
.then(result => {
commit(MUTATION_TYPES.REGISTER_WEB3_INSTANCE, {
result,
callback: state => {
resolve({ state });
}
});
})
.catch(error => {
if (!(state && state.web3 && state.web3.instance)) {
const result = error.result;
commit(MUTATION_TYPES.REGISTER_WEB3_INSTANCE, {
result: {
web3: result && result.hasInjectedWeb3 ? result.web3 : null,
hasInjectedWeb3:
result && result.hasInjectedWeb3
? result.hasInjectedWeb3
: false,
web3Error: error.error
},
callback: state => {
/* eslint-disable-next-line */
reject({ state, error })
}
});
}
});
});
},
[ACTION_TYPES.SET_CURRENT_VIEW]({ commit }, newRoute) {
commit(MUTATION_TYPES.SET_CURRENT_VIEW, newRoute);
},
[ACTION_TYPES.UPDATE_USER_GRAVATAR]({ commit }, payload) {
commit(MUTATION_TYPES.UPDATE_USER_GRAVATAR, payload);
},
[ACTION_TYPES.UPDATE_DAPP_READINESS]({ commit }, isReady) {
commit(MUTATION_TYPES.UPDATE_DAPP_READINESS, isReady);
},
[ACTION_TYPES.INITIALISE_IS_VALID_USER_BUT]({ commit }, value) {
/* eslint-disable no-unused-vars */
return new Promise(function(resolve, reject) {
commit(MUTATION_TYPES.INITIALISE_IS_VALID_USER_BUT, {
value,
callback: () => resolve()
});
});
},
[ACTION_TYPES.SET_IS_VALID_USER_BUT]({ commit }, newValue) {
commit(MUTATION_TYPES.SET_IS_VALID_USER_BUT, newValue);
},
[ACTION_TYPES.RESET_IS_VALID_USER_BUT]({ commit }) {
commit(MUTATION_TYPES.RESET_IS_VALID_USER_BUT);
},
[ACTION_TYPES.UPDATE_WEB3_PROPERTIES]({ commit }, payload) {
commit(MUTATION_TYPES.UPDATE_WEB3_PROPERTIES, payload);
},
[ACTION_TYPES.UPDATE_USER_BLOCKCHAIN_STATUS]({ commit }) {
return new Promise(function(resolve, reject) {
commit(MUTATION_TYPES.UPDATE_USER_BLOCKCHAIN_STATUS, {
callback: result => {
result.status ? resolve() : reject(result);
}
});
});
},
[ACTION_TYPES.LOGIN]({ commit }, payload) {
return new Promise(function(resolve, reject) {
commit(MUTATION_TYPES.LOGIN, {
userObject: payload.userObject,
callback: status => {
/* eslint-disable-next-line */
status ? resolve() : reject();
}
});
});
},
[ACTION_TYPES.LOGOUT]({ commit }) {
/* eslint-disable no-unused-vars */
return new Promise(function(resolve, reject) {
commit(MUTATION_TYPES.LOGOUT, {
callback: () => resolve()
});
});
},
[ACTION_TYPES.CHANGE_CURRENT_ROUTE_TO]({ commit }, newRoute) {
commit(MUTATION_TYPES.CHANGE_CURRENT_ROUTE_TO, newRoute);
},
// vuesoft
toggleSidebarColor({ commit }, payload) {
commit("sidebarType", payload);
},
};