From c821fc7d83a9738c1e326256a4524bb841c2fc90 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Mon, 16 Feb 2026 17:11:56 -0500 Subject: [PATCH 01/11] INSR-7759: Some payment-method parity updates - Payment method question button now matches Heritage - Recalibration is now its own line item - Some other general updates to structure and formatting of page --- .../icons/chevron-circle_review_dropdown.png | Bin 0 -> 1973 bytes src/constants/progress-bar-mapper.js | 5 +- src/helpers/cart-helper.js | 15 +++ .../cart-dropdown/cart-dropdown.vue | 109 ++++++++++-------- .../payment-method-list-button.vue | 82 +++++-------- .../payment-method-question.vue | 3 +- src/layouts/payment-method/payment-method.vue | 74 +++++++++--- .../review-dropdown/review-dropdown.vue | 23 ++-- 8 files changed, 174 insertions(+), 137 deletions(-) create mode 100644 src/assets/img/icons/chevron-circle_review_dropdown.png diff --git a/src/assets/img/icons/chevron-circle_review_dropdown.png b/src/assets/img/icons/chevron-circle_review_dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..c2360997b00dfc6b1964e4222e666b6b215a7418 GIT binary patch literal 1973 zcmV;m2TJ&fP)Px+Z%IT!RA>d|TU%@tRTw_!>~blw5J+gt#XyLGC^0-}Vl=ftOi%~}>4LFJg24yE zgTCM;5n3l(AO=OFi7|Lds1G&*+lo*wAy`3_kf<-j5E5Q|0Je*$<+c=N=Jo8JSQFKH`oRU$MVrO|q=tBx7+B?`Wo3_l?y8ym(x=j@JT z>d{Z+19FsEc}m$k&n(01|_ z%L3fcmRf9@EXkN`EH{u~_4z3g7p-Y+)sMmS-CCgl&)Sxnb~`I~(y(iBo2)#Cg6B5)WZ*ba%kMO%&lEycwH&R@1t(V#JUL^F1)^Mz|W^I;D+sorpjz~zm)Px zKV#LDbIwomnwpjAca~i#7Dv$`jh-C|U;z*vf>;rAXuuf8!@Xzi;1Fy6)w8o5(hhTSh67-L~$~_NX|^bW6QlhSuVg>RAjUA93dDEpPq6W zvcIN=KddfJTs?>t)F=RphMJVe;%GES4>xGti%i|?Q3sG51YE#KEm<2 z!dEdB05`ODExdob9#>oyWXQ%Gww#LsV9CrkD(JPUrtR3QcNm!pX~>I_Z{Dj4)8-sW zgczTJ%t@|?DJ?Tm~R#IBkcLT20^`l`Ew&6q7^@>H+vD3gRXl&23 zGyTfaGVhAr5HZPf;1Fs1pq$}dI(tDqJv4KR}rngi^I z8Cq(lYCN4x^hnNMWb_$OWhK*O1GZpOtqb3Xfo5M<463f323BDmf7rPJ%Cym*bJt+U zXKOtTs(L1w=%$`oOMF9>l|UP?0b6Pv_=Io7pvrt{I_eSDS&y%#hk}%Ivqttfa$c&m zFPZpOaIu~m(^O@?w6&KN>tRFHg)jJ|o}H`80?~A?MLnE9*a}p`sYEm1BW5;xY^HW( zic`WEO)_885Zb`VfhrrC<`Q*KSJiZVTZ(ch*U+Z-(KGMnNPpOyv zHzu5I%IP|Tflb(k52qvqMOZOul?@oKkukiY|J{>27j_1d*_zl%OTx`g?mY^!O#A8& z?{RV^*n&;iR%M}R!iq^N9jdZtCD}yF)bD3&z2j9e4b|;5WL*gcn%t6*srs-1Thx?I zsw^~3Sh4UpAKHLNMVeHexn*4Kny>xgIt-_8Y8!o{cND5onI@=r3v|AKy08ITs;nFu zSh4Vk6tESLWJ~`t&h1&G^|}tnGwq4Dxey=Y4`meq>Yy%-yrrtFTpCzux758v*Nvm) z8uO}8@8;g7N1I#rzQ6-5Le}h&v6E-JI_aHV<7KaGo)AmuvlKrS<@(ni6aqhaHnm&R zr0?esI?$~YSYX6u8G+j}H07VM2O4FW-ov$@8L2M_2<`H`AINe#){@j)sZ1^~0;|>X zG`73Sv{$q`fnHzV+C|@E?*}sIcuS+<4r0s=HM$xU$quJzY;t3LYw9CaCC8H+Req#2 zc5lE)PhptVx9&SYt-L%^M;^wgrN0^*kGDZ|N7s||sd&{xEm9V}zX$u;SFeE4!eoMb zP?35W!WaM!=yxyT?|y)_K-#bsdKdyaSN&=9oj&kWw6raxr3yW4wS-{SP(yjNJh;ea z$Kn7?OTS*~@=m+LNG=15{p1i>9Du>V4LADNkManA`tw*EFkFCfVvZYbq0%!B(^Vvp zCL#>#=|3WJ0S42$8zK2yD38d8V)we=0W6MLS_N0PW#4Y%tyB5KobJeMUH!^XF?#m! zpfaxW(T?ZzAU)jwBUZ#*EY6~Uad#2d`9=b0#E4k^?pqcGjF!UP#oDPgi>cUAtmUdK z>p+Zt_bd@((RWw{Vcl@!atCE2d>cxwTM-(Gewv_=Bn)c5B)~BGzq%j}z?klF!;M<1 zYAZ7MMhruJdJyMOPsu%OH item.requiresRecalibration); + const recalibrationLineItems = itemsWithRecalibration.map((item) => { + return item.childParts?.find((child) => child.partType === partTypeStrings.RECALIBRATION || child.partType === partTypeStrings.ADAS_RECALIBRATION) ?? {}; + }); + + return getPriceOfLineItems(recalibrationLineItems); +} diff --git a/src/iss-components/cart-dropdown/cart-dropdown.vue b/src/iss-components/cart-dropdown/cart-dropdown.vue index fa106ffe..fe3183b9 100644 --- a/src/iss-components/cart-dropdown/cart-dropdown.vue +++ b/src/iss-components/cart-dropdown/cart-dropdown.vue @@ -1,20 +1,30 @@ @@ -128,6 +128,7 @@ import { getCartTotal, getDeductible, getLineItems, getMobileFeeLineItem, + getRecalibrationTotal, getRecycleFeeLineItem, getSalesTax, getServiceLineItems, getSubtotal, isOrderITAC, isOrderNoComp, isOrderUnverified @@ -136,7 +137,6 @@ import { getPriceOfLineItems, getTaxOfLineItems } from '@/helpers/price-calculat import { processIfStatements } from '@/helpers/cms-content-helper'; const VERIFYING_COVERAGE = 'Verifying coverage'; -const RECYCLING_MODAL_REF_NAME = 'RecycleModal'; export default { name: 'confirmation-cart', @@ -148,7 +148,6 @@ export default { props: { readOnly: Boolean, showAsPaid: Boolean, - recyclingModalCmsWidgetName: String, submittedOrder: Object }, data() { @@ -158,6 +157,7 @@ export default { amountPaid: 'AmountPaidTextWidget', deductible: 'DeductibleWidget', basePrice: 'BasePriceWidget', + recalibration: 'RecalibrationWidget', subtotal: 'SubtotalWidget', salesTax: 'SalesTaxWidget', recycleFee: 'RecycleFeeWidget', @@ -167,8 +167,7 @@ export default { warrantyText: 'WarrantyCartItemTextWidget', guaranteeText: 'GuaranteeCartItemTextWidget' }, - cartItemType, - RECYCLING_MODAL_REF_NAME + cartItemType }; }, computed: { @@ -181,9 +180,18 @@ export default { deductible() { return getDeductible(this.cartOrder); }, + isDeductibleOnly() { + return this.deductible > 0 && this.subTotal === this.deductible; + }, showDeductibleCartItem() { return this.isUnverified || (!this.isNoComp && !this.isITAC); }, + showRecalibrationCartItem() { + return this.recalibrationPrice > 0; + }, + recalibrationPrice() { + return getRecalibrationTotal(this.cartOrder); + }, lineItems() { return getLineItems(this.cartOrder); }, @@ -191,7 +199,8 @@ export default { return getRecycleFeeLineItem(this.cartOrder); }, servicePrice() { - return getPriceOfLineItems(getServiceLineItems(this.cartOrder)) ?? 0; + const price = getPriceOfLineItems(getServiceLineItems(this.cartOrder)) ?? 0; + return price - this.recalibrationPrice; }, isUnverified() { return isOrderUnverified(this.cartOrder); @@ -327,6 +336,9 @@ export default { this.getCustomValueFromString ); }, + recalibrationLabel() { + return this.getCmsContent(this.widget.recalibration, widgetFields.TEXT_BLOCK_WIDGET.TEXT); + }, subtotalLabel() { return this.getCmsContent(this.widget.subtotal, widgetFields.TEXT_BLOCK_WIDGET.TEXT); }, @@ -452,8 +464,6 @@ export default { diff --git a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue index 0f834cbc..c3601cbf 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue @@ -2,32 +2,30 @@ -
+ buttonWrapperClasses="list-group base-input-button list-button d-flex flex-column w-100 no-hover"> +
+
+ + + + {{ getInlineAltText(token) }} + + + {{ token }} + + +
-
-

- - - - {{ getInlineAltText(token) }} - - - {{ token }} - - -

-
@@ -78,48 +76,26 @@ export default { outline: none; input[type="radio"], input[type="checkbox"] { - position: static; //override bootstrap - - &:focus-visible + .list-button-content { - box-shadow: 0 0 0 2.5px $blue; - } - &:focus + .list-button-content { - box-shadow: 0 0 0 2.5px $blue; - } &:checked + .list-button-content { + background: $background-color-selected; + border-color: $heritage-blue-primary; + font-weight: 600; color: $black; - font-weight: 500; - background: $blue-100; - box-shadow: 0 0 0 1px $blue; - } - &:checked:focus + .list-button-content { - box-shadow: 0 0 0 2.5px $blue; - } - &:checked + .list-button-content p, - &:checked + .list-button-content span { - font-weight: 500; - } - &:checked + .list-button-content span:nth-child(2) { - font-weight: 400; - color: $gray-600; } } } .list-button-content { - color: $gray-600; + color: $darker-gray; + font-weight: 400; position: relative; background: $white; transition: all 150ms linear; - border-radius: $border-radius-lg; - border: 1px solid $gray-500; + border-radius: 3.75rem; + border: 1px solid #CACBCC; width: 100%; outline: none; - - span { - &.small { - font-size: $font-size-xsm; - color: $gray-550; - } - } + padding: .625rem 2rem; + height: 2.875rem; + margin-bottom: .75rem; } diff --git a/src/layouts/payment-method/payment-method-question/payment-method-question.vue b/src/layouts/payment-method/payment-method-question/payment-method-question.vue index d8376879..33d82adf 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-question.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-question.vue @@ -19,6 +19,7 @@ import buttonQuestion from '@/digital-components/button-question/button-question.vue'; import widgetFields from '@/constants/cms-widget-fields.js'; import paymentMethodListButton from './payment-method-list-button/payment-method-list-button.vue'; +import { markRaw } from 'vue'; export default { name: 'payment-method-question', @@ -33,7 +34,7 @@ export default { emits: ['update:modelValue'], data() { return { - paymentMethodListButton + paymentMethodListButton: markRaw(paymentMethodListButton) }; }, computed: { diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index ba1f761b..8b675e33 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -12,21 +12,24 @@
+ + class="subheader" + cmsWidgetName="SiteSubHeaderWidget" />
-
+
-
+
+ -
+
$page-side-padding: 1.5rem; -.iss-heritage-container-width { +#app .iss-heritage-container-width { + .iss-heritage-content-container-width { + @include media-breakpoint-up(md) { + width: 58.33333333%; + } + } .payment-method-container { position: relative; min-height: 1px; padding-left: .9375rem; padding-right: .9375rem; + + .alert-warning { + margin-top: 1.25rem; + margin-bottom: 0rem; + } + + .subheader { + margin-top: 1.25rem; + + :deep(strong) { + color: $black; + font-weight: 600; + } + + :deep(.subheader-secondary) { + margin-top: .625rem; + + p { + margin-bottom: 0; + } + } + } + + .section-divider { + margin-top: 1.5rem; + margin-bottom: 1.875rem; + } + + .pia-divider { + margin-top: .5rem; + margin-bottom: .75rem; + } } } - -.main-content-container { - padding: 0; -} - -.page-container-grouped-styles { - overflow: auto; -} diff --git a/src/layouts/payment-method/review-dropdown/review-dropdown.vue b/src/layouts/payment-method/review-dropdown/review-dropdown.vue index d1504da4..d48b55f3 100644 --- a/src/layouts/payment-method/review-dropdown/review-dropdown.vue +++ b/src/layouts/payment-method/review-dropdown/review-dropdown.vue @@ -1,7 +1,7 @@
- - -
-
- {{ item?.name ?? '' }} - {{ formatAmountInDollars(item?.subTotal ?? 0) }} -
- - - -
+
+ +
@@ -111,6 +126,8 @@ import { formatAmountInDollars } from '@/helpers/text-helper'; import widgetFields from '@/constants/cms-widget-fields'; import errorMessages from '@/constants/error-messages'; import { required } from '@/helpers/validation-rules'; +import textboxQuestion from '@/digital-components/textbox-question/textbox-question.vue'; +import MaskaFormattedMasks from '@/constants/maska-masks'; defineRule('option-required', required(errorMessages.PAYMENT_METHOD_PAGE_OPTION_REQUIRED)); @@ -126,7 +143,8 @@ export default { paymentMethodQuestion, alert, textBlock, - buttonQuestion + buttonQuestion, + textboxQuestion }, mixins: [baseFormMixin], async beforeRouteEnter(to, from, next) { @@ -159,13 +177,16 @@ export default { amountDue: 'AmountDueCartHeaderTextWidget', payAtAppointment: 'PayAtAppointmentTextWidget', smsOptInHeader: 'SMSOptInHeaderWidget', - smsOptInQuestion: 'SMSOptInQuestionWidget' + smsOptInQuestion: 'SMSOptInQuestionWidget', + smsPhoneNumber: 'SMSPhoneNumberWidget', + smsDisclaimer: 'SMSDisclaimerWidget' }, rules: { - optionRequired: globalRules.OPTION_REQUIRED + optionRequired: globalRules.OPTION_REQUIRED, + phoneNumber: `${globalRules.PHONE_NUMBER_REQUIRED}|${globalRules.PHONE_NUMBER_FORMAT}` }, smsOptIn: null, - smsPhoneNumber: this.mainStore.contactInfo?.alternativePhone + smsPhoneNumber: this.getSMSPhoneFromStore() }; }, computed: { @@ -192,8 +213,8 @@ export default { return supportsApplePay() ? this.widget.paymentMethodApplePay : this.widget.paymentMethod; }, showCartTotal() { - return this.mainStore.isITAC || this.mainStore.isNoComp - || this.mainStore.order.lineItems?.vaps?.length > 0; + return this.mainStore.isVerified && (this.mainStore.isITAC || this.mainStore.isNoComp + || this.mainStore.order.lineItems?.vaps?.length > 0); }, cartHeaderText() { if (this.isPayInAdvanceDisabled) { @@ -225,6 +246,9 @@ export default { }, smsOptinQuestionAnswers() { return this.getCmsContent(this.widget.smsOptInQuestion, widgetFields.INPUT_QUESTION_WIDGET.ANSWERS) || []; + }, + phoneMask() { + return MaskaFormattedMasks.PHONE_NUMBER; } }, watch: { @@ -327,11 +351,11 @@ export default { this.$refs.siteFooter.updateButtonText(newValue); }, async forwardButtonAction() { - useMainStore().savePaymentMethodChoice(this.paymentMethod); - if (this.smsOptIn !== null) { - useMainStore().updateContactInfo({ - requestTextUpdates: this.smsOptIn === 'Yes' - }); + this.mainStore.savePaymentMethodChoice(this.paymentMethod); + const requestTextUpdates = this.smsOptIn === 'Yes'; + this.mainStore.updateContactInfo({ requestTextUpdates }); + if (requestTextUpdates) { + this.mainStore.updatePhoneNumbers({ alternative: this.smsPhoneNumber, service: this.smsPhoneNumber }); } if (this.paymentMethod === paymentMethods.PAY_AT_TIME_OF_SERVICE) { try { @@ -371,6 +395,9 @@ export default { scenario, this.$route ); + }, + getSMSPhoneFromStore() { + return useMainStore().contactInfo.servicePhone; } } }; @@ -408,6 +435,7 @@ $page-side-padding: 1.5rem; p { margin-bottom: 0; + color: #4d4e53; } } } @@ -425,8 +453,7 @@ $page-side-padding: 1.5rem; .cart-label { color: $black; - font-weight: 600; - line-height: 1.625rem; + font-weight: $font-weight-bold; } .cart-value { @@ -444,6 +471,49 @@ $page-side-padding: 1.5rem; margin-top: .5rem; margin-bottom: 1.25rem; } + + .sms-divider { + margin-top: 1.75rem; + margin-bottom: 1.875rem; + } + + .sms-opt-in-section { + margin-bottom: 1.875rem; + } + + .sms-opt-in-header { + color: $black; + font-weight: $font-weight-bold; + margin-bottom: 1.125rem; + } + + .sms-opt-in-question { + margin-bottom: 1.25rem; + + :deep(.question-text) { + margin-bottom: .625rem; + } + } + + .disclaimer { + margin-bottom: 1.875rem; + font-weight: $font-weight-light; + font-size: .8125rem; + line-height: 1.54; + color: #4d4e53; + + :deep(a) { + color: $heritage-blue-primary; + text-decoration: none; + font-weight: $font-weight-bold; + + &:hover, + &:focus { + color: $heritage-blue-secondary; + text-decoration: underline; + } + } + } } } From 4e996145c3841825cb51d2abe164ad06a5d48dd4 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Wed, 18 Feb 2026 16:22:35 -0500 Subject: [PATCH 05/11] INSR-7759: Update review sections, move contact details drawer --- src/constants/error-messages.js | 4 +- .../contact-details-drawer.spec.js.snap | 0 .../contact-details-drawer.spec.js | 2 +- .../contact-details-drawer.vue | 0 .../payment-method-list-button.vue | 17 +- src/layouts/payment-method/payment-method.vue | 46 +- .../review-block/review-block.vue | 55 +- .../review-dropdown/review-dropdown.vue | 94 +- .../customer-review/customer-review.vue | 21 +- .../damage-review/damage-review.spec.js | 80 -- .../damage-review/damage-review.vue | 47 - .../schedule-review/schedule-review.vue | 9 +- .../service-location-review.vue | 14 +- .../service-package-review.spec.js | 965 ------------------ .../service-package-review.vue | 100 -- .../vehicle-review/vehicle-review.vue | 38 +- src/layouts/tpa-submit/tpa-submit.vue | 2 +- .../router-constants/navigation-scenarios.js | 3 + src/router/router-constants/routing-table.js | 16 + src/styles/ux-variables.scss | 3 + 20 files changed, 219 insertions(+), 1297 deletions(-) rename src/{layouts/tpa-submit => iss-components}/contact-details-drawer/__snapshots__/contact-details-drawer.spec.js.snap (100%) rename src/{layouts/tpa-submit => iss-components}/contact-details-drawer/contact-details-drawer.spec.js (98%) rename src/{layouts/tpa-submit => iss-components}/contact-details-drawer/contact-details-drawer.vue (100%) delete mode 100644 src/layouts/payment-method/review-dropdown/review-sections/damage-review/damage-review.spec.js delete mode 100644 src/layouts/payment-method/review-dropdown/review-sections/damage-review/damage-review.vue delete mode 100644 src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.spec.js delete mode 100644 src/layouts/payment-method/review-dropdown/review-sections/service-package-review/service-package-review.vue diff --git a/src/constants/error-messages.js b/src/constants/error-messages.js index 66aa697a..62e79340 100644 --- a/src/constants/error-messages.js +++ b/src/constants/error-messages.js @@ -70,9 +70,7 @@ const errorMessages = Object.freeze({ TPA_SEARCH_SHOP_FORMAT: 'Please enter a valid shop name.', TPA_SEARCH_REQUIRED: 'Please enter a shop name or ZIP code.', SERVICE_ADDRESS_REQUIRED: 'Service street address is required.', - SERVICE_CITY_REQUIRED: 'Service city is required.', - - PAYMENT_METHOD_PAGE_OPTION_REQUIRED: 'Please select an Option', + SERVICE_CITY_REQUIRED: 'Service city is required.' }); export default errorMessages; diff --git a/src/layouts/tpa-submit/contact-details-drawer/__snapshots__/contact-details-drawer.spec.js.snap b/src/iss-components/contact-details-drawer/__snapshots__/contact-details-drawer.spec.js.snap similarity index 100% rename from src/layouts/tpa-submit/contact-details-drawer/__snapshots__/contact-details-drawer.spec.js.snap rename to src/iss-components/contact-details-drawer/__snapshots__/contact-details-drawer.spec.js.snap diff --git a/src/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.spec.js b/src/iss-components/contact-details-drawer/contact-details-drawer.spec.js similarity index 98% rename from src/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.spec.js rename to src/iss-components/contact-details-drawer/contact-details-drawer.spec.js index 04fe6ce6..dd30a043 100644 --- a/src/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.spec.js +++ b/src/iss-components/contact-details-drawer/contact-details-drawer.spec.js @@ -1,7 +1,7 @@ // Components import { shallowMount } from '@vue/test-utils'; import { createTestingPinia } from '@pinia/testing'; -import contactDetailsDrawer from '@/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.vue'; +import contactDetailsDrawer from '@/iss-components/contact-details-drawer/contact-details-drawer.vue'; // Supporting Files import { getMountOptions } from '@/helpers/unit-test-helper.js'; diff --git a/src/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.vue b/src/iss-components/contact-details-drawer/contact-details-drawer.vue similarity index 100% rename from src/layouts/tpa-submit/contact-details-drawer/contact-details-drawer.vue rename to src/iss-components/contact-details-drawer/contact-details-drawer.vue diff --git a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue index c3601cbf..6bd161eb 100644 --- a/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue +++ b/src/layouts/payment-method/payment-method-question/payment-method-list-button/payment-method-list-button.vue @@ -2,7 +2,7 @@ + buttonWrapperClasses="list-group base-input-button list-button payment-method d-flex flex-column w-100 no-hover">
diff --git a/src/layouts/payment-method/payment-method.vue b/src/layouts/payment-method/payment-method.vue index 73079f0b..ea76e31b 100644 --- a/src/layouts/payment-method/payment-method.vue +++ b/src/layouts/payment-method/payment-method.vue @@ -21,8 +21,10 @@ cmsWidgetName="SiteSubHeaderWidget" />

- -
+
{{ cartHeaderText }} {{ cartTotal }} @@ -104,6 +106,7 @@ import paymentMethodQuestion from '@/layouts/payment-method/payment-method-quest import alert from '@/ux-components/alert/alert.vue'; import textBlock from '@/digital-components/text-block/text-block.vue'; import buttonQuestion from '@/digital-components/button-question/button-question.vue'; +import textboxQuestion from '@/digital-components/textbox-question/textbox-question.vue'; // Supporting Items import settleAllPromises from '@/helpers/layout-helper'; @@ -112,7 +115,7 @@ import { fetchCmsContentForPage } from '@/helpers/cms-content-helper'; import { paymentMethods } from '@/constants/payment-method-constants'; import queryStrings from '@/constants/query-strings'; import globalRules from '@/constants/global-rules'; -import { defineRule, Form } from 'vee-validate'; +import { Form } from 'vee-validate'; import issPageValues from '@/router/router-constants/issPage-values'; import bailoutMessage from '@/constants/bailoutMessage'; import { AppointmentTypeStrings } from '@/constants/schedule-constants'; @@ -124,13 +127,8 @@ import { supportsApplePay } from '@/helpers/browser-helper'; import { getCartTotal } from '@/helpers/cart-helper'; import { formatAmountInDollars } from '@/helpers/text-helper'; import widgetFields from '@/constants/cms-widget-fields'; -import errorMessages from '@/constants/error-messages'; -import { required } from '@/helpers/validation-rules'; -import textboxQuestion from '@/digital-components/textbox-question/textbox-question.vue'; import MaskaFormattedMasks from '@/constants/maska-masks'; -defineRule('option-required', required(errorMessages.PAYMENT_METHOD_PAGE_OPTION_REQUIRED)); - export default { name: 'payment-method', components: { @@ -391,13 +389,43 @@ export default { const scenario = this.mainStore.isMobileAppointment ? this.navigationScenarios.CLICKED_BACK_MOBILE : this.navigationScenarios.CLICKED_BACK_INSHOP; - this.$router.navigate( + this.$router.navigateWithSpinner( scenario, this.$route ); }, getSMSPhoneFromStore() { return useMainStore().contactInfo.servicePhone; + }, + handleEditClicked(section) { + switch (section) { + case 'location': + this.$router.navigateWithSpinner( + this.navigationScenarios.EDIT_SERVICE_LOCATION, + this.$route + ); + break; + case 'schedule': + this.$router.navigateWithSpinner( + this.navigationScenarios.EDIT_SCHEDULE, + this.$route + ); + break; + case 'vehicle': + this.$router.navigateWithSpinner( + this.navigationScenarios.EDIT_VEHICLE, + this.$route + ); + break; + case 'customer': + break; + case 'wipers': + this.$router.navigateWithSpinner( + this.navigationScenarios.EDIT_WIPERS, + this.$route + ); + break; + } } } }; diff --git a/src/layouts/payment-method/review-dropdown/review-block/review-block.vue b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue index 2b7cf661..1ed4ddda 100644 --- a/src/layouts/payment-method/review-dropdown/review-block/review-block.vue +++ b/src/layouts/payment-method/review-dropdown/review-block/review-block.vue @@ -1,34 +1,55 @@ diff --git a/src/layouts/payment-method/review-dropdown/review-sections/schedule-review/schedule-review.vue b/src/layouts/payment-method/review-dropdown/review-sections/schedule-review/schedule-review.vue index e0c615df..3b0a5fee 100644 --- a/src/layouts/payment-method/review-dropdown/review-sections/schedule-review/schedule-review.vue +++ b/src/layouts/payment-method/review-dropdown/review-sections/schedule-review/schedule-review.vue @@ -1,7 +1,8 @@ diff --git a/src/layouts/payment-method/review-dropdown/review-sections/vehicle-review/vehicle-review.vue b/src/layouts/payment-method/review-dropdown/review-sections/vehicle-review/vehicle-review.vue index 56bee25e..b0500009 100644 --- a/src/layouts/payment-method/review-dropdown/review-sections/vehicle-review/vehicle-review.vue +++ b/src/layouts/payment-method/review-dropdown/review-sections/vehicle-review/vehicle-review.vue @@ -1,10 +1,13 @@