2020-11-29 01:25:48 -07:00
|
|
|
import dynamic from 'next/dynamic';
|
|
|
|
import { Button, Icon, Tooltip, useClipboard } from '@chakra-ui/react';
|
|
|
|
|
|
|
|
const Copy = dynamic<MeronexIcon>(() => import('@meronex/icons/fi').then(i => i.FiCopy));
|
|
|
|
const Check = dynamic<MeronexIcon>(() => import('@meronex/icons/fi').then(i => i.FiCheck));
|
|
|
|
|
|
|
|
import type { TCopyButton } from './types';
|
|
|
|
|
|
|
|
export const CopyButton = (props: TCopyButton) => {
|
|
|
|
const { copyValue, ...rest } = props;
|
|
|
|
const { onCopy, hasCopied } = useClipboard(copyValue);
|
|
|
|
return (
|
|
|
|
<Tooltip hasArrow label="Copy Output" placement="top">
|
|
|
|
<Button
|
|
|
|
as="a"
|
|
|
|
mx={1}
|
|
|
|
size="sm"
|
|
|
|
variant="ghost"
|
|
|
|
onClick={onCopy}
|
2020-12-22 02:00:36 -07:00
|
|
|
colorScheme="secondary"
|
2020-11-29 01:25:48 -07:00
|
|
|
{...rest}>
|
2020-12-17 16:37:36 -07:00
|
|
|
<Icon as={hasCopied ? Check : Copy} boxSize="16px" />
|
2020-11-29 01:25:48 -07:00
|
|
|
</Button>
|
|
|
|
</Tooltip>
|
|
|
|
);
|
|
|
|
};
|