From c557680038f9f5a669d41204291df8222d823fed Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Tue, 1 Jul 2025 14:46:57 -0400 Subject: [PATCH 01/11] CASH-845: save old and new versions of pages together --- .../date-picker/date-picker.vue | 1351 +++++++++++++++++ src/layouts/schedule/schedule.vue | 794 ++++++++++ .../service-location/service-location.vue | 859 +++++++++++ 3 files changed, 3004 insertions(+) diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index 5b35792dd..fbaddeae4 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -1,3 +1,1345 @@ + + + + + + + + + + +--> + + + + + + + + + + + + diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index ee2096c36..37a0b8029 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1,3 +1,793 @@ + + + + + + + + + + +--> + + + + + + + + + \ No newline at end of file diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 776fe1199..bdcc3d11a 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,3 +1,858 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 94dea85a9400fec51f6fb1a90e3442136ae502a9 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Tue, 1 Jul 2025 15:02:50 -0400 Subject: [PATCH 02/11] CASH-845: move old versions prior to CASH-845 work into their own files with comments and excluded from unit tests --- jest.config.js | 3 + .../date-picker/date-picker-june-2025.vue | 1341 ++++++++++++++++ .../date-picker/date-picker.vue | 1351 ----------------- src/layouts/schedule/schedule-june-2025.vue | 782 ++++++++++ src/layouts/schedule/schedule.vue | 796 +--------- .../service-location-june-2025.vue | 850 +++++++++++ .../service-location/service-location.vue | 859 ----------- 7 files changed, 2977 insertions(+), 3005 deletions(-) create mode 100644 src/digital-components/date-picker/date-picker-june-2025.vue create mode 100644 src/layouts/schedule/schedule-june-2025.vue create mode 100644 src/layouts/service-location/service-location-june-2025.vue diff --git a/jest.config.js b/jest.config.js index ae8dd01c5..421a9a907 100644 --- a/jest.config.js +++ b/jest.config.js @@ -31,6 +31,9 @@ module.exports = { "!src/layouts/payment-pia-return/*.vue", // Temp test exclusion while in development "!src/layouts/insurance/*.vue", // Temp test exclusion while in development "!src/layouts/insurance-company/*.vue", // Temp test exclusion while in development + + "!src/**/*-june-2025.vue", // Exclude these temporary files for CASH-845 project + "!src/layouts/insurance-company/insurance-company-question/*.vue", // Temp test exclusion while in development "!src/experiment-components/*.vue", // END diff --git a/src/digital-components/date-picker/date-picker-june-2025.vue b/src/digital-components/date-picker/date-picker-june-2025.vue new file mode 100644 index 000000000..1ff54e6e7 --- /dev/null +++ b/src/digital-components/date-picker/date-picker-june-2025.vue @@ -0,0 +1,1341 @@ + + + + + + + + + + + + + + + + + diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index fbaddeae4..5b35792dd 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -1,1345 +1,3 @@ - - - - - - - - - - ---> - - - - - - - - - - - - diff --git a/src/layouts/schedule/schedule-june-2025.vue b/src/layouts/schedule/schedule-june-2025.vue new file mode 100644 index 000000000..0464b2914 --- /dev/null +++ b/src/layouts/schedule/schedule-june-2025.vue @@ -0,0 +1,782 @@ + + + + + + + + + + + diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 37a0b8029..9e1506e2e 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1,793 +1,3 @@ - - - - - - - - - - ---> - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/layouts/service-location/service-location-june-2025.vue b/src/layouts/service-location/service-location-june-2025.vue new file mode 100644 index 000000000..306d1aab3 --- /dev/null +++ b/src/layouts/service-location/service-location-june-2025.vue @@ -0,0 +1,850 @@ + + + + + + + + + + + + + diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index bdcc3d11a..776fe1199 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -1,858 +1,3 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 2a89bd86a4aefb67d3dd8915788904f92e7602e3 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Wed, 2 Jul 2025 12:34:50 -0400 Subject: [PATCH 03/11] CASH-845: routing changes --- src/constants/progress-bar-mapper.js | 5 +- .../date-picker/date-picker-june-2025.vue | 6 --- src/layouts/schedule/schedule.vue | 2 +- .../service-location-june-2025.vue | 2 - src/router/constants/routes.js | 9 ++-- src/router/constants/routing-table.js | 47 ++++++++++--------- .../methods/helpers/handle-heritage-return.js | 13 ++++- src/router/methods/routes.js | 3 +- 8 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/constants/progress-bar-mapper.js b/src/constants/progress-bar-mapper.js index dc1bc4a05..50b353151 100644 --- a/src/constants/progress-bar-mapper.js +++ b/src/constants/progress-bar-mapper.js @@ -13,8 +13,9 @@ const pagePercentageMapper = { "capability-questions": 40, quote: 48, "insurance-company": 52, - "service-location": 60, - schedule: 72, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // "service-location": 60, + schedule: 64, "mobile-details": 76, "customer-details": 84, "payment-method": 92, diff --git a/src/digital-components/date-picker/date-picker-june-2025.vue b/src/digital-components/date-picker/date-picker-june-2025.vue index 1ff54e6e7..9d001a113 100644 --- a/src/digital-components/date-picker/date-picker-june-2025.vue +++ b/src/digital-components/date-picker/date-picker-june-2025.vue @@ -1332,10 +1332,4 @@ export default { } - - - - - - diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 9e1506e2e..ee2096c36 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -866,4 +866,4 @@ export default { } } } - \ No newline at end of file + diff --git a/src/layouts/service-location/service-location-june-2025.vue b/src/layouts/service-location/service-location-june-2025.vue index 306d1aab3..8dac38faf 100644 --- a/src/layouts/service-location/service-location-june-2025.vue +++ b/src/layouts/service-location/service-location-june-2025.vue @@ -845,6 +845,4 @@ export default { } - - diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 7e9a3a793..45fdfb243 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,10 +55,11 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - SERVICE_LOCATION: { - name: "service-location", - path: "/service-location", - }, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // SERVICE_LOCATION: { + // name: "service-location", + // path: "/service-location", + // }, HERITAGE: { name: "heritage", path: "/virtual/heritage", diff --git a/src/router/constants/routing-table.js b/src/router/constants/routing-table.js index 4a07bcfaf..02a0d9384 100644 --- a/src/router/constants/routing-table.js +++ b/src/router/constants/routing-table.js @@ -421,7 +421,7 @@ const routingTable = function () { }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_CASH, - destinationPageData: routeData.SERVICE_LOCATION, + destinationPageData: routeData.SCHEDULE, }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_INSURANCE, @@ -449,8 +449,26 @@ const routingTable = function () { }, ], }, + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // { + // pageName: routeData.SERVICE_LOCATION.name, + // maps: [ + // { + // scenario: navigationScenarios.CLICKED_BACK, + // destinationPageData: routeData.QUOTE, + // }, + // { + // scenario: navigationScenarios.CLICKED_FORWARD, + // destinationPageData: routeData.SCHEDULE, + // }, + // { + // scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE, + // destinationPageData: routeData.MOBILE_DETAILS, + // }, + // ], + // }, { - pageName: routeData.SERVICE_LOCATION.name, + pageName: routeData.SCHEDULE.name, maps: [ { scenario: navigationScenarios.CLICKED_BACK, @@ -458,37 +476,24 @@ const routingTable = function () { }, { scenario: navigationScenarios.CLICKED_FORWARD, - destinationPageData: routeData.SCHEDULE, + destinationPageData: routeData.CUSTOMER_DETAILS, }, + // { + // scenario: navigationScenarios.CLICKED_CHANGE_LOCATION, + // destinationPageData: routeData.SERVICE_LOCATION, + // }, { scenario: navigationScenarios.CLICKED_FORWARD_WITH_MOBILE_SERVICE, destinationPageData: routeData.MOBILE_DETAILS, }, ], }, - { - pageName: routeData.SCHEDULE.name, - maps: [ - { - scenario: navigationScenarios.CLICKED_BACK, - destinationPageData: routeData.SERVICE_LOCATION, - }, - { - scenario: navigationScenarios.CLICKED_FORWARD, - destinationPageData: routeData.CUSTOMER_DETAILS, - }, - { - scenario: navigationScenarios.CLICKED_CHANGE_LOCATION, - destinationPageData: routeData.SERVICE_LOCATION, - }, - ], - }, { pageName: routeData.MOBILE_DETAILS.name, maps: [ { scenario: navigationScenarios.CLICKED_BACK, - destinationPageData: routeData.SERVICE_LOCATION, + destinationPageData: routeData.SCHEDULE, }, { scenario: navigationScenarios.CLICKED_FORWARD, diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 7914c8e0e..7ad61adf9 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -1,6 +1,7 @@ import { queryStrings } from "@/constants/query-strings"; import { consumeReferralQuerystrings } from "@/router/methods/helpers/consume-referral-info"; import { loadSessionIfPresent } from "@/helpers/heritage-integration/order-helper"; +import router from "@/router"; import { routeData } from "@/router/constants/routes"; export async function handleHeritageReturn(to, from) { @@ -11,6 +12,16 @@ export async function handleHeritageReturn(to, from) { await consumeReferralQuerystrings(); // load session with new cookie - await loadSessionIfPresent(true, routeData.SERVICE_LOCATION.name); + await loadSessionIfPresent(true, routeData.SCHEDULE.name); + + // Temporary redirect until URLs to old service-location page can be updated in Heritage + if ( + to.fullPath.includes("fmgPage=service-location") + ) { + // Redirect to Schedule page + router.push({ + name: routeData.SCHEDULE.name, + }); + } } } diff --git a/src/router/methods/routes.js b/src/router/methods/routes.js index 01f4f8a58..83fbb3811 100644 --- a/src/router/methods/routes.js +++ b/src/router/methods/routes.js @@ -29,7 +29,8 @@ export const routes = [ createRoute(routeData.CAPABILITY_QUESTIONS), createRoute(routeData.QUOTE, quoteBeforeEnter), createRoute(routeData.INSURANCE_COMPANY, insuranceCompanyBeforeEnter), - createRoute(routeData.SERVICE_LOCATION), + // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED + // createRoute(routeData.SERVICE_LOCATION), createRoute(routeData.SCHEDULE), createRoute(routeData.CUSTOMER_DETAILS), createRoute(routeData.PAYMENT_METHOD, paymentMethodBeforeEnter), From 825e27413d229baa25969e66a40d92b13ae3b132 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Wed, 2 Jul 2025 14:38:18 -0400 Subject: [PATCH 04/11] CASH-845: prettier formatting --- src/router/methods/helpers/handle-heritage-return.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 7ad61adf9..6d8c60a58 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -15,9 +15,7 @@ export async function handleHeritageReturn(to, from) { await loadSessionIfPresent(true, routeData.SCHEDULE.name); // Temporary redirect until URLs to old service-location page can be updated in Heritage - if ( - to.fullPath.includes("fmgPage=service-location") - ) { + if (to.fullPath.includes("fmgPage=service-location")) { // Redirect to Schedule page router.push({ name: routeData.SCHEDULE.name, From 449771b0020b746d56c0c7a7eb22c888cd0a32f3 Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Thu, 3 Jul 2025 10:00:02 -0400 Subject: [PATCH 05/11] CASH-814 | Most work done, need refactor and CSS --- .../button-question/button-question.vue | 26 ++- .../date-picker/date-picker.vue | 2 +- .../time-slot-question/time-slot-question.vue | 183 ++++++++++++++---- .../shop-question/shop-question.vue | 31 +-- 4 files changed, 186 insertions(+), 56 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index 050dcdea0..dc1f50c15 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -36,7 +36,7 @@ https://safelite.atlassian.net/wiki/spaces/DC/pages/76644418/Button+Question+Com
+
+ OR +
@@ -149,6 +156,11 @@ export default { required: false, default: false, }, + insertOrLabelBeforeFinalOption: { + type: Boolean, + required: false, + default: false, + }, }, setup(props) { const propsClone = Object.assign({}, props); @@ -390,4 +402,16 @@ export default { } } } +.or-label { + width: 100%; + text-align: center; + border-bottom: 1px solid black; + line-height: 1px; + margin: 10px 0 20px; + + span { + background: #fff; + padding: 0 10px; + } +} diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index 3d517fd85..642c90174 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -1373,7 +1373,7 @@ export default { } } } - :deep(.button-inner-wrapper) { + :deep(.timeslots .button-inner-wrapper) { display: flex; max-width: 100%; flex-wrap: wrap; diff --git a/src/layouts/schedule/time-slot-question/time-slot-question.vue b/src/layouts/schedule/time-slot-question/time-slot-question.vue index 58648746e..e3d2ef691 100644 --- a/src/layouts/schedule/time-slot-question/time-slot-question.vue +++ b/src/layouts/schedule/time-slot-question/time-slot-question.vue @@ -7,11 +7,30 @@ justifyText="center" typeStyle="small" class="duration-text-block" /> + +
+ +
+
{ + return this.isDropOffRouteCode(timeSlot.id); + }) + .map((timeSlot) => { + let buttonLabelValue; + if (timeSlot.id.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { + buttonLabelValue = this.overnightDropoffButtonText; + } else if (this.isSameDay) { + buttonLabelValue = this.sameDayDropoffButtonText; + } else { + buttonLabelValue = this.dropoffButtonText; + } + return { + value: timeSlot.id, + buttonLabel: buttonLabelValue, + }; + }); + if ( + this.getAvailableTimeSlotsForInshop(this.timeSlotsForSelectedDate.timeSlots) + .length !== 0 + ) { + dropOffQuestionAnswers.push({ + value: PICK_A_TIME_BUTTON_VALUE, + buttonLabel: "Pick a time", + }); + } + return dropOffQuestionAnswers; + }, hasWaitListExperiment() { return experimentMixin.methods.hasSettingEqualTo( experimentSettings.DISPLAY_WAITLIST, @@ -360,6 +411,33 @@ export default { isDropOffAppointment() { return this.appointmentType === AppointmentTypeStrings.DROP_OFF; }, + shouldDisplayDropOffAlert() { + return this.isDropOffRouteCode(this.selectedAnswerForDropOff); + }, + dropOffTimeSlotAlertCMSWidgetName() { + if (this.selectedAnswerForDropOff.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { + return "OvernightDropOffTimeSlotAlert"; + } else if (this.isSameDay) { + return "SameDayDropOffTimeSlotAlert"; + } else { + return "DropOffTimeSlotAlert"; + } + }, + isDropOffAppointmentAvailable() { + console.log("its running"); + + return ( + this.answersForDropOffQuestion !== null && + this.answersForDropOffQuestion.length !== 0 && + this.answersForDropOffQuestion[0].value !== PICK_A_TIME_BUTTON_VALUE + ); + }, + shouldDisplayTimeSlotQuestion() { + return ( + this.selectedAnswerForDropOff == PICK_A_TIME_BUTTON_VALUE || + !this.isDropOffAppointmentAvailable + ); + }, }, methods: { async setSelectedTimeSlot() { @@ -382,31 +460,17 @@ export default { } }, getAvailableTimeSlotsForInshop(timeSlotsForSelectedDate) { - return timeSlotsForSelectedDate.map((timeSlot) => { - const readableTime = militaryToTwelveHourTime(timeSlot.startTime); - return { - value: timeSlot.id, - buttonLabel: readableTime, - }; - }); - }, - getAvailableTimeSlotsForDropOff(timeSlotsForSelectedDate) { - const availableTimeSlots = timeSlotsForSelectedDate.map((timeSlot) => { - let buttonLabelValue; - if (timeSlot.id.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { - buttonLabelValue = this.overnightDropoffButtonText; - } else if (this.isSameDay) { - buttonLabelValue = this.sameDayDropoffButtonText; - } else { - buttonLabelValue = this.dropoffButtonText; - } - return { - value: timeSlot.id, - buttonLabel: buttonLabelValue, - }; - }); - - return availableTimeSlots; + return timeSlotsForSelectedDate + .filter((timeSlot) => { + return !this.isDropOffRouteCode(timeSlot.id); + }) + .map((timeSlot) => { + const readableTime = militaryToTwelveHourTime(timeSlot.startTime); + return { + value: timeSlot.id, + buttonLabel: readableTime, + }; + }); }, getAvailableTimeSlotsForMobile(timeSlotsForSelectedDate) { const availableTimeSlots = timeSlotsForSelectedDate.map((timeSlot) => { @@ -463,9 +527,14 @@ export default { return store.getters.order.customer?.waitListRequested; }, autoSelectTimeSlotIfOnlyOneIsAvailable() { - const numberOfOptions = this.availableTimeSlots?.length; + console.log(this.timeSlotsForSelectedDate.timeSlots?.length); + const numberOfOptions = this.timeSlotsForSelectedDate.timeSlots?.length; if (numberOfOptions === 1) { - this.selectedRouteCode = this.availableTimeSlots[0].value; + if (this.availableTimeSlots.length > 0) { + this.selectedAnswerForTimeSlots = this.availableTimeSlots[0].value; + } else { + this.selectedAnswerForDropOff = this.answersForDropOffQuestion[0].value; + } } }, addPremiumFlagToInput(routeCode) { @@ -519,6 +588,12 @@ export default { successMessageElement.scrollIntoView({ behavior: "smooth" }); } }, + isDropOffRouteCode(routeCode) { + return ( + routeCode.includes(RouteCodeFlags.ALL_DAY_DROP_OFF) || + routeCode.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF) + ); + }, }, watch: { waitListRequested(newVal) { @@ -545,12 +620,24 @@ export default { this.setSelectedTimeSlot(); } }, + selectedAnswerForDropOff(newValue) { + if (newValue == PICK_A_TIME_BUTTON_VALUE) { + this.selectedRouteCode = null; + } else { + this.selectedAnswerForTimeSlots = null; + this.selectedRouteCode = newValue; + } + }, + selectedAnswerForTimeSlots(newValue) { + if (newValue) this.selectedRouteCode = newValue; + }, }, components: { // Removed modal textBlock, buttonQuestion, checkboxQuestion, + alert, }, }; @@ -623,5 +710,23 @@ export default { text-align: left; margin: 1.5rem 0 0; } + .drop-off-alert { + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_13957_112512)'%3E%3Cpath d='M5.99865 0C4.81147 4.82643e-07 3.65095 0.352111 2.66392 1.01179C1.67688 1.67146 0.907678 2.60907 0.45361 3.70599C-0.000459241 4.80291 -0.11899 6.00986 0.113013 7.17415C0.345015 8.33845 0.917126 9.40778 1.75697 10.2469C2.59682 11.086 3.66666 11.6571 4.83117 11.8881C5.99567 12.119 7.20251 11.9994 8.29902 11.5443C9.39553 11.0893 10.3324 10.3192 10.9912 9.33159C11.65 8.34396 12.0011 7.18313 12 5.99594C11.9971 4.40566 11.3638 2.88142 10.2388 1.75742C9.11375 0.633431 7.58894 0.00143011 5.99865 0V0ZM5.99865 11.2478C4.96135 11.2473 3.94748 10.9392 3.08518 10.3627C2.22288 9.7861 1.55085 8.96685 1.15401 8.00846C0.75718 7.05006 0.653353 5.99554 0.855656 4.97815C1.05796 3.96077 1.55731 3.02618 2.29061 2.29251C3.0239 1.55884 3.95823 1.059 4.97551 0.856176C5.99279 0.653349 7.04737 0.756633 8.00597 1.15297C8.96457 1.54931 9.78416 2.22092 10.3612 3.08293C10.9382 3.94493 11.2467 4.95864 11.2478 5.99594C11.2478 7.38835 10.6949 8.72377 9.71053 9.70861C8.7262 10.6934 7.39106 11.2471 5.99865 11.2478V11.2478Z' fill='%2306577C'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.22736 8.84695C6.30613 8.76818 6.35038 8.66135 6.35038 8.54996V5.30996C6.35038 5.19857 6.30613 5.09174 6.22736 5.01298C6.1486 4.93421 6.04177 4.88996 5.93038 4.88996C5.81899 4.88996 5.71216 4.93421 5.63339 5.01298C5.55463 5.09174 5.51038 5.19857 5.51038 5.30996V8.54996C5.51038 8.66135 5.55463 8.76818 5.63339 8.84695C5.71216 8.92571 5.81899 8.96996 5.93038 8.96996C6.04177 8.96996 6.1486 8.92571 6.22736 8.84695ZM5.69704 3.97918C5.76611 4.02533 5.84731 4.04996 5.93038 4.04996C5.98558 4.05012 6.04026 4.03936 6.09129 4.01831C6.14232 3.99726 6.18868 3.96633 6.22771 3.9273C6.26675 3.88827 6.29768 3.8419 6.31873 3.79088C6.33978 3.73985 6.35053 3.68516 6.35038 3.62996C6.35038 3.54689 6.32574 3.46569 6.27959 3.39662C6.23344 3.32755 6.16785 3.27372 6.0911 3.24193C6.01436 3.21014 5.92991 3.20183 5.84844 3.21803C5.76697 3.23424 5.69213 3.27424 5.63339 3.33298C5.57465 3.39171 5.53465 3.46655 5.51845 3.54802C5.50224 3.6295 5.51056 3.71394 5.54235 3.79069C5.57414 3.86743 5.62797 3.93303 5.69704 3.97918Z' fill='%2306577C'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_13957_112512'%3E%3Crect width='12' height='12' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A"); + background-repeat: no-repeat; + background-size: 0.75rem; + background-position: 0.5rem 0.75rem; + border-radius: 0.5rem; + display: flex; + flex-direction: row; + padding: 0.5rem 0.5rem 0.5rem 1.5rem; + gap: 0.25rem; + background-color: #e4f1f7; + + .alert-heading { + text-align: left; + font-size: 0.75rem; + line-height: 1.25rem; + } + } } diff --git a/src/layouts/service-location/shop-question/shop-question.vue b/src/layouts/service-location/shop-question/shop-question.vue index 5a9278d78..7191a1f07 100644 --- a/src/layouts/service-location/shop-question/shop-question.vue +++ b/src/layouts/service-location/shop-question/shop-question.vue @@ -277,23 +277,24 @@ export default { margin-top: 0.5rem; } } -} -.drop-off-alert { - background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_13957_112512)'%3E%3Cpath d='M5.99865 0C4.81147 4.82643e-07 3.65095 0.352111 2.66392 1.01179C1.67688 1.67146 0.907678 2.60907 0.45361 3.70599C-0.000459241 4.80291 -0.11899 6.00986 0.113013 7.17415C0.345015 8.33845 0.917126 9.40778 1.75697 10.2469C2.59682 11.086 3.66666 11.6571 4.83117 11.8881C5.99567 12.119 7.20251 11.9994 8.29902 11.5443C9.39553 11.0893 10.3324 10.3192 10.9912 9.33159C11.65 8.34396 12.0011 7.18313 12 5.99594C11.9971 4.40566 11.3638 2.88142 10.2388 1.75742C9.11375 0.633431 7.58894 0.00143011 5.99865 0V0ZM5.99865 11.2478C4.96135 11.2473 3.94748 10.9392 3.08518 10.3627C2.22288 9.7861 1.55085 8.96685 1.15401 8.00846C0.75718 7.05006 0.653353 5.99554 0.855656 4.97815C1.05796 3.96077 1.55731 3.02618 2.29061 2.29251C3.0239 1.55884 3.95823 1.059 4.97551 0.856176C5.99279 0.653349 7.04737 0.756633 8.00597 1.15297C8.96457 1.54931 9.78416 2.22092 10.3612 3.08293C10.9382 3.94493 11.2467 4.95864 11.2478 5.99594C11.2478 7.38835 10.6949 8.72377 9.71053 9.70861C8.7262 10.6934 7.39106 11.2471 5.99865 11.2478V11.2478Z' fill='%2306577C'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.22736 8.84695C6.30613 8.76818 6.35038 8.66135 6.35038 8.54996V5.30996C6.35038 5.19857 6.30613 5.09174 6.22736 5.01298C6.1486 4.93421 6.04177 4.88996 5.93038 4.88996C5.81899 4.88996 5.71216 4.93421 5.63339 5.01298C5.55463 5.09174 5.51038 5.19857 5.51038 5.30996V8.54996C5.51038 8.66135 5.55463 8.76818 5.63339 8.84695C5.71216 8.92571 5.81899 8.96996 5.93038 8.96996C6.04177 8.96996 6.1486 8.92571 6.22736 8.84695ZM5.69704 3.97918C5.76611 4.02533 5.84731 4.04996 5.93038 4.04996C5.98558 4.05012 6.04026 4.03936 6.09129 4.01831C6.14232 3.99726 6.18868 3.96633 6.22771 3.9273C6.26675 3.88827 6.29768 3.8419 6.31873 3.79088C6.33978 3.73985 6.35053 3.68516 6.35038 3.62996C6.35038 3.54689 6.32574 3.46569 6.27959 3.39662C6.23344 3.32755 6.16785 3.27372 6.0911 3.24193C6.01436 3.21014 5.92991 3.20183 5.84844 3.21803C5.76697 3.23424 5.69213 3.27424 5.63339 3.33298C5.57465 3.39171 5.53465 3.46655 5.51845 3.54802C5.50224 3.6295 5.51056 3.71394 5.54235 3.79069C5.57414 3.86743 5.62797 3.93303 5.69704 3.97918Z' fill='%2306577C'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_13957_112512'%3E%3Crect width='12' height='12' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A"); - background-repeat: no-repeat; - background-size: 0.75rem; - background-position: 0.5rem 0.75rem; - border-radius: 0.5rem; - display: flex; - flex-direction: row; - padding: 0.5rem 0.5rem 0.5rem 1.5rem; - gap: 0.25rem; + .drop-off-alert { + background: url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_13957_112512)'%3E%3Cpath d='M5.99865 0C4.81147 4.82643e-07 3.65095 0.352111 2.66392 1.01179C1.67688 1.67146 0.907678 2.60907 0.45361 3.70599C-0.000459241 4.80291 -0.11899 6.00986 0.113013 7.17415C0.345015 8.33845 0.917126 9.40778 1.75697 10.2469C2.59682 11.086 3.66666 11.6571 4.83117 11.8881C5.99567 12.119 7.20251 11.9994 8.29902 11.5443C9.39553 11.0893 10.3324 10.3192 10.9912 9.33159C11.65 8.34396 12.0011 7.18313 12 5.99594C11.9971 4.40566 11.3638 2.88142 10.2388 1.75742C9.11375 0.633431 7.58894 0.00143011 5.99865 0V0ZM5.99865 11.2478C4.96135 11.2473 3.94748 10.9392 3.08518 10.3627C2.22288 9.7861 1.55085 8.96685 1.15401 8.00846C0.75718 7.05006 0.653353 5.99554 0.855656 4.97815C1.05796 3.96077 1.55731 3.02618 2.29061 2.29251C3.0239 1.55884 3.95823 1.059 4.97551 0.856176C5.99279 0.653349 7.04737 0.756633 8.00597 1.15297C8.96457 1.54931 9.78416 2.22092 10.3612 3.08293C10.9382 3.94493 11.2467 4.95864 11.2478 5.99594C11.2478 7.38835 10.6949 8.72377 9.71053 9.70861C8.7262 10.6934 7.39106 11.2471 5.99865 11.2478V11.2478Z' fill='%2306577C'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.22736 8.84695C6.30613 8.76818 6.35038 8.66135 6.35038 8.54996V5.30996C6.35038 5.19857 6.30613 5.09174 6.22736 5.01298C6.1486 4.93421 6.04177 4.88996 5.93038 4.88996C5.81899 4.88996 5.71216 4.93421 5.63339 5.01298C5.55463 5.09174 5.51038 5.19857 5.51038 5.30996V8.54996C5.51038 8.66135 5.55463 8.76818 5.63339 8.84695C5.71216 8.92571 5.81899 8.96996 5.93038 8.96996C6.04177 8.96996 6.1486 8.92571 6.22736 8.84695ZM5.69704 3.97918C5.76611 4.02533 5.84731 4.04996 5.93038 4.04996C5.98558 4.05012 6.04026 4.03936 6.09129 4.01831C6.14232 3.99726 6.18868 3.96633 6.22771 3.9273C6.26675 3.88827 6.29768 3.8419 6.31873 3.79088C6.33978 3.73985 6.35053 3.68516 6.35038 3.62996C6.35038 3.54689 6.32574 3.46569 6.27959 3.39662C6.23344 3.32755 6.16785 3.27372 6.0911 3.24193C6.01436 3.21014 5.92991 3.20183 5.84844 3.21803C5.76697 3.23424 5.69213 3.27424 5.63339 3.33298C5.57465 3.39171 5.53465 3.46655 5.51845 3.54802C5.50224 3.6295 5.51056 3.71394 5.54235 3.79069C5.57414 3.86743 5.62797 3.93303 5.69704 3.97918Z' fill='%2306577C'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_13957_112512'%3E%3Crect width='12' height='12' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A"); + background-repeat: no-repeat; + background-size: 0.75rem; + background-position: 0.5rem 0.75rem; + border-radius: 0.5rem; + display: flex; + flex-direction: row; + padding: 0.5rem 0.5rem 0.5rem 1.5rem; + gap: 0.25rem; + background-color: #e4f1f7; - .alert-heading { - text-align: left; - font-size: 0.75rem; - line-height: 1.25rem; + .alert-heading { + text-align: left; + font-size: 0.75rem; + line-height: 1.25rem; + } } } From b311f6d41c26eec32e13694901d6d8e668bf8d31 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 3 Jul 2025 10:33:25 -0400 Subject: [PATCH 06/11] CASH-959 update hop font-weights. --- public/css/hop-styling.css | 9 +++++---- public/scss/hop-styling.scss | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/public/css/hop-styling.css b/public/css/hop-styling.css index a79c2f049..41fc1edd5 100644 --- a/public/css/hop-styling.css +++ b/public/css/hop-styling.css @@ -12,7 +12,7 @@ body { padding: 8px; } body h3 { - font-weight: 600; + font-weight: 700; } body .validation-info { display: none; @@ -35,7 +35,7 @@ body .form-group { body .headerlinecontainer .headerline1 { font-size: 20px; line-height: 32px; - font-weight: 500; + font-weight: 400; margin: 24px 0; text-align: center; } @@ -96,7 +96,7 @@ body .creditCardSpecific div .headerlinecontainer { display: none; } body .creditCardSpecific div label { - font-weight: 600; + font-weight: 500; } body .creditCardSpecific #infoRow2 { margin-bottom: 0; @@ -140,6 +140,7 @@ body .buttonContainer button { border-radius: 8px; color: #fff; justify-content: center; + font-family: Urbanist, Arial, Helvetica, sans-serif; font-weight: 500; font-size: 16px; height: 48px; @@ -272,7 +273,7 @@ body .cc-error-container #alert-message { #fmg-checkout-shared #other-payments-container label span.paymentOptionText { margin: auto 0; padding-left: 0; - font-weight: 600; + font-weight: 400; } #fmg-checkout-shared #other-payments-container #afterpayParentLink label > span:first-of-type { width: 100%; diff --git a/public/scss/hop-styling.scss b/public/scss/hop-styling.scss index 3d30255cc..bb38cf6b9 100644 --- a/public/scss/hop-styling.scss +++ b/public/scss/hop-styling.scss @@ -12,7 +12,7 @@ body { padding: 8px; h3 { - font-weight: 600; + font-weight: 700; } .validation-info { @@ -42,7 +42,7 @@ body { .headerline1 { font-size: 20px; line-height: 32px; - font-weight: 500; + font-weight: 400; margin: 24px 0; text-align: center; } @@ -103,7 +103,7 @@ body { display: none; } label { - font-weight: 600; + font-weight: 500; } } #infoRow2 { @@ -151,6 +151,7 @@ body { border-radius: 8px; color: #fff; justify-content: center; + font-family: Urbanist, Arial, Helvetica, sans-serif; font-weight: 500; font-size: 16px; height: 48px; @@ -330,7 +331,7 @@ body { &.paymentOptionText { margin: auto 0; padding-left: 0; - font-weight: 600; + font-weight: 400; } } } From e3e6b27148c531941290b37b5704d07e10ad7cd5 Mon Sep 17 00:00:00 2001 From: Bryan Mauger Date: Thu, 3 Jul 2025 13:01:32 -0400 Subject: [PATCH 07/11] CASH-1127 update hop font. --- public/css/hop-styling.css | 2 ++ public/scss/hop-styling.scss | 2 ++ 2 files changed, 4 insertions(+) diff --git a/public/css/hop-styling.css b/public/css/hop-styling.css index 41fc1edd5..0318d52ff 100644 --- a/public/css/hop-styling.css +++ b/public/css/hop-styling.css @@ -51,6 +51,8 @@ body select { font-size: 16px; color: #000; background-color: #fff; + font-family: Urbanist, Arial, Helvetica, sans-serif; + font-weight: 400; } body input:focus, body input:focus-visible, body select:focus, diff --git a/public/scss/hop-styling.scss b/public/scss/hop-styling.scss index bb38cf6b9..aae9913e2 100644 --- a/public/scss/hop-styling.scss +++ b/public/scss/hop-styling.scss @@ -61,6 +61,8 @@ body { font-size: 16px; color: #000; background-color: #fff; + font-family: Urbanist, Arial, Helvetica, sans-serif; + font-weight: 400; &:focus, &:focus-visible { box-shadow: 0 0 0 2.5px #1574a1; From 76d67981f6a6e3dd430a1ddbb9288062f519bac8 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:44:39 -0400 Subject: [PATCH 08/11] CASH-845 router change refactor --- src/router/constants/routes.js | 9 ++++----- src/router/methods/helpers/handle-heritage-return.js | 9 --------- src/router/methods/route-logic/service-location.js | 8 ++++++++ src/router/methods/routes.js | 4 ++-- 4 files changed, 14 insertions(+), 16 deletions(-) create mode 100644 src/router/methods/route-logic/service-location.js diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 45fdfb243..6fec2455d 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,11 +55,10 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED - // SERVICE_LOCATION: { - // name: "service-location", - // path: "/service-location", - // }, + SERVICE_LOCATION: { // keep even though this page has been removed from the regular flow bc Heritage still points to it + name: "service-location", + path: "/service-location", + }, HERITAGE: { name: "heritage", path: "/virtual/heritage", diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 6d8c60a58..74a1ce62a 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -1,7 +1,6 @@ import { queryStrings } from "@/constants/query-strings"; import { consumeReferralQuerystrings } from "@/router/methods/helpers/consume-referral-info"; import { loadSessionIfPresent } from "@/helpers/heritage-integration/order-helper"; -import router from "@/router"; import { routeData } from "@/router/constants/routes"; export async function handleHeritageReturn(to, from) { @@ -13,13 +12,5 @@ export async function handleHeritageReturn(to, from) { // load session with new cookie await loadSessionIfPresent(true, routeData.SCHEDULE.name); - - // Temporary redirect until URLs to old service-location page can be updated in Heritage - if (to.fullPath.includes("fmgPage=service-location")) { - // Redirect to Schedule page - router.push({ - name: routeData.SCHEDULE.name, - }); - } } } diff --git a/src/router/methods/route-logic/service-location.js b/src/router/methods/route-logic/service-location.js new file mode 100644 index 000000000..ecaebe149 --- /dev/null +++ b/src/router/methods/route-logic/service-location.js @@ -0,0 +1,8 @@ +import { routeData } from "@/router/constants/routes"; + +export async function serviceLocationBeforeEnter(to, from) { + return { + name: routeData.SCHEDULE.name, + replace: true, + }; +} diff --git a/src/router/methods/routes.js b/src/router/methods/routes.js index 83fbb3811..97af04068 100644 --- a/src/router/methods/routes.js +++ b/src/router/methods/routes.js @@ -12,6 +12,7 @@ import { errorBeforeEnter } from "@/router/methods/route-logic/error"; import { restartBeforeEnter } from "@/router/methods/route-logic/restart"; import { paymentMethodBeforeEnter } from "@/router/methods/route-logic/payment-method"; import { paymentBeforeEnter } from "@/router/methods/route-logic/payment"; +import { serviceLocationBeforeEnter } from "@/router/methods/route-logic/service-location"; export const routes = [ // Non-virtual pages. @@ -29,8 +30,7 @@ export const routes = [ createRoute(routeData.CAPABILITY_QUESTIONS), createRoute(routeData.QUOTE, quoteBeforeEnter), createRoute(routeData.INSURANCE_COMPANY, insuranceCompanyBeforeEnter), - // TODO: REMOVE THIS COMMENT AND BELOW, ONCE CASH-803 (SERVICE-LOCATION AND SCHEDULE PAGE COMBINATION) HAS BEEN VETTED - // createRoute(routeData.SERVICE_LOCATION), + createRoute(routeData.SERVICE_LOCATION, serviceLocationBeforeEnter), createRoute(routeData.SCHEDULE), createRoute(routeData.CUSTOMER_DETAILS), createRoute(routeData.PAYMENT_METHOD, paymentMethodBeforeEnter), From 13b8e7f7373d95b42c1e2bff8a03d5b4994070f6 Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:46:48 -0400 Subject: [PATCH 09/11] CASH-845 restore handle-heritage-return completely --- src/router/methods/helpers/handle-heritage-return.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/router/methods/helpers/handle-heritage-return.js b/src/router/methods/helpers/handle-heritage-return.js index 74a1ce62a..7914c8e0e 100644 --- a/src/router/methods/helpers/handle-heritage-return.js +++ b/src/router/methods/helpers/handle-heritage-return.js @@ -11,6 +11,6 @@ export async function handleHeritageReturn(to, from) { await consumeReferralQuerystrings(); // load session with new cookie - await loadSessionIfPresent(true, routeData.SCHEDULE.name); + await loadSessionIfPresent(true, routeData.SERVICE_LOCATION.name); } } From fc088ecd08a65907e61171bc3d7c5140b0a575ec Mon Sep 17 00:00:00 2001 From: AdamCaouetteSafelite Date: Thu, 3 Jul 2025 14:49:59 -0400 Subject: [PATCH 10/11] CASH-845: prettier change --- src/router/constants/routes.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/router/constants/routes.js b/src/router/constants/routes.js index 6fec2455d..5632fe357 100644 --- a/src/router/constants/routes.js +++ b/src/router/constants/routes.js @@ -55,7 +55,8 @@ export const routeData = { name: "insurance-company", path: "/insurance-company", }, - SERVICE_LOCATION: { // keep even though this page has been removed from the regular flow bc Heritage still points to it + SERVICE_LOCATION: { + // keep even though this page has been removed from the regular flow bc Heritage still points to it name: "service-location", path: "/service-location", }, From c1a5dcdeef1c4fe8cd3ba82ddb48e0afe4971672 Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Mon, 7 Jul 2025 12:13:08 -0400 Subject: [PATCH 11/11] CASH-814 | Styling, cleanup, auto select, CMS integration --- .../button-question/button-question.vue | 2 +- .../date-picker/date-picker.spec.js | 2 +- .../date-picker/date-picker.vue | 2 + .../time-slot-question/time-slot-question.vue | 79 +++++++++---------- 4 files changed, 40 insertions(+), 45 deletions(-) diff --git a/src/digital-components/button-question/button-question.vue b/src/digital-components/button-question/button-question.vue index dc1f50c15..2eaf204ad 100644 --- a/src/digital-components/button-question/button-question.vue +++ b/src/digital-components/button-question/button-question.vue @@ -407,7 +407,7 @@ export default { text-align: center; border-bottom: 1px solid black; line-height: 1px; - margin: 10px 0 20px; + margin: 20px 0 20px; span { background: #fff; diff --git a/src/digital-components/date-picker/date-picker.spec.js b/src/digital-components/date-picker/date-picker.spec.js index e1fbf302f..09bf21d76 100644 --- a/src/digital-components/date-picker/date-picker.spec.js +++ b/src/digital-components/date-picker/date-picker.spec.js @@ -481,7 +481,7 @@ describe("date-picker.vue", () => { }, }); const spy = jest.spyOn(wrapper.vm, "setCalendarData"); - + wrapper.vm.$refs.timeSlotModalQuestion.initializeComponent = jest.fn(); wrapper.vm.$nextTick(); // Act diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index e008021db..8f6b35f60 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -140,6 +140,7 @@ dropoffCmsWidgetName="DropOffTimeSlotModal" sameDayDropOffCmsWidgetName="SameDayDropOffTimeSlotModal" overnightDropOffCmsWidgetName="OvernightDropOffTimeSlotModal" + dropOffOrPickATimeQuestionCmsWidgetName="DropOffOrPickATimeQuestionWidget" :selectedDate="selectedDate" :appointmentType="appointmentType" :premiumAppointmentFee="premiumAppointmentFee" @@ -292,6 +293,7 @@ export default { methods: { initializeComponent(initialData) { this.setCalendarData(initialData); + this.$refs.timeSlotModalQuestion.initializeComponent(); }, fireDateSelectedEvent(event, date) { // Ignore if arrow key selected radioButton diff --git a/src/layouts/schedule/time-slot-question/time-slot-question.vue b/src/layouts/schedule/time-slot-question/time-slot-question.vue index 2d67ddc90..80d22cae5 100644 --- a/src/layouts/schedule/time-slot-question/time-slot-question.vue +++ b/src/layouts/schedule/time-slot-question/time-slot-question.vue @@ -10,7 +10,7 @@ { - let buttonLabelValue; - if (timeSlot.id.includes(RouteCodeFlags.ALL_DAY_DROP_OFF)) { - buttonLabelValue = this.dropoffButtonText; - } else if (timeSlot.id.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)) { - buttonLabelValue = this.overnightDropoffButtonText; - } else if (this.isSameDay) { - buttonLabelValue = this.sameDayDropoffButtonText; - } else { - buttonLabelValue = militaryToTwelveHourTime(timeSlot.startTime); - } - return { - value: timeSlot.id, - buttonLabel: buttonLabelValue, - }; - }); - - return availableTimeSlots; - }, getAvailableTimeSlotsForMobile(timeSlotsForSelectedDate) { const availableTimeSlots = timeSlotsForSelectedDate.map((timeSlot) => { const readableTime = `${militaryToTwelveHourTime(timeSlot.startTime)} - ${militaryToTwelveHourTime( @@ -529,27 +520,27 @@ export default { }, }; }, - getSelectedRouteCode() { - let selectedRouteCode; + setSelectedRouteCodeFromParent() { if (!this.modelValue?.timeSlot) { - selectedRouteCode = null; + return; } - + const routeCodeFromParent = this.modelValue.timeSlot.routeCode; if (this.modelValue?.isPremiumAppointment) { - selectedRouteCode = this.addPremiumFlagToInput( - this.modelValue?.timeSlot?.routeCode - ); + // Mobile Only + this.selectedAnswerForTimeSlots = this.addPremiumFlagToInput(routeCodeFromParent); } else { - selectedRouteCode = this.modelValue?.timeSlot?.routeCode; + if (this.isDropOffRouteCode(routeCodeFromParent)) { + this.selectedAnswerForDropOff = routeCodeFromParent; + } else { + this.selectedAnswerForDropOff = PICK_A_TIME_BUTTON_VALUE; + this.selectedAnswerForTimeSlots = routeCodeFromParent; + } } - - return selectedRouteCode; }, getWaitListRequestedFromStore() { return store.getters.order.customer?.waitListRequested; }, autoSelectTimeSlotIfOnlyOneIsAvailable() { - console.log(this.timeSlotsForSelectedDate.timeSlots?.length); const numberOfOptions = this.timeSlotsForSelectedDate.timeSlots?.length; if (numberOfOptions === 1) { if (this.availableTimeSlots.length > 0) { @@ -570,7 +561,6 @@ export default { if (routeCodeIncludesPremium) { routeCode = this.removePremiumFlagFromInput(routeCode); } - const timeSlot = this.timeSlotsForSelectedDate?.timeSlots?.find( (slot) => slot.id == routeCode ); @@ -611,6 +601,9 @@ export default { } }, isDropOffRouteCode(routeCode) { + if (!routeCode) { + return false; + } return ( routeCode.includes(RouteCodeFlags.ALL_DAY_DROP_OFF) || routeCode.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)