Files
upstream-shadcn-ui/apps/v4/examples/aria/context-menu-radio.tsx
upstream-mirror 1416db152c
All checks were successful
Release / Create Version PR or Publish Stable Release (push) Has been skipped
Release / Publish Prerelease to NPM (push) Has been skipped
Monitor Registries / Monitor registry health (push) Has been skipped
snapshot of https://github.com/shadcn-ui/ui.git (main, 2026-09-15; blobs > 131072B omitted)
2026-09-15 22:44:43 +05:00

67 lines
2.0 KiB
TypeScript

"use client"
import * as React from "react"
import { Pressable } from "react-aria-components"
import {
ContextMenu,
ContextMenuGroup,
ContextMenuItem,
ContextMenuLabel,
ContextMenuSeparator,
ContextMenuTrigger,
} from "@/styles/aria-nova/ui/context-menu"
export function ContextMenuRadio() {
const [user, setUser] = React.useState("pedro")
const [theme, setTheme] = React.useState("light")
return (
<ContextMenuTrigger>
<Pressable>
<div
role="button"
className="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm"
>
<span className="hidden pointer-fine:inline-block">
Right click here
</span>
<span className="hidden pointer-coarse:inline-block">
Long press here
</span>
</div>
</Pressable>
<ContextMenu>
<ContextMenuGroup
selectionMode="single"
selectedKeys={[user]}
onSelectionChange={(keys) =>
setUser(
keys === "all" ? "pedro" : (keys.values().next().value as string)
)
}
>
<ContextMenuLabel>People</ContextMenuLabel>
<ContextMenuItem id="pedro">Pedro Duarte</ContextMenuItem>
<ContextMenuItem id="colm">Colm Tuite</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup
selectionMode="single"
selectedKeys={[theme]}
onSelectionChange={(keys) =>
setTheme(
keys === "all" ? "system" : (keys.values().next().value as string)
)
}
>
<ContextMenuLabel>Theme</ContextMenuLabel>
<ContextMenuItem id="light">Light</ContextMenuItem>
<ContextMenuItem id="dark">Dark</ContextMenuItem>
<ContextMenuItem id="system">System</ContextMenuItem>
</ContextMenuGroup>
</ContextMenu>
</ContextMenuTrigger>
)
}