diff --git a/web/modules/custom/riverside_pt/js/components/rpt-booking.js b/web/modules/custom/riverside_pt/js/components/rpt-booking.js index 63d8418..411b9c3 100644 --- a/web/modules/custom/riverside_pt/js/components/rpt-booking.js +++ b/web/modules/custom/riverside_pt/js/components/rpt-booking.js @@ -100,7 +100,7 @@ function formatAppointmentDate(startStr) { // Keyed by service in the parent, so it always mounts fresh for each service. // service is a prop here — it never changes within an instance's lifetime, // which means the fetch effect can depend only on dateRange (no stale-service risk). -function BookingPanel({ service, settings, onServiceChange }) { +function BookingPanel({ service, settings }) { const [dateRange, setDateRange] = useState(null); const [fetchedEvents, setFetchedEvents] = useState(null); const [fetchLoading, setFetchLoading] = useState(false); @@ -339,33 +339,6 @@ function BookingPanel({ service, settings, onServiceChange }) { return html`
${!success ? html` -

Select Appointment Type

-
- ${TYPES.map(function (t) { - var active = service === t.id; - return html` - - `; - })} -
-
@@ -504,19 +477,43 @@ function BookingPanel({ service, settings, onServiceChange }) { } // ── Booking ─────────────────────────────────────────────────────────────── -// Thin outer shell: owns service selection, keys BookingPanel by service so -// it mounts fresh on every service change — no reset effects, no race conditions. +// Owns service selection and the type selector UI. Keys BookingPanel by +// service so it mounts fresh on every change — no reset effects, no races. +// Starts with null so no service is pre-selected. function Booking({ settings }) { - const [service, setService] = useState("diagnostic"); + const [service, setService] = useState(null); return html`
- <${BookingPanel} - key=${service} - service=${service} - settings=${settings} - onServiceChange=${setService} - /> +

Select Appointment Type

+
+ ${TYPES.map(function (t) { + var active = service === t.id; + return html` + + `; + })} +
+ ${service ? html` + <${BookingPanel} key=${service} service=${service} settings=${settings} /> + ` : null}
`; }