fix(web): close composer menus when their controls hide#9541

merged1
composer-followups/hidden-label-width
composer-followups/popup-cleanup
openedSep 4, 2026byJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 4d ago
1 unresolved thread · Jump to file
Selected thread: apps/web/src/components/chat/ChatComposer.tsx:4442 — ### Hidden picker shortcut can immediately close **Medium Severity** <!-- DESCRIPTION START --> `openModelPicker` reveals a hidden trigger by setting `isComposerFocused` without the mobile expand in-flight guard. Expanding unmounts the collapsed prompt and the picker steals form focus, so `onBlurCapture` schedules `scheduleComposerCollapseCheck`. If that check runs before the popup is focused, focus flips back off, `composerControlsHidden` becomes true again, and the new render-time close clears `isComposerModelPickerOpen`. The model-picker shortcut then never stays open on narrow mobile layouts. <!-- DESCRIPTION END --> <!-- BUGBOT_BUG_ID: 28b0724e-77e7-4202-ab91-9cb628c842ce --> <!-- LOCATIONS START apps/web/src/components/chat/ChatComposer.tsx#L4431-L4442 apps/web/src/components/chat/ChatComposer.tsx#L3561-L3565 apps/web/src/components/chat/ChatComposer.tsx#L4648-L4651 LOCATIONS END --> <details> <summary>Additional Locations (2)</summary> - [`apps/web/src/components/chat/ChatComposer.tsx#L3561-L3565`](https://github.com/pingdotgg/t3code/blob/b150cbbffb426840dc8ac7736514e3d174b09443/apps/web/src/components/chat/ChatComposer.tsx#L3561-L3565) - [`apps/web/src/components/chat/ChatComposer.tsx#L4648-L4651`](https://github.com/pingdotgg/t3code/blob/b150cbbffb426840dc8ac7736514e3d174b09443/apps/web/src/components/chat/ChatComposer.tsx#L4648-L4651) </details> <div><a href="https://cursor.com/open?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjA1ZTFlMTMyLTFiYjAtNDhkMi05MjM4LTY5OWQ0YWI2YjRkYiIsImVuY3J5cHRpb25LZXkiOiJsM2stUVhIODRsQ1lyTXFUVkpxM2M3NENuWG8xcl9QUFAzQ1IyR1VBMFI4IiwiYnJhbmNoIjoiY29tcG9zZXItZm9sbG93dXBzL3BvcHVwLWNsZWFudXAiLCJyZXBvT3duZXIiOiJwaW5nZG90Z2ciLCJyZXBvTmFtZSI6InQzY29kZSIsInByb3ZpZGVyIjoiZ2l0aHViIn19" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-cursor-light.png"><img alt="Fix in Cursor" width="115" height="28" src="https://cursor.com/assets/images/fix-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?link=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjA1ZTFlMTMyLTFiYjAtNDhkMi05MjM4LTY5OWQ0YWI2YjRkYiIsImVuY3J5cHRpb25LZXkiOiJsM2stUVhIODRsQ1lyTXFUVkpxM2M3NENuWG8xcl9QUFAzQ1IyR1VBMFI4IiwiYnJhbmNoIjoiY29tcG9zZXItZm9sbG93dXBzL3BvcHVwLWNsZWFudXAiLCJyZXBvT3duZXIiOiJwaW5nZG90Z2ciLCJyZXBvTmFtZSI6InQzY29kZSIsInByTnVtYmVyIjo5NTQxLCJjb21taXRTaGEiOiJiMTUwY2JiZmZiNDI2ODQwZGM4YWM3NzM2NTE0ZTNkMTc0YjA5NDQzIiwicHJvdmlkZXIiOiJnaXRodWIifX0" target="_blank" rel="noopener noreferrer"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/fix-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/fix-in-web-light.png"><img alt="Fix in Web" width="99" height="28" src="https://cursor.com/assets/images/fix-in-web-dark.png"></picture></a></div> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit b150cbbffb426840dc8ac7736514e3d174b09443. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
0 / 6 viewed6 files changedLine totals unavailable