DigitalConsumer.FixMyGlass/src/store/index.js

112 lines
3.2 KiB
JavaScript

import { createStore } from "vuex";
import { endpoints } from "@/constants/endpoints.js";
import createPersistedState from "vuex-persistedstate";
import globalMethods from "@/global-methods";
export default createStore({
plugins: [
createPersistedState({
storage: window.sessionStorage,
}),
],
state: {
makes: [],
models: [],
styles: [],
year: "",
make: "",
model: "",
style: "",
slideTransition: "none",
carImg:
"https://s3.amazonaws.com/safelite-lab-vehicle-images/Evox/8963_cc0320_032_UG_white_2014_Ford_Focus_18029225538399034889.jpg",
blurImg: true,
},
mutations: {
updateYear(state, data) {
state.year = data.year;
state.makes = data.makes.data;
state.slideTransition = "slide";
},
updateMake(state, data) {
state.make = data.make;
state.models = data.models.data;
state.slideTransition = "slide";
},
updateModel(state, data) {
state.model = data.model;
state.styles = data.styles.data;
state.slideTransition = "slide";
},
updateStyle(state, data) {
state.style = data.style;
state.carImg =
"https://s3.amazonaws.com/safelite-lab-vehicle-images/Evox/8963_cc0320_032_UG_white_2014_Ford_Focus_18029225538399034889.jpg";
state.blurImg = false;
state.slideTransition = "slide";
},
removeStyle(state) {
state.style = "";
state.blurImg = true;
state.carImg =
"https://s3.amazonaws.com/safelite-lab-vehicle-images/Evox/8963_cc0320_032_UG_white_2014_Ford_Focus_18029225538399034889.jpg";
},
},
actions: {
getYears(){
return globalMethods.callHttpClient({
method: endpoints.GetYears.method,
endpoint: endpoints.GetYears.url,
payload:{}
});
},
selectYear(context, { year }) {
return globalMethods.callHttpClient({
method: endpoints.GetMakes.method,
endpoint: endpoints.GetMakes.url,
payload:{
"Year": year
}
});
},
selectMake({ commit, state }, { make }) {
return globalMethods.callHttpClient({
method: endpoints.GetModels.method,
endpoint: endpoints.GetModels.url,
payload:{
"Year": state.year,
"Make": make
}
});
},
selectModel({ commit, state }, { model }) {
return globalMethods.callHttpClient({
method: endpoints.GetStyles.method,
endpoint: endpoints.GetStyles.url,
payload:{
"Year": state.year,
"Make": state.make,
"Model": model
}
});
},
getRouteInfo(context, { relativeUrl }) {
return globalMethods.callHttpClient({
method: endpoints.GetRouteInfoEndpoint.method,
endpoint: endpoints.GetRouteInfoEndpoint.url,
payload: {
relativeUrl: relativeUrl,
},
});
},
// For mock data purposes only
getMockPageData(context, { relativeUrl }) {
return globalMethods.callMockHttpClient({
method: endpoints.GetPageData.method,
endpoint: relativeUrl,
payload: {
},
});
},
},
});