fix(web): prevent composer controls overlap on narrow windows (make plan sidebar responsive)#1198
Conversation
- render Plan sidebar in a right-side sheet under 1180px - reuse shared right-panel layout constants for both plan and diff panels - add sidebar/sheet mode support to PlanSidebar styling and close handling
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can enable review details to help with troubleshooting, context usage and more.Enable the |
You can view my issues and PRs at https://pr-navigator.pages.dev/t3code-utkarsh
Fixes #1197
What Changed
This PR makes the plan sidebar follow the same responsive behavior as the diff panel.
modeprop toPlanSidebarso the same component can render correctly in both inline and sheet contextsMade it turn into a sheet like the diff panel instead of just adjusting the composer controls, because this improves the whole experience on small windows and makes the design consistent, while also fixing the problem.
Why
Before this change, the plan sidebar always consumed inline width as a fixed column. On smaller viewports that made the chat area and composer noticeably cramped, while the diff panel already handled the same problem better by switching to a sheet.
Using the same responsive pattern for both panels keeps the UI more consistent and avoids penalizing smaller layouts.
UI Changes
Before:

(Video shared by Julius)
https://github.com/user-attachments/assets/6d83f027-ec3e-4026-8c8a-6130cc70a932
After:

Checklist
Note
Make plan sidebar responsive by rendering it as a sheet overlay on narrow windows
modeprop toPlanSidebar("sidebar"|"sheet") to switch between fixed-width sidebar styling and full-width sheet styling.RIGHT_PANEL_INLINE_LAYOUT_MEDIA_QUERY,RIGHT_PANEL_SHEET_CLASS_NAME) intorightPanelLayout.tsand reuses them for the existing diff panel sheet in_chat.$threadId.tsx.Macroscope summarized b364790.