Merge pull request #2711 from Safelite/CASH-1042-header-and-progress-bar-style-updates

Cash 1042 header and progress bar style updates
This commit is contained in:
bmauger 2025-07-29 19:41:03 -04:00 committed by GitHub
commit fedd43f54e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 131 additions and 57 deletions

View file

@ -1,35 +1,35 @@
export const pageProgressMapper = { export const pageProgressMapper = {
//Combine progress bar slide percent and button steps //Combine progress bar slide percent and button steps
vehicle: { vehicle: {
percent: 7,
step: 1,
},
"vehicle-damage": {
percent: 10, percent: 10,
step: 1, step: 1,
}, },
estimate: { "vehicle-damage": {
percent: 14, percent: 14,
step: 1, step: 1,
}, },
"service-zip": { estimate: {
percent: 18, percent: 18,
step: 1, step: 1,
}, },
"service-zip": {
percent: 22,
step: 1,
},
"vin-lookup": { "vin-lookup": {
percent: 18, percent: 22,
step: 1, step: 1,
}, },
"license-plate-lookup": { "license-plate-lookup": {
percent: 18, percent: 22,
step: 1, step: 1,
}, },
"address-lookup": { "address-lookup": {
percent: 18, percent: 22,
step: 1, step: 1,
}, },
"address-vehicles": { "address-vehicles": {
percent: 25, percent: 26,
step: 1, step: 1,
}, },
"part-questions": { "part-questions": {
@ -49,7 +49,7 @@ export const pageProgressMapper = {
step: 1, step: 1,
}, },
quote: { quote: {
percent: 39, //Must be 39 percent: 39, //The first Step 2 must be 39 so the animated bar lines up with the dot
step: 2, step: 2,
}, },
"insurance-company": { "insurance-company": {
@ -61,7 +61,7 @@ export const pageProgressMapper = {
step: 2, step: 2,
}, },
schedule: { schedule: {
percent: 70.5, //Must be 70.5 percent: 70.5, //The first Step 3 must be 70.5 so the animated bar lines up with the dot
step: 3, step: 3,
}, },
"mobile-details": { "mobile-details": {
@ -73,7 +73,7 @@ export const pageProgressMapper = {
step: 3, step: 3,
}, },
"payment-method": { "payment-method": {
percent: 92, //Must be 92 percent: 92, //The first Step 4 must be 92 so the animated bar lines up with the dot
step: 3, step: 3,
}, },
payment: { payment: {

View file

@ -317,10 +317,18 @@ export default {
} }
} }
.custom-secondary { .custom-secondary {
&:hover { border-radius: 0.5rem;
color: $blue;
border: 1px solid $blue;
&:hover,
&:focus,
&:active {
color: $blue; color: $blue;
background: transparent; background: transparent;
border: 1px solid $blue; border: 1px solid $blue;
box-shadow:
0 0 0 3px #ffffff,
0 0 0 5.5px $blue;
} }
} }
} }

View file

@ -19,10 +19,10 @@
v-if="showThisQuestionChain(questionsDatum, i)" v-if="showThisQuestionChain(questionsDatum, i)"
:answerKey="questionsDatum.answerKey" :answerKey="questionsDatum.answerKey"
:validationRules="validationRules" /> :validationRules="validationRules" />
<!-- Save your progress slot -->
<slot></slot>
</div> </div>
<slot></slot>
<navbar <navbar
ref="navbar" ref="navbar"
cmsWidgetName="FunnelFooterWidget" cmsWidgetName="FunnelFooterWidget"
@ -88,6 +88,12 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.nav-bar {
margin-top: 1rem;
}
.save-progress-modal-question {
margin: 2rem 0;
}
.questions-page { .questions-page {
.question-text { .question-text {
margin-bottom: 1.5rem; margin-bottom: 1.5rem;

View file

@ -28,7 +28,7 @@
<div <div
v-if="!isBackButtonHidden" v-if="!isBackButtonHidden"
class="col-auto link-col py-1 text-break" class="col-auto link-col py-1 text-break"
:class="[buttonSize ? 'back-centered-below mt-5' : '']"> :class="[buttonSize ? 'mt-5' : '']">
<textLink <textLink
linkType="navigation" linkType="navigation"
:text="backLink" :text="backLink"
@ -134,11 +134,6 @@ export default {
width: 100%; width: 100%;
} }
.back-centered-below {
display: flex;
justify-content: center;
}
@media only screen and (min-width: 340px) { @media only screen and (min-width: 340px) {
.col, .col,
.col-auto, .col-auto,
@ -147,11 +142,6 @@ export default {
justify-content: flex-end; justify-content: flex-end;
} }
.back-centered-below {
display: flex;
justify-content: center;
}
.btn-primary { .btn-primary {
width: auto; width: auto;
} }

View file

@ -1,15 +1,13 @@
<template> <template>
<Form @submit="onSubmit" @invalid-submit="onInvalidSubmit" ref="theForm"> <Form @submit="onSubmit" @invalid-submit="onInvalidSubmit" ref="theForm">
<div class="page-container-grouped-styles position-relative"> <loadingModal notFullScreen ref="loadingModal" />
<div> <funnelHeader cmsWidgetName="FunnelHeaderWidget" ref="funnelHeader" />
<div class="container-fluid pb-2"> <div class="container page-container-grouped-styles">
<div class="row justify-content-center"> <div class="row">
<div class="col-md-6"> <div class="col-12 col-md-10 col-lg-8 col-xl-7">
<funnelHeader <div class="header-container">
cmsWidgetName="FunnelHeaderWidget" <img :src="ScheduleConfirmationImage" />
ref="funnelHeader" <span v-html="ScheduleConfirmationText"></span>
hideSalesforceWebchatLaunchButton />
</div>
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-md-6 col-xl-4"> <div class="col-md-6 col-xl-4">
@ -85,7 +83,63 @@
<hr class="mb-5" /> <hr class="mb-5" />
</div> </div>
<addToCalendar
mobileWidgetName="AddToCalendar_Mobile"
inShopWidgetName="AddToCalendar_InShop"
dropOffWidgetName="AddToCalendar_DropOff"
overnightDropOffWidgetName="AddToCalendar_OvernightDropOff"
allDayDropOffWidgetName="AddToCalendar_AllDayDropOff"
sameDayDropOffWidgetName="AddToCalendar_SameDayDropOff"
:serviceLocationFullAddress="ServiceLocationFullAddress"
:providerFullAddress="ProviderFullAddress"
:appointmentType="AppointmentType"
:scheduleDate="ScheduleDate"
:scheduleStartTime="ScheduleStartTime"
:scheduleEndTime="ScheduleEndTime" />
<div class="appointment-text" v-html="AppointmentWordingText"></div>
<textBlock
:customText="AppointmentDuration"
justifyText="center"
typeStyle="medium"
class="duration-text-block" />
</div> </div>
<div class="mt-3" v-if="shouldDisplayFosterLove">
<donationBlock
cmsWidgetName="DonationWidget"
v-model="donationAmount"
:donationValues="donationValues"
:showDonationSuccess="showDonationSuccess"
:showDonationError="showDonationError"
@DonationAddedEvent="addDonationToOrder"
ref="donationBlock" />
</div>
<hr class="mt-5 mb-0" />
<cart
v-if="ShowCart"
:damage="damageInfo"
:availableVaps="vaps"
:allowItemRemoval="false"
v-model="lineItemsWithoutDonation"
:donationCartItem="donationLineItem"
:showAsPaid="isPia"
servicePackageOptionsCmsName="ServicePackageTitle"
:isInsurance="isInsurance"
:insuranceDeductible="currentDeductible"
:insuranceCompanyName="insuranceCompanyName"
:showInsuranceCoverageAs="showInsuranceCoverageAs"
:shouldHideRecalibration="shouldHideRecalibration"
:isExpandedOnLoad="false"
:isItac="isItac"
:isNoComp="isNoComp"
:isMSRFeeApplicable="isMSRFeeApplicable" />
<hr class="mt-4 mb-5" />
</div> </div>
</div> </div>
</div> </div>
@ -94,7 +148,6 @@
<script> <script>
// Components // Components
import funnelHeader from "@/fmg-components/funnel-header/funnel-header"; import funnelHeader from "@/fmg-components/funnel-header/funnel-header";
import navbar from "@/fmg-components/nav-bar/nav-bar";
import addToCalendar from "@/layouts/confirmation/add-to-calendar/add-to-calendar"; import addToCalendar from "@/layouts/confirmation/add-to-calendar/add-to-calendar";
import cart from "@/fmg-components/cart/cart"; import cart from "@/fmg-components/cart/cart";
import textBlock from "@/digital-components/text-block/text-block"; import textBlock from "@/digital-components/text-block/text-block";
@ -620,7 +673,8 @@ export default {
.header-container { .header-container {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 1rem 0; justify-content: flex-start;
padding: 1.5rem 0 0.5rem 0;
p { p {
display: inline-block; display: inline-block;

View file

@ -51,7 +51,7 @@
@ForwardClicked="forwardButtonAction" /> @ForwardClicked="forwardButtonAction" />
<textBlock <textBlock
class="mb-5 disclaimer-block" class="mb-5"
cmsWidgetName="DisclaimerCopyWidget" cmsWidgetName="DisclaimerCopyWidget"
typeStyle="caption" /> typeStyle="caption" />
</div> </div>
@ -215,10 +215,3 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.disclaimer-block {
position: relative;
z-index: 2;
}
</style>

View file

@ -1,15 +1,15 @@
<template> <template>
<Form @submit="onSubmit" @invalid-submit="onInvalidSubmit" ref="theForm" v-slot="{ meta }"> <Form @submit="onSubmit" @invalid-submit="onInvalidSubmit" ref="theForm" v-slot="{ meta }">
<loadingModal ref="loadingModal" /> <loadingModal ref="loadingModal" />
<div class="container-fluid page-container-grouped-styles"> <funnelHeader cmsWidgetName="FunnelHeaderWidget" ref="funnelHeader" />
<div class="row justify-content-center"> <div class="container position-relative">
<div class="col-md-6"> <div class="row">
<funnelHeader cmsWidgetName="FunnelHeaderWidget" ref="funnelHeader" /> <div class="col-12 col-md-10 col-lg-8 col-xl-7">
</div>
</div>
<div class="row justify-content-center">
<div class="col-md-6 col-xl-4 mt-4">
<funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" /> <funnelSubHeader cmsWidgetName="FunnelSubHeaderWidget" />
<hr class="my-3" />
<textBlock cmsWidgetName="AppointmentTimeOfService" class="time-header" />
<textBlock cmsWidgetName="AppointmentDateAndTime" />
<hr class="my-3" />
<div class="mobile-location-questions"> <div class="mobile-location-questions">
<div class="address-questions-container"> <div class="address-questions-container">
<mobileAddressQuestions <mobileAddressQuestions
@ -150,8 +150,11 @@ export default {
}, },
}, },
computed: { computed: {
headerText() { AppointmentDateAndTime() {
return this.getCmsContent("MobileLocationModalWidget", "HeaderText"); return this.getCmsContent("AppointmentDateAndTime", "Text");
},
AppointmentTimeOfService() {
return this.getCmsContent("AppointmentDateAndTime", "Text");
}, },
}, },
components: { components: {
@ -166,3 +169,11 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.time-header {
font-family: UrbanistSemibold, Arial, Helvetica, sans-serif;
font-weight: 600;
color: $black;
}
</style>

View file

@ -927,6 +927,9 @@ export default {
} }
.funnel-sub-header { .funnel-sub-header {
:deep(h5) {
text-align: center;
}
p { p {
font-size: 1rem; font-size: 1rem;
} }

View file

@ -117,4 +117,10 @@ export default {
margin-top: 14rem; margin-top: 14rem;
} }
} }
:deep(.menu-modal-container) {
display: none;
}
:deep(.progress-bar-outer) {
opacity: 0;
}
</style> </style>

View file

@ -57,6 +57,9 @@ export default {
font-size: 0.875rem; font-size: 0.875rem;
} }
.vin-toggle { .vin-toggle {
display: inline-flex;
justify-content: center;
align-items: center;
&:after { &:after {
content: ""; content: "";
transition: all 0.5s ease; transition: all 0.5s ease;