# fix\(web\): repair the Browser surface card and collapse the profile menu row · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/bd58fabbaba23e9a97fa40eb0f05e3bed26c4212)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: bd58fabbaba23e9a97fa40eb0f05e3bed26c4212

Requested commit: bd58fabbaba23e9a97fa40eb0f05e3bed26c4212

Commit: bd58fabbaba23e9a97fa40eb0f05e3bed26c4212

Tree: ab3e111d8b3c5bb484786e155a83059374d68931

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(web): repair the Browser surface card and collapse the profile menu row

Widening `onAddBrowser` to `(profileId?: string)` broke the empty-state
Browser card: it is passed straight to a DOM click handler, so React handed
the MouseEvent in as the profile id and the open silently failed schema
validation.

Fixed structurally rather than at the call site — `onAddBrowser` goes back to
taking no arguments, and choosing a profile is a separate
`onAddBrowserInProfile(profileId)`. The type now rejects wiring the profile
variant to a DOM handler, so this cannot recur; adding it surfaced all four
call sites immediately.

The "+" menu is one row again. The submenu trigger is itself clickable and
opens the default profile, with hover or arrow revealing the rest, so the
common case stays a single click. The menu is controlled so that action can
dismiss it, which a submenu trigger does not do on its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

```

## Parents

- [b5435d27c91f3c7b9a156a6031b450f5e2543c93](https://git.cafe/pingdotgg/t3code/commit/b5435d27c91f3c7b9a156a6031b450f5e2543c93?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/bd58fabbaba23e9a97fa40eb0f05e3bed26c4212?format=markdown)
