No description
Find a file
Cursor Agent 848e74f6ec
Fix operator precedence bug in isMobileStaticRecalibrationApplicable causing unnecessary mobile schedule lookups
The isMobileStaticRecalibrationApplicable computed property in schedule.vue had
incorrect operator precedence that made it far too permissive. Due to misplaced
parentheses, the condition evaluated as:

  (displayMSR && RECAL_FEE_PART && enableMSRSplitPay) || isCashItacNoComp || isInsurable

This meant ANY cash/ITAC/NoComp order OR any order with an insurable mobile fee
part would be considered MSR-applicable, regardless of whether displayMSR was
enabled or the mobile fee part was actually the RECAL MOBILE fee.

As a result, isServiceableMobile could return true even when the backend
explicitly set isRecalibrationServiceableMobile to false, causing:
- Mobile schedule API calls for orders that cannot be serviced mobile
- Mobile appointment type being offered when it should not be
- Incorrect UI state on the schedule page

The fix aligns schedule.vue with the correct logic already present in
service-location.vue and service-location-june-2025.vue:

  displayMSR && RECAL_FEE_PART && (enableMSRSplitPay || isCashItacNoComp || isInsurable)

This ensures all three base conditions (MSR experiment enabled, correct fee part,
and payment eligibility) must be met before MSR is considered applicable.

Co-authored-by: Mark Harris <mark.harris@safelite.com>
2026-04-09 19:25:47 +00:00
playwright-tests Rename locator for readability 2026-03-18 14:38:29 -04:00
public CASH-1938 Add Noindex Meta Tag 2026-02-09 15:10:55 -05:00
src Fix operator precedence bug in isMobileStaticRecalibrationApplicable causing unnecessary mobile schedule lookups 2026-04-09 19:25:47 +00:00
temp rerun pipeline after disk space issue 2025-08-04 10:19:36 -04:00
.gitattributes Add gitattributes file 2022-10-28 16:42:47 -04:00
.gitignore Removes Playwright testing setup from core project 2025-06-05 16:22:34 -04:00
.prettierrc CASH-256 2025-02-14 15:13:26 -05:00
azure-pipelines-automated-testing.yml Updates Playwright Jira reporter and pool 2025-08-01 13:19:07 -04:00
azure-pipelines.yml Remove SED steps as no longer necessary. 2025-09-18 17:13:47 -04:00
babel.config.js Added back jest support for unit testing, added mock unit test 2021-10-27 11:24:32 -04:00
Dockerfile.playwright Loads environment variables in Docker containers 2025-07-15 11:29:49 -04:00
environment-variables.js Move hardcoded test values to env variables 2026-01-07 11:17:14 -05:00
jest.config.js CASH-1790 add more unit tests 2026-02-06 10:31:16 -05:00
jsconfig.json Fixes go to definition and intellisense for @ imports that are everywher 2026-03-06 17:34:28 -05:00
package-lock.json Afterpay return page 2025-12-16 11:19:15 -05:00
package.json Afterpay return page 2025-12-16 11:19:15 -05:00
README.md Updated readme 2022-01-26 15:19:43 -05:00
vue.config.js Consolidated defs to single file. 2025-09-19 10:26:19 -04:00
vue.release.config.js Consolidated defs to single file. 2025-09-19 10:26:19 -04:00

Fix My Glass Vue Project


This Repository is for Fix My Glass front end Vue and documentation associated with it.

Routing

We are using Vue Router 4.x for our front end routing. We are using a runtime dynamic routing solution. Some more information about dynamic routing can be found on the official Vue Router documentation.

Next() - Is a function that is native to Vue Router in which we call in order to send the user where want them to go based on some logic we have. You can read more about Navigation Guards and the Next() function on the Vue Router documentation.

GetRouteInfoFromPageName(PageName) - This method typically takes the query string value of fmgPage and passes it into a call to our Content Service. The service will pull information on the page; matching page name passed to page name in our Cms. If we have a match, we will compile the route information and send it to our router to process. If we do not have a that page in our Cms, the user will be served back a 404 page while retaining the structure.

GoToFunnelStartOn404(next) - When a user tries to go to a page that doesn't exist in the CMS, they will be put back to the 'Start' of the funnel which is whatever page is marked as the homepage on Sitefinity.