@neynar/ui
Version:
React UI component library built on shadcn/ui and Tailwind CSS
61 lines (50 loc) • 1.51 kB
Markdown
# ContextMenuSub
**Type**: component
ContextMenuSub - Container for sub-menu functionality Wraps a sub-menu trigger and its content to create nested menu structures. Enables hierarchical organization of menu items with proper state management for opening and closing sub-menus.
## JSX Usage
```jsx
import { ContextMenuSub } from '@neynar/ui';
<ContextMenuSub
open={true}
onOpenChange={handleOpenChange}
>
{/* Your content here */}
</ContextMenuSub>
```
## Component Props
### open
- **Type**: `boolean`
- **Required**: No
- **Description**: Controlled open state of the sub-menu
### onOpenChange
- **Type**: `(open: boolean) => void`
- **Required**: No
- **Description**: Callback fired when sub-menu open state changes
### children
- **Type**: `React.ReactNode`
- **Required**: Yes
- **Description**: Sub-menu trigger and content components
## Examples
### Example 1
```tsx
<ContextMenuSub>
<ContextMenuSubTrigger>Share</ContextMenuSubTrigger>
<ContextMenuSubContent>
<ContextMenuItem>Email</ContextMenuItem>
<ContextMenuItem>Copy Link</ContextMenuItem>
</ContextMenuSubContent>
</ContextMenuSub>
```
### Example 2
```tsx
// Controlled sub-menu
const [subOpen, setSubOpen] = useState(false)
<ContextMenuSub open={subOpen} onOpenChange={setSubOpen}>
<ContextMenuSubTrigger>More Actions</ContextMenuSubTrigger>
<ContextMenuSubContent>
<ContextMenuItem onClick={() => setSubOpen(false)}>
Archive
</ContextMenuItem>
</ContextMenuSubContent>
</ContextMenuSub>
```