Skip to content

Commit 445d9b0

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 6f87bd4 commit 445d9b0

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
@@ -460,7 +460,15 @@ export function SelectItem({
460460
...props
461461
}: SelectItemProps) {
462462
const combobox = Ariakit.useComboboxContext();
463-
const render = combobox ? <Ariakit.ComboboxItem render={props.render} /> : undefined;
463+
// In a Combobox context we wrap the caller's render in ComboboxItem
464+
// so combobox keyboard nav still works. Outside a Combobox we pass
465+
// the render through verbatim — without this, callers like
466+
// SelectLinkItem (which uses render to swap in a <Link>) get their
467+
// render prop silently dropped, which is why those rows looked
468+
// clickable but didn't navigate.
469+
const render = combobox
470+
? <Ariakit.ComboboxItem render={props.render} />
471+
: props.render;
464472
const ref = React.useRef<HTMLDivElement>(null);
465473
const select = Ariakit.useSelectContext();
466474
const selectValue = select?.useState("value");

0 commit comments

Comments
 (0)