From 5ae24710e41345ffb9813a23e510d3abd1d89413 Mon Sep 17 00:00:00 2001 From: Chris Arderne Date: Wed, 19 Aug 2026 16:35:46 +0100 Subject: [PATCH] fix(webapp): use native selectable row controls (#4700) ## Summary Use native controls for sortable columns and selectable prompt versions. Table headers keep filter actions separate from sort buttons, prompt version rows expose pressed state, and a redundant deployment click interceptor is removed. Base: [#4699](https://github.com/triggerdotdev/trigger.dev/pull/4699) --- .../app/components/code/TSQLResultsTable.tsx | 20 ++++++++++++++----- .../route.tsx | 5 +---- .../route.tsx | 8 +++++--- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/apps/webapp/app/components/code/TSQLResultsTable.tsx b/apps/webapp/app/components/code/TSQLResultsTable.tsx index c1a627b8d..c3ad0ccdf 100644 --- a/apps/webapp/app/components/code/TSQLResultsTable.tsx +++ b/apps/webapp/app/components/code/TSQLResultsTable.tsx @@ -927,6 +927,8 @@ function HeaderCellContent({ const sortHighlighted = isCellHovered && !isFilterHovered; + /* oxlint-disable jsx-a11y/click-events-have-key-events -- The sortable header contains separate tooltip and filter controls that cannot be nested in a button. */ + /* oxlint-disable jsx-a11y/no-static-element-interactions -- Preserve the existing full-header pointer target rather than nesting its child controls. */ return (
{children} - + event.stopPropagation()}> {children} )} - {/* Sort indicator */} + {/* The full header remains a pointer target, while this dedicated control makes sorting keyboard-accessible without nesting the tooltip or filter controls. */} {canSort && ( - { + event.stopPropagation(); + onSortClick?.(event); + }} className={cn( - "shrink-0 transition-colors", + "shrink-0 rounded transition-colors focus-custom", sortHighlighted ? "text-text-bright" : "text-text-dimmed" )} > @@ -973,7 +981,7 @@ function HeaderCellContent({ ) : ( )} - + )} {onFilterClick && ( ); })}