Files
bot/apps/builder/src/components/CopyButton.tsx

30 lines
685 B
TypeScript
Raw Normal View History

import React, { useEffect } from 'react'
2021-12-23 15:20:21 +01:00
import { ButtonProps, Button, useClipboard } from '@chakra-ui/react'
interface CopyButtonProps extends ButtonProps {
textToCopy: string
onCopied?: () => void
}
export const CopyButton = (props: CopyButtonProps) => {
const { textToCopy, onCopied, ...buttonProps } = props
const { hasCopied, onCopy, setValue } = useClipboard(textToCopy)
useEffect(() => {
setValue(textToCopy)
}, [setValue, textToCopy])
2021-12-23 15:20:21 +01:00
return (
<Button
isDisabled={hasCopied}
onClick={() => {
onCopy()
if (onCopied) onCopied()
}}
{...buttonProps}
>
{!hasCopied ? 'Copy' : 'Copied'}
</Button>
)
}