commit
572342e827
1 changed files with 62 additions and 37 deletions
|
|
@ -31,6 +31,10 @@
|
||||||
:isRequired="false"
|
:isRequired="false"
|
||||||
:validationRules="''" />
|
:validationRules="''" />
|
||||||
</form>
|
</form>
|
||||||
|
<div v-show="isLoading" class="loader-wrapper">
|
||||||
|
<loader loaderColor="blue" loaderPosition="center" />
|
||||||
|
</div>
|
||||||
|
<div v-show="!isLoading">
|
||||||
<alert
|
<alert
|
||||||
ref="alertInvalidZip"
|
ref="alertInvalidZip"
|
||||||
v-if="displayInvalidZipAlert"
|
v-if="displayInvalidZipAlert"
|
||||||
|
|
@ -70,6 +74,7 @@
|
||||||
:aria-label="showMoreShopsLinkText" />
|
:aria-label="showMoreShopsLinkText" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</modal>
|
</modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -87,6 +92,7 @@ import { defineRule } from "vee-validate";
|
||||||
import { required } from "@/helpers/validation-rules";
|
import { required } from "@/helpers/validation-rules";
|
||||||
import { errorMessages } from "@/constants/error-messages";
|
import { errorMessages } from "@/constants/error-messages";
|
||||||
import baseMixin from "@/mixins/base-mixin.js";
|
import baseMixin from "@/mixins/base-mixin.js";
|
||||||
|
import loader from "@/ux-components/loader/loader";
|
||||||
|
|
||||||
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
|
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
|
||||||
|
|
||||||
|
|
@ -109,6 +115,7 @@ export default {
|
||||||
localShopProviderData: this.shopProviderDataFromParent,
|
localShopProviderData: this.shopProviderDataFromParent,
|
||||||
localSelectedProviderNumber: null,
|
localSelectedProviderNumber: null,
|
||||||
zipCodeData: null,
|
zipCodeData: null,
|
||||||
|
isLoading: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
|
@ -160,6 +167,7 @@ export default {
|
||||||
},
|
},
|
||||||
isModalFooterButtonDisabled() {
|
isModalFooterButtonDisabled() {
|
||||||
return (
|
return (
|
||||||
|
this.isLoading ||
|
||||||
this.displayInvalidZipAlert ||
|
this.displayInvalidZipAlert ||
|
||||||
this.displayNoShopsAlert ||
|
this.displayNoShopsAlert ||
|
||||||
!this.localSelectedProviderNumber
|
!this.localSelectedProviderNumber
|
||||||
|
|
@ -250,6 +258,13 @@ export default {
|
||||||
},
|
},
|
||||||
async onSearchZip(event) {
|
async onSearchZip(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
if (!this.localZipCode) {
|
||||||
|
this.zipCodeData = {
|
||||||
|
isValid: false,
|
||||||
|
};
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.isLoading = true;
|
||||||
this.zipCodeData = await this.getZipCodeData(this.localZipCode, "service-location");
|
this.zipCodeData = await this.getZipCodeData(this.localZipCode, "service-location");
|
||||||
// Add zipCode to zipCodeData as it does not come back from endpoint
|
// Add zipCode to zipCodeData as it does not come back from endpoint
|
||||||
this.zipCodeData.zipCode = this.localZipCode;
|
this.zipCodeData.zipCode = this.localZipCode;
|
||||||
|
|
@ -271,8 +286,11 @@ export default {
|
||||||
this.localShopProviderData = result.data;
|
this.localShopProviderData = result.data;
|
||||||
this.numberOfShopsToDisplay = 3;
|
this.numberOfShopsToDisplay = 3;
|
||||||
this.updateShopsForZip();
|
this.updateShopsForZip();
|
||||||
|
this.isLoading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
this.isLoading = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateShopsForZip() {
|
updateShopsForZip() {
|
||||||
|
|
@ -317,6 +335,7 @@ export default {
|
||||||
serviceZipQuestion,
|
serviceZipQuestion,
|
||||||
buttonQuestion,
|
buttonQuestion,
|
||||||
alert,
|
alert,
|
||||||
|
loader,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -444,4 +463,10 @@ export default {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
.loader-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue