diff --git a/app/package-lock.json b/app/package-lock.json index f1a02b1..681f5c5 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -6609,7 +6609,8 @@ "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { "version": "1.1.0", "inBundle": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@parcel/watcher-win32-arm64": { "version": "2.4.1", @@ -39659,7 +39660,8 @@ "dependencies": { "napi-wasm": { "version": "1.1.0", - "bundled": true + "bundled": true, + "peer": true } } }, diff --git a/app/src/components/Copyable.tsx b/app/src/components/Copyable.tsx index aed81ea..89befcd 100644 --- a/app/src/components/Copyable.tsx +++ b/app/src/components/Copyable.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; import IconButton from "@mui/material/IconButton"; import Tooltip from "@mui/material/Tooltip"; import ContentCopyIcon from "@mui/icons-material/ContentCopy"; @@ -11,19 +11,28 @@ export interface CopyableProps { href?: boolean; } -async function handleCopy(value: string) { +async function handleCopy(value: string, onSuccess: () => void) { await navigator.clipboard.writeText(value); + onSuccess(); } function Copyable({ value, label, tooltip, href }: CopyableProps) { const { themeColor } = useTheme(); + const [copied, setCopied] = useState(false); + + const handleCopyClick = async () => { + await handleCopy(value, () => { + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }); + }; return (
-