useClipboard
useClipboard
は、値をクリップボードにコピーする処理を行うカスタムフックです。
インポート
import { useClipboard } from "@yamada-ui/react"
使い方
編集可能な例
const { onCopy, value, setValue, hasCopied } = useClipboard() return ( <> <HStack gap="md"> <Input placeholder="text to be copied..." value={value} onChange={(e) => setValue(e.target.value)} /> <Button onClick={onCopy}>{hasCopied ? "Copied!" : "Copy"}</Button> </HStack> <Editable placeholder="Paste here" mt="md"> <EditablePreview width="full" /> <EditableInput /> </Editable> </> )
初期値を使う
編集可能な例
const { onCopy, value, setValue, hasCopied } = useClipboard("initial value") return ( <> <HStack gap="md"> <Input placeholder="text to be copied..." value={value} onChange={(e) => setValue(e.target.value)} /> <Button onClick={onCopy}>{hasCopied ? "Copied!" : "Copy"}</Button> </HStack> <Editable placeholder="Paste here" mt="md"> <EditablePreview width="full" /> <EditableInput /> </Editable> </> )
タイムアウトを制御する
編集可能な例
const { onCopy, value, setValue, hasCopied } = useClipboard("", 5000) return ( <> <HStack gap="md"> <Input placeholder="text to be copied..." value={value} onChange={(e) => setValue(e.target.value)} /> <Button onClick={onCopy}>{hasCopied ? "Copied!" : "Copy"}</Button> </HStack> <Editable placeholder="Paste here" mt="md"> <EditablePreview width="full" /> <EditableInput /> </Editable> </> )
指定した値をコピーする
編集可能な例
const { onCopy, hasCopied } = useClipboard() const value = "孫悟空" return ( <HStack gap="md"> <Input value={value} isReadOnly /> <Button onClick={() => onCopy(value)}> {hasCopied ? "Copied!" : "Copy"} </Button> </HStack> )
GitHubでこのページを編集する