08-Jun-2026 — show "Our next walk" pill on the soonest walk ref #283
The backend fetch that determined the next walk (refreshNextWalkId) was
never called, so nextWalkId stayed undefined and the match condition fell
through to walk.groupEvent?.id === undefined, which is true for any walk
with a missing groupEvent.id. The pill therefore attached to an arbitrary
walk instead of the chronologically next one.
Replace the ID round-trip with date-based logic: the backend reports when
the next walk is and each card shows the pill only when its own start date
matches.
- nextWalkId controller -> nextWalkStartDate: earliest upcoming GROUP_WALK
(from start of today, so a walk later today still counts) returns its
start_date_time.
- Route /next-walk-id -> /next-walk-start-date.
- Query service fetchNextWalkId -> fetchNextWalkStartDate.
- isNextWalk compares asValueNoTime(start_date_time) === nextWalkStartDate
only; no ID matching or completeness check.
- The fetch is now wired up, firing when the group config loads.