feat(calendar): use global right sidebar in Day view - #266
Merged
Conversation
Delete the in-page right sidebar (mini calendar + today's events) from Calendar Day view and drive the global right sidebar instead. Add openForDayView/closeForDayView to DayPanelContext with an autoMode flag so a manually-opened panel stays sticky across view changes, while a Day-view-triggered auto-open closes when the user leaves Day view.
h4yfans
added a commit
that referenced
this pull request
Apr 17, 2026
PR #266 (d692b64) removed the in-page right sidebar that previously surfaced all-day projected items (tasks, reminders, user-created all-day events). The replacement global Day Panel is a fixed sibling of the calendar page, so all-day items vanished from the Day view's main surface — breaking standard calendar UX (create all-day event, it disappears) and shard 1/3 e2e (Due launch brief not found inside [data-testid=calendar-page]). Render a compact "All day" strip above the hour grid, inside the calendar-view testid, using the existing CalendarItemChip.
h4yfans
added a commit
that referenced
this pull request
May 6, 2026
h4yfans
added a commit
that referenced
this pull request
May 6, 2026
feat(calendar): use global right sidebar in Day view
h4yfans
added a commit
that referenced
this pull request
May 6, 2026
PR #266 (d692b64) removed the in-page right sidebar that previously surfaced all-day projected items (tasks, reminders, user-created all-day events). The replacement global Day Panel is a fixed sibling of the calendar page, so all-day items vanished from the Day view's main surface — breaking standard calendar UX (create all-day event, it disappears) and shard 1/3 e2e (Due launch brief not found inside [data-testid=calendar-page]). Render a compact "All day" strip above the hour grid, inside the calendar-view testid, using the existing CalendarItemChip.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Delete the in-page right sidebar (mini calendar + "Today's events") from the Calendar Day view and drive the app's global right sidebar instead. The global sidebar auto-opens when the user enters Day view and auto-closes when leaving — unless the user had opened it manually, in which case it stays open (sticky user intent).
Why
Having two sidebars showing the same information (mini calendar + day events) was redundant and inconsistent. Calendar already relies on the global right sidebar elsewhere; Day view is now aligned with that pattern.
How
DayPanelContextgains two new actions:openForDayView(date)andcloseForDayView(). An internalautoModeRef(non-reactiveuseRef) tracks whether the current open state came from Day-view auto-open vs. a manual user action. Manualopen/close/togglealways clear auto-mode so the user's explicit intent wins.openForDayViewis a no-op when the panel is already open (preserves the sticky-user-open case).closeForDayViewonly closes when auto-mode is true.CalendarPagewires two small effects: one toggles the panel onviewtransitions; the other syncsselectedDatetoanchorDatewhile in Day view so the global panel follows Prev/Next/Today navigation.CalendarDayViewloses its<CalendarMiniMonth>+ "Today's events" column, plus the now-deadminiMonthAnchorstate andonAnchorChangeprop (confirmed dead — shell never forwarded it to Day view).timedItemsfilter keeps the originaltoLocalDateKey(startAt) === anchorDate && !isAllDayguard so events spilling in from adjacent days are not rendered on the grid.Trade-off: chose two
useEffects over wiringsetDateinto everyanchorDatemutator (Prev/Next/Today/onAnchorChange). Effects add one lint warning but stay robust if a future change introduces a new anchor-date path.Type
feat— new featurefix— bug fixrefactor— restructure without behavior changestyle— visual/UI onlyperf— performance improvementtest— adding or updating testschore— tooling, deps, configdocs— documentation onlyci— CI/CD changesTest plan
Manual scenarios to walk through in
pnpm dev:anchorDate. Click Week ⇒ closes. Click Day ⇒ opens again.anchorDate.Checklist