MCPcopy Create free account
hub / github.com/untitleduico/react / DropdownButtonLink

Function DropdownButtonLink

components/base/dropdown/dropdown-button-link.tsx:15–53  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

13];
14
15export const DropdownButtonLink = () => {
16 const [selectedPermission, setSelectedPermission] = useState<string>(permissions[1].id);
17
18 return (
19 <Dropdown.Root>
20 <AriaButton
21 className={({ isPressed, isFocusVisible }) =>
22 cx(
23 "flex cursor-pointer items-center gap-1 rounded text-sm font-semibold text-tertiary outline-0 outline-offset-2 outline-focus-ring",
24 (isPressed || isFocusVisible) && "outline-2",
25 )
26 }
27 >
28 {permissions.find((permission) => permission.id === selectedPermission.toString())?.label}
29 <ChevronDown className="size-3 shrink-0 stroke-3 text-fg-quaternary" />
30 </AriaButton>
31
32 <Dropdown.Popover className="w-40">
33 <Dropdown.Menu>
34 <Dropdown.Section
35 selectionMode="single"
36 selectedKeys={[selectedPermission]}
37 onSelectionChange={(keys) => setSelectedPermission(typeof keys === "string" ? keys : (keys.keys().toArray()[0] as string))}
38 >
39 {permissions.map((permission) => (
40 <Dropdown.Item key={permission.id} id={permission.id}>
41 {permission.label}
42 </Dropdown.Item>
43 ))}
44 </Dropdown.Section>
45 <Dropdown.Separator />
46 <Dropdown.Section>
47 <Dropdown.Item icon={Trash01}>Delete</Dropdown.Item>
48 </Dropdown.Section>
49 </Dropdown.Menu>
50 </Dropdown.Popover>
51 </Dropdown.Root>
52 );
53};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected