Add isGlassAvailableForCarId method
The method will be used on all vehicle lookup pages (by manual vin, by license plate, by address).
This commit is contained in:
parent
bf1fb54d7a
commit
377428cc2b
1 changed files with 35 additions and 28 deletions
|
|
@ -35,6 +35,41 @@ export function getDamageString() {
|
|||
return '';
|
||||
}
|
||||
|
||||
function hasMatchingReplacementOption(vehicleDamageOptions, selectedGlassToReplace) {
|
||||
let result = true;
|
||||
const optionsMap = {
|
||||
Windshield: 'windshieldOptions',
|
||||
Driver: 'driverSideOptions',
|
||||
Passenger: 'passengerSideOptions',
|
||||
Rear: 'backGlassOptions',
|
||||
};
|
||||
|
||||
for (const glassToReplace of selectedGlassToReplace) {
|
||||
const propName = optionsMap[glassToReplace.glassLocation];
|
||||
const { availableReplacementOptions } = vehicleDamageOptions[propName];
|
||||
|
||||
if (!availableReplacementOptions.includes(glassToReplace.glassName)) {
|
||||
result = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function isGlassAvailableForCarId(carId) {
|
||||
const mainStore = useMainStore();
|
||||
|
||||
try {
|
||||
const vehicleDamageOptionsResponse = await mainStore.getDamageOptions(carId);
|
||||
const selectedGlassToReplace = mainStore.damage.glassToReplace;
|
||||
|
||||
return hasMatchingReplacementOption(vehicleDamageOptionsResponse.data, selectedGlassToReplace);
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Commented code are copied directly from DigitalConsumer.FixMyGlass
|
||||
* and have not been adjusted for ISS.
|
||||
|
|
@ -54,31 +89,3 @@ export function getDamageString() {
|
|||
// : "glass";
|
||||
// return returnString;
|
||||
// }
|
||||
|
||||
// export async function isGlassAvailableForCarId(carId) {
|
||||
// const newGlassOptions = await baseMixin.methods.dispatchStoreAction(
|
||||
// storeActions.GET_DAMAGE_OPTIONS,
|
||||
// { carId: carId }
|
||||
// );
|
||||
|
||||
// const currentGlassOptions = store.getters.damage.glassToReplace;
|
||||
|
||||
// const optionsMap = {
|
||||
// Windshield: "windshieldOptions",
|
||||
// Driver: "driverSideOptions",
|
||||
// Passenger: "passengerSideOptions",
|
||||
// Rear: "backGlassOptions",
|
||||
// };
|
||||
|
||||
// for (const option of currentGlassOptions) {
|
||||
// if (
|
||||
// !newGlassOptions.data[
|
||||
// optionsMap[option.glassLocation]
|
||||
// ].availableReplacementOptions.includes(option.glassName)
|
||||
// ) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// return true;
|
||||
// }
|
||||
|
|
|
|||
Loading…
Reference in a new issue