List scroll and function structure updates

This commit is contained in:
Max 2021-11-05 19:22:25 -04:00
parent ed32135565
commit e4fd449942
7 changed files with 91 additions and 70 deletions

View file

@ -1,15 +1,23 @@
<template> <template>
<div> <div class="select-car overflow-hidden">
<baseTemplate :currentCarInfo="year" neededCarInfo="What make is your vehicle?" :backFunction="goBack"> <div class="select-car-form rounded text-center">
<carAttributes :attritbutes="makes" :selectAttribute="selectMake" /> <Header
</baseTemplate> :text="year"
</div> />
<radioQuestion
questionText="What is the make of your vehicle?"
:answers="makes"
:chooseAnswer="selectMake"
/>
</div>
</div>
</template> </template>
<script> <script>
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate"; import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
import carAttributes from "@/commonComponents/carAttributes/carAttributes"; import Header from "@/uxComponents/header/header";
import globalMethods from "@/global-methods"; import store from "@/store";
import router from "@/router";
import { import {
mapState mapState
} from "vuex"; } from "vuex";
@ -21,9 +29,11 @@ export default {
}, },
methods: { methods: {
selectMake(make) { selectMake(make) {
const listButtons = document.querySelectorAll('.list-button'); this.dispatchNonBlockingStoreAction("selectMake", { make: make }).then( (response) => {
globalMethods.disableItems(listButtons); const models = response;
this.dispatchNonBlockingStoreAction("selectMake", { make: make }) store.commit('updateMake', {make, models});
router.push(`/select-model?year=${store.year}&make=${make}`);
});
}, },
goBack() { goBack() {
this.$store.state.slideTransition = "slide_reverse"; this.$store.state.slideTransition = "slide_reverse";
@ -31,8 +41,8 @@ export default {
}, },
}, },
components: { components: {
baseTemplate, radioQuestion,
carAttributes, Header,
}, },
}; };
</script> </script>

View file

@ -1,19 +1,23 @@
<template> <template>
<div> <div class="select-car overflow-hidden">
<baseTemplate <div class="select-car-form rounded text-center">
:currentCarInfo="year + ' ' + make" <Header
:neededCarInfo="'What is the model of your ' + make + '?'" :text="year + ' ' + make"
:backFunction="goBack" />
> <radioQuestion
<carAttributes :attritbutes="models" :selectAttribute="selectModel" /> :questionText="'What is the model of your ' + make + '?'"
</baseTemplate> :answers="models"
:chooseAnswer="selectModel"
/>
</div>
</div> </div>
</template> </template>
<script> <script>
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate"; import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
import carAttributes from "@/commonComponents/carAttributes/carAttributes"; import Header from "@/uxComponents/header/header";
import globalMethods from "@/global-methods"; import store from "@/store";
import router from "@/router";
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
@ -23,18 +27,20 @@ export default {
}, },
methods: { methods: {
selectModel(model) { selectModel(model) {
const listButtons = document.querySelectorAll('.list-button'); this.dispatchNonBlockingStoreAction("selectModel", { model: model }).then( (response) => {
globalMethods.disableItems(listButtons); const styles = response;
this.dispatchNonBlockingStoreAction("selectModel", { model: model }) store.commit("updateModel", { model, styles });
router.push(`/select-style?year=${store.year}&make=${store.make}&model=${model}`);
});
}, },
goBack() { goBack() {
this.$store.state.slideTransition = "slide_reverse"; this.$store.state.slideTransition = "slide_reverse";
this.$router.push(`/select-make?year=${this.$store.state.year}`); this.$router.push(`/select-make?year=${store.year}`);
}, },
}, },
components: { components: {
baseTemplate, radioQuestion,
carAttributes, Header,
}, },
}; };
</script> </script>

View file

@ -1,19 +1,23 @@
<template> <template>
<div> <div class="select-car overflow-hidden">
<baseTemplate <div class="select-car-form rounded text-center">
:currentCarInfo="year + ' ' + make + ' ' + model" <Header
:neededCarInfo="'What style is your ' + model + '?'" :text="year + ' ' + make + ' ' + model"
:backFunction="goBack" />
> <radioQuestion
<carAttributes :attritbutes="styles" :selectAttribute="selectStyle" /> :questionText="'What style is your ' + model + '?'"
</baseTemplate> :answers="styles"
:chooseAnswer="selectStyle"
/>
</div>
</div> </div>
</template> </template>
<script> <script>
import baseTemplate from "@/commonComponents/baseTemplate/baseTemplate"; import radioQuestion from "@/commonComponents/radioQuestion/radioQuestion";
import carAttributes from "@/commonComponents/carAttributes/carAttributes"; import Header from "@/uxComponents/header/header";
import globalMethods from "@/global-methods"; import store from "@/store";
import router from "@/router";
import { mapState } from "vuex"; import { mapState } from "vuex";
export default { export default {
@ -23,20 +27,21 @@ export default {
}, },
methods: { methods: {
selectStyle(style) { selectStyle(style) {
const listButtons = document.querySelectorAll('.list-button'); store.commit("updateStyle", { style });
globalMethods.disableItems(listButtons); router.push(
this.dispatchNonBlockingStoreAction("selectStyle", { style: style }) `/select-damage?year=${store.year}&make=${store.make}&model=${store.model}&style=${style}`
);
}, },
goBack() { goBack() {
this.$store.state.slideTransition = "slide_reverse"; this.$store.state.slideTransition = "slide_reverse";
this.$router.push( this.$router.push(
`/select-model?year=${this.$store.state.year}&make=${this.$store.state.make}` `/select-model?year=${store.year}&make=${store.make}`
); );
}, },
}, },
components: { components: {
baseTemplate, radioQuestion,
carAttributes, Header,
}, },
}; };
</script> </script>

View file

@ -1 +1,9 @@
test.todo('some test to be written in the future'); import { shallowMount } from '@vue/test-utils';
import SelectYear from './SelectYear';
test('SelectYear', () => {
// render the component
const wrapper = shallowMount(SelectYear, {
});
});

View file

@ -1,6 +1,7 @@
<template> <template>
<div class="select-car overflow-hidden"> <div class="select-car">
<div class="select-car-form rounded text-center"> <div class="select-car-form rounded text-center">
<Header <Header
:text="pageHeader.Text" :text="pageHeader.Text"
/> />
@ -21,9 +22,10 @@ import globalMethods from "@/global-methods";
import axios from "axios"; import axios from "axios";
import store from "@/store"; import store from "@/store";
import router from "@/router"; import router from "@/router";
import { mapState } from "vuex";
export default { export default {
name: "SelectCar", name: "SelectYear",
data() { data() {
return { return {
years: [], years: [],
@ -31,7 +33,13 @@ export default {
radioQuestion: {} radioQuestion: {}
}; };
}, },
computed: {
...mapState(["slideTransition", "carImg", "blurImg", "style"]),
},
mounted() { mounted() {
const headerHeight = document.querySelector('.select-car-form').offsetHeight + 75;
document.querySelector('.car_list').style.padding = `0 0 ${headerHeight}px 0`;
globalMethods.callHttpClient({ globalMethods.callHttpClient({
method: endpoints.GetYears.method, method: endpoints.GetYears.method,
endpoint: endpoints.GetYears.url, endpoint: endpoints.GetYears.url,

View file

@ -64,18 +64,13 @@ export default createStore({
}); });
}, },
selectMake({ commit, state }, { make }) { selectMake({ commit, state }, { make }) {
globalMethods.callHttpClient({ return globalMethods.callHttpClient({
method: endpoints.GetModels.method, method: endpoints.GetModels.method,
endpoint: endpoints.GetModels.url, endpoint: endpoints.GetModels.url,
payload:{ payload:{
"Year": state.year, "Year": state.year,
"Make": make "Make": make
} }
})
.then( (response) => {
const models = response;
commit("updateMake", { make, models });
router.push(`/select-model?year=${state.year}&make=${make}`);
}); });
}, },
selectModel({ commit, state }, { model }) { selectModel({ commit, state }, { model }) {
@ -87,19 +82,8 @@ export default createStore({
"Make": state.make, "Make": state.make,
"Model": model "Model": model
} }
})
.then( (response) => {
const styles = response;
commit("updateModel", { model, styles });
router.push(`/select-style?year=${state.year}&make=${state.make}&model=${model}`);
}); });
}, },
selectStyle({ commit, state }, { style }) {
commit("updateStyle", { style });
router.push(
`/select-damage?year=${state.year}&make=${state.make}&model=${state.model}&style=${style}`
);
},
getRouteInfo(context, { relativeUrl }) { getRouteInfo(context, { relativeUrl }) {
return globalMethods.callHttpClient({ return globalMethods.callHttpClient({
method: endpoints.GetRouteInfoEndpoint.method, method: endpoints.GetRouteInfoEndpoint.method,

View file

@ -4,7 +4,7 @@
.car_list { .car_list {
position: absolute; position: absolute;
height: calc(100% - 1rem); height: 100%;
width: calc(100% - 1rem); width: calc(100% - 1rem);
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;