Skip to content

Commit a5684ed

Browse files
committed
RBAC: preserve render prop in SelectItem outside Combobox context
SelectLinkItem passes render={<Link>} so the row navigates on click. In non-Combobox Selects (most use cases — the role picker on the Teams page, etc.) SelectItem was overriding render to undefined, silently dropping the Link wrapper. Pass props.render through verbatim when there's no Combobox; wrap in ComboboxItem only when one's present.
1 parent 6008f59 commit a5684ed

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

apps/webapp/app/components/primitives/Select.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,15 @@ export function SelectItem({
463463
...props
464464
}: SelectItemProps) {
465465
const combobox = Ariakit.useComboboxContext();
466-
const render = combobox ? <Ariakit.ComboboxItem render={props.render} /> : undefined;
466+
// In a Combobox context we wrap the caller's render in ComboboxItem
467+
// so combobox keyboard nav still works. Outside a Combobox we pass
468+
// the render through verbatim — without this, callers like
469+
// SelectLinkItem (which uses render to swap in a <Link>) get their
470+
// render prop silently dropped, which is why those rows looked
471+
// clickable but didn't navigate.
472+
const render = combobox
473+
? <Ariakit.ComboboxItem render={props.render} />
474+
: props.render;
467475
const ref = React.useRef<HTMLDivElement>(null);
468476
const select = Ariakit.useSelectContext();
469477
const selectValue = select?.useState("value");

0 commit comments

Comments
 (0)