Objective
- Make the online scheduler calendar show all bookable times on busy days, not only the first five.
- Fix the “+N more” overflow control on the Choose Your Time Slot step so it actually expands (or is replaced with working UX).
- Unblock Top Choice Inspection Services testing and launch: 1:00 PM (and other times) are available on inspector schedules but hidden behind a non-functional “+2 more” label.
Background
- Neil reported on the Top Choice online scheduler: at the time-picking step, a control that looks like an expander (“+2” / “+1”) does not respond when clicked.
- 1:00 PM availability is missing from the calendar even though Sean and David both have 1:00 on the internal schedule.
- Top Choice uses many custom start times, so a single day often has more than five distinct slot times from
schedule/optimal-slots.
- Slots are returned by the API; the calendar truncates display to five per day and shows static “+N more” text with no click handler—users interpret it as broken.
- Repro walkthrough: Loom — Top Choice Online Scheduler Time Slot Not Showing
Transcript summary (Neil):
- On Top Choice online scheduler, reached time selection.
- “Plus 2” / “plus 1” expander GUI does not work.
- 1:00 not shown; Sean and David both have 1:00 on the schedule.
- Expectation: clicking +2 / +1 should expand to show those times.
Scope
Frontend (attik-frontend)
- Public flow:
/scheduler → Choose Your Time Slot in src/app/scheduler/slots/SlotsStep.tsx, rendered by src/app/scheduler/slots/CalendarView.tsx.
src/app/scheduler/constants.ts sets MAX_VISIBLE_SLOTS_PER_DAY = 5; renderDayCell only maps slotsForDay.slice(0, MAX_VISIBLE_SLOTS_PER_DAY).
- When
slotsForDay.length > MAX_VISIBLE_SLOTS_PER_DAY, UI renders a non-interactive label (+{count} more) around lines 694–697 in CalendarView.tsx—no expand state, no onClick / onPress.
- Slot times are grouped by exact
datetime in slotsByDate; each custom start time counts toward the five-slot cap.
SlotsStep passes autoSelectTopInspector={true}—separate from this bug: affects inspector picker on multi-inspector rows, not revealing hidden times.
- In scope: working expand/collapse per day (or equivalent) so overflow times (e.g. 1:00 PM) are selectable; accessible button semantics for overflow.
- Decision needed: scroll within day cell vs. expand-in-place vs. higher cap for companies with dense slot grids.
Backend (attik-backend)
GET schedule/optimal-slots in src/routes/schedule.ts supplies slots; no change required for this specific UI bug unless investigation shows 1:00 absent from API (unlikely per report).
Out of scope (confirmed not the root cause)
- Missing API availability / service-area filtering as primary cause.
- Pay at Close and manual workorder payments.
References
- Loom recording
- Calendar UI:
attik-frontend/src/app/scheduler/slots/CalendarView.tsx
- Slot step:
attik-frontend/src/app/scheduler/slots/SlotsStep.tsx
- Visible cap:
attik-frontend/src/app/scheduler/constants.ts
- Slot API:
attik-backend/src/routes/schedule.ts (/optimal-slots)