/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/web/src/components/share/copy-button.tsx
36 строк
1 KB
Adam
wip(docs): i18n (#12681)
09 фев 2026, 20:34
Не верифицирован
09 фев 2026, 20:34
dc53086
Код
Авторство
О чём код?
import { createSignal } from "solid-js" import { IconClipboard, IconCheckCircle } from "../icons" import { useShareMessages } from "./common" import styles from "./copy-button.module.css" interface CopyButtonProps { text: string } export function CopyButton(props: CopyButtonProps) { const [copied, setCopied] = createSignal(false) const messages = useShareMessages() function handleCopyClick() { if (props.text) { navigator.clipboard.writeText(props.text).catch((err) => console.error("Copy failed", err)) setCopied(true) setTimeout(() => setCopied(false), 2000) } } return ( <div data-component="copy-button" class={styles.root}> <button type="button" onClick={handleCopyClick} data-copied={copied() ? true : undefined} aria-label={copied() ? messages.copied : messages.copy} title={copied() ? messages.copied : messages.copy} > {copied() ? <IconCheckCircle width={16} height={16} /> : <IconClipboard width={16} height={16} />} </button> </div> ) }