/
githubmirror
/
ui
Обзор
Документация
Войти
/
githubmirror
/
ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/v4/components/chart-copy-button.tsx
63 строки
1 KB
shadcn
chore: update deps (#9022)
12 дек 2025, 20:01
Не верифицирован
12 дек 2025, 20:01
86d9b00
Код
Авторство
О чём код?
"use client" import * as React from "react" import { IconCheck, IconCopy } from "@tabler/icons-react" import { trackEvent, type Event } from "@/lib/events" import { cn } from "@/lib/utils" import { Button } from "@/registry/new-york-v4/ui/button" import { Tooltip, TooltipContent, TooltipTrigger, } from "@/registry/new-york-v4/ui/tooltip" export function ChartCopyButton({ event, name, code, className, ...props }: { event: Event["name"] name: string code: string } & React.ComponentProps<typeof Button>) { const [hasCopied, setHasCopied] = React.useState(false) React.useEffect(() => { setTimeout(() => { setHasCopied(false) }, 2000) }, [hasCopied]) return ( <Tooltip> <TooltipTrigger asChild> <Button size="icon" variant="ghost" className={cn( "[&_svg]-h-3.5 h-7 w-7 rounded-[6px] [&_svg]:w-3.5", className )} onClick={() => { navigator.clipboard.writeText(code) trackEvent({ name: event, properties: { name, }, }) setHasCopied(true) }} {...props} > <span className="sr-only">Copy</span> {hasCopied ? <IconCheck /> : <IconCopy />} </Button> </TooltipTrigger> <TooltipContent className="bg-black text-white">Copy code</TooltipContent> </Tooltip> ) }