@@ -322,22 +322,42 @@ export function InboxSignalsTab() {
322322 direction = "column"
323323 tabIndex = { 0 }
324324 className = "outline-none"
325+ // Clicking a row/button/checkbox would normally move browser focus to that
326+ // element, losing the container's focus and breaking arrow-key navigation.
327+ // Intercept mousedown to redirect focus back to the container instead.
328+ // Text fields are exempt so the search box can still receive focus normally.
325329 onMouseDownCapture = { ( e ) => {
326330 const target = e . target as HTMLElement ;
327331 if (
328332 target . closest (
329- "[data-report-id], button, input, select, textarea, [role='checkbox']" ,
333+ "input, textarea, select, [contenteditable='true']" ,
334+ )
335+ ) {
336+ return ;
337+ }
338+ if (
339+ target . closest (
340+ "[data-report-id], button, [role='checkbox']" ,
330341 )
331342 ) {
332343 focusListPane ( ) ;
333344 }
334345 } }
346+ // Same redirect for focus arriving via keyboard (Tab) — if focus lands
347+ // inside a row element rather than on the container itself, pull it back up.
335348 onFocusCapture = { ( e ) => {
336349 const target = e . target as HTMLElement ;
350+ if (
351+ target . closest (
352+ "input, textarea, select, [contenteditable='true']" ,
353+ )
354+ ) {
355+ return ;
356+ }
337357 if (
338358 target !== leftPaneRef . current &&
339359 target . closest (
340- "[data-report-id], button, input, select, textarea, [role='checkbox']" ,
360+ "[data-report-id], button, [role='checkbox']" ,
341361 )
342362 ) {
343363 focusListPane ( ) ;
@@ -441,18 +461,21 @@ export function InboxSignalsTab() {
441461 display : "flex" ,
442462 alignItems : "center" ,
443463 justifyContent : "center" ,
464+ pointerEvents : "none" ,
444465 background :
445466 "linear-gradient(to bottom, transparent 0%, var(--color-background) 30%)" ,
446467 } }
447468 >
448- { ! hasSignalSources ? (
449- < WelcomePane onEnableInbox = { ( ) => setSourcesDialogOpen ( true ) } />
450- ) : (
451- < WarmingUpPane
452- onConfigureSources = { ( ) => setSourcesDialogOpen ( true ) }
453- enabledProducts = { enabledProducts }
454- />
455- ) }
469+ < Box style = { { pointerEvents : "auto" } } >
470+ { ! hasSignalSources ? (
471+ < WelcomePane onEnableInbox = { ( ) => setSourcesDialogOpen ( true ) } />
472+ ) : (
473+ < WarmingUpPane
474+ onConfigureSources = { ( ) => setSourcesDialogOpen ( true ) }
475+ enabledProducts = { enabledProducts }
476+ />
477+ ) }
478+ </ Box >
456479 </ Box >
457480 </ Box >
458481 ) }
0 commit comments