diff --git a/src/components/ClassTable.js b/src/components/ClassTable.js index 5efcfeca7..20f7a3ebb 100644 --- a/src/components/ClassTable.js +++ b/src/components/ClassTable.js @@ -3,6 +3,7 @@ import { isObject } from '@/utils/isObject' import { castArray } from '@/utils/castArray' import clsx from 'clsx' import { Heading } from '@/components/Heading' +import { Transition } from '@headlessui/react' function renderProperties( properties, @@ -69,6 +70,26 @@ export const ClassTable = memo( } }, [isCollapsed]) + const [transition, setTransition] = useState({ visible: false, top: 0 }); + + useEffect(() => { + if (transition.visible) { + const handle = window.setTimeout(() => { + setTransition({ visible: false }) + }, 1500) + return () => { + window.clearTimeout(handle) + } + } + }, [transition]) + + const handleCopyClick = (value, offsetTop) => { + navigator.clipboard.writeText(value).then(() => { + const adjustTop = 18 + setTransition({ visible: true, top: offsetTop + adjustTop }) + }); + }; + return (
| @@ -123,7 +144,7 @@ export const ClassTable = memo( )} | handleCopyClick(transformSelector(selector), offsetTop)} > {transformSelector(selector)} | @@ -169,6 +191,35 @@ export const ClassTable = memo( ) })} +
|---|