
Menu whose open/closed state is managed externally and reflected in the trigger label.
@flx
registry/patterns/dropdown/dropdown-13.tsx
'use client'
import { useState } from 'react'
import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
export function Dropdown13() {
const [open, setOpen] = useState(false)
return (
<div className="flex flex-col items-center gap-3">
<DropdownMenu open={open} onOpenChange={setOpen}>
<DropdownMenuTrigger
render={
<Button variant="outline" size="sm">
{open ? 'Menu open' : 'Menu closed'}
</Button>
}
/>
<DropdownMenuContent align="start" className="w-44">
<DropdownMenuGroup>
<DropdownMenuLabel>Controlled</DropdownMenuLabel>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem>Profile</DropdownMenuItem>
<DropdownMenuItem>Settings</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
<p className="text-muted-foreground text-sm">
State: {open ? 'open' : 'closed'}
</p>
</div>
)
}






























