feat(calendar): side-by-side layout for overlapping appointments (PMS-598) #396
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/PMS-598-overlap-appointments"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PMS-598 (parent PMS-556 Calendar smoke)
When appointments shared a time slot, only one was visible: the positioned blocks all spanned the full column width and stacked, and the buttons had no
keyso Dioxus could collapse siblings.Fix (frontend only)
lanes_from_intervals/overlap_lanes+lane_h_geometry): an interval-partitioning pass assigns each appointment a column within its overlap cluster; the slot is split1/lane_countwide so concurrent events sit side by side. Applied to the week and day time grids. Unit-tested (empty/single, sequential = one lane, two-overlap, freed-lane reuse, disjoint clusters).key="{appt.id}"so Dioxus keys siblings by identity.Commits (small, logical)
Scope
AC targets Week and Day (now side-by-side + clickable) and Month (each appointment its own chip, subject to the existing "+N more" cap). The dispatch board lays events horizontally by time per row; this PR gives it stable keys (vertical lane-splitting there is a larger, separate layout change if ever needed).
Verified
5 lane unit tests pass; dx build clean (33s), no warnings, fmt clean. Dev app serves this branch.
Test
Create two appointments at the same time on one day: in Week and Day they render in two columns, both clickable; in Month both appear as separate chips.
🤖 Generated with Claude Code