diff --git a/packages/trace-viewer/src/ui/copyToClipboard.tsx b/packages/trace-viewer/src/ui/copyToClipboard.tsx index 768e603367..1eb989d08e 100644 --- a/packages/trace-viewer/src/ui/copyToClipboard.tsx +++ b/packages/trace-viewer/src/ui/copyToClipboard.tsx @@ -47,28 +47,10 @@ export const CopyToClipboardTextButton: React.FunctionComponent<{ value: string | (() => Promise), description: string, }> = ({ value, description }) => { - const [copied, setCopied] = React.useState(); - - const handleCopy = React.useCallback(() => { - const valuePromise = typeof value === 'function' ? value() : Promise.resolve(value); - valuePromise.then(value => { - navigator.clipboard.writeText(value).then(() => { - setCopied(true); - setTimeout(() => { - setCopied(undefined); - }, 3000); - }, () => { - setCopied(false); - }); - }, () => { - setCopied(false); - }); - + const handleCopy = React.useCallback(async () => { + const valueToCopy = typeof value === 'function' ? await value() : value; + await navigator.clipboard.writeText(valueToCopy); }, [value]); - return - {copied === true && 'Copied!'} - {copied === false && 'Copy failed.'} - {copied === undefined && description} - ; + return {description}; };