From 0b35fe5872626961f64e7b93ff9ce27dba5b98f8 Mon Sep 17 00:00:00 2001 From: Leah Schumann Date: Fri, 26 May 2023 07:01:05 -0400 Subject: [PATCH] Added property to loader to allow it not to block the UI --- .../button-question/button-question.vue | 4 +++- .../shop-list-button/shop-list-button.vue | 19 +++++++++++-------- .../shop-question/shop-question.vue | 10 ++++------ src/ux-components/loader/loader.vue | 10 +++++++++- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index a344286ef..e8be5b145 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -256,7 +256,9 @@ export default { }, watch: { modelValue(newValue, oldValue) { - this.resetField(); + this.resetField({ + value: newValue + }); }, answers() { //once we get the answers to display from parent, see if we need a GA event to log what we showed diff --git a/src/layouts/service-location/shop-question/shop-list-button/shop-list-button.vue b/src/layouts/service-location/shop-question/shop-list-button/shop-list-button.vue index f2c139c67..b430f3af7 100644 --- a/src/layouts/service-location/shop-question/shop-list-button/shop-list-button.vue +++ b/src/layouts/service-location/shop-question/shop-list-button/shop-list-button.vue @@ -23,7 +23,7 @@ }} + :class="[this.loaderColor, this.loaderPosition, this.blockUi]" />
@@ -52,7 +52,7 @@ export default { props: { loaderColor: String, }, - mounted() { + async beforeMount() { this.displayLoader(); this.additionalButtonData.availabilityRatingCallback(this.modelValue).then((data) => { this.availabilityRating = data; @@ -66,6 +66,7 @@ export default { availabilityRating: "None", availabilityRatingClass: "", loaderPosition: "left", + blockUi: "no-block" }; }, methods: { @@ -123,10 +124,10 @@ export default { &:checked + .list-button-content span { font-weight: 500; } - &:checked + .list-button-content span:nth-child(2) { - font-weight: 400; - color: $gray-600; - } + // &:checked + .list-button-content span:nth-child(2) { + // font-weight: 400; + // color: $gray-600; + // } } } .list-button-content { @@ -186,8 +187,8 @@ export default { .loader { padding: 0 0.25rem 0 0.25rem; - - //position: absolute; + padding-top: 0.125rem; + padding-bottom: 0.125rem; } .loader:after { @@ -209,6 +210,8 @@ export default { &.gray { color: $gray-600 !important; background-color: $gray-100; + padding-left: 0.125rem; + padding-right: 0.125rem; } } } diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index caec4659a..0bb9e4237 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -208,26 +208,24 @@ export default { }, watch: { selectedAppointmentType: { - async handler(newValue) { + async handler(newValue) { this.resetAnswers(); await nextTick(); - + this.selectedProviderNumber = null; - this.$refs.buttonQuestion?.resetField(); - await nextTick(); if (newValue !== "Mobile") { - await this.getNextShopsFromList(); + this.getNextShopsFromList(); } }, }, shopProviders: { async handler(newValue) { await nextTick(); - + if (this.selectedAppointmentType) { const selectedShopIndex = this.getSelectedProviderIndex( newValue, diff --git a/src/ux-components/loader/loader.vue b/src/ux-components/loader/loader.vue index daea9c511..d890fdbfe 100644 --- a/src/ux-components/loader/loader.vue +++ b/src/ux-components/loader/loader.vue @@ -3,7 +3,7 @@ class="loader" role="alert" aria-label="Loading new page" - v-bind:class="[this.loaderColor, this.loaderPosition]">
+ v-bind:class="[this.loaderColor, this.loaderPosition, this.blockUi]"> @@ -82,5 +86,9 @@ export default { &.black:after { background-color: $black; } + + &.no-block::before { + z-index: -1; + } }