This adds a circuit breaker for uncaught failures in beforeEach. The first failure still goes through the normal ERROR/RESTART recovery path; a second consecutive failure redirects to the static error page instead of looping.
- New before-each-error-recovery module tracks recovery attempts in sessionStorage (with an in-memory fallback).
- ERROR/RESTART routes skip normal guard logic so the counter can accumulate across bounce-backs.
- The counter clears only after a fully successful navigation.
- redirectToStaticErrorPage centralizes hard-error bailout: logs, clears poisoned sessionStorage keys (submittedState, heritage redirect count, recovery count, externalParameterState), then navigates to /fmg/static/error.
- The static error page RESTART flow clears the same sessionStorage keys so bad state does not re-enter the funnel.
- Session storage key strings are centralized in session-storage.js.
- Unit tests cover recovery counting, bailout clearing, and navigation fallbacks.
Expected impact: Stops repeated ERROR → RESTART → ERROR cycles (including corrupt submittedState JSON.parse failures and recurring automation errors in us-east-1/us-east-2) by bailing out to the static error page after one failed recovery attempt.
CASH-2570 the unverified message shows if you go through initially unverified and get assigned the experiment and create a new order as cash. You're still assigned the unverified deductible experiment. So qualified the alert message to include a check for isInsurance. Also noticed in vuex, when switching from insurance to cash, the insurance properties in vuex are still set. Added code to clear them when selecting a cash order
scheduling.vue:
- Colocate inshop providers and time slots into inShopProvidersAndTimeslots
array of { provider, timeSlots } objects, replacing two parallel arrays
- Combine mobileTimeSlots and mobileProviderNumber into a single
mobileProviderAndTimeSlot object
- Remove unused inShopProviderNumber state
- Extract SCHEDULE_FETCH_DAYS constant to replace magic number 14
- Add JSDoc to toDateString
date-picker:
- Move from src/ux-components/ to src/layouts/scheduling/ since it is
only used by scheduling.vue
- Replace inline SVGs with chevron-right-blue.svg and chevron-right-grey.svg
asset files, using CSS scaleX(-1) flip for left-pointing variants
- Import desktop breakpoint from new src/constants/breakpoints.js instead
of hardcoding 768