on 6bf0691 help sign in
bridge/src/components/copiable/CopyButton.jsx
29 lines 598 B history raw
1import React from 'react';
2import cn from 'classnames';
3import { LinkButton } from 'indigo-react';
5import useCopiable from 'lib/useCopiable';
7const renderDefaultCopyText = didCopy => (didCopy ? 'Copied!' : 'Copy');
9export default function CopyButton({
10 as: As = LinkButton,
11 text,
12 children = renderDefaultCopyText,
13 className = '',
14 ...rest
15}) {
16 const [doCopy, didCopy] = useCopiable(text);
18 return (
19 <As
20 onClick={doCopy}
21 className={cn(className, {
22 black: !didCopy,
23 green3: didCopy,
24 })}
25 {...rest}>
26 {children(didCopy)}
27 </As>
28 );