Files
DefectingCat.github.io/components/mdx/pre.tsx
DefectingCat cf0c91edb6 refactor copy code button
change pre component to server component
2023-12-26 11:05:06 +08:00

32 lines
657 B
TypeScript

import clsx from 'clsx';
import CopyButton from 'components/post/copy-button';
import CopyCode from 'components/post/copy-code';
import useCopyToClipboard from 'lib/hooks/use-copy-to-clipboard';
import {
DetailedHTMLProps,
HTMLAttributes,
memo,
useCallback,
useRef,
} from 'react';
type Props = {} & DetailedHTMLProps<
HTMLAttributes<HTMLPreElement>,
HTMLPreElement
>;
const Pre = ({ ...rest }: Props) => {
const { children, className, ...props } = rest;
return (
<>
<pre className={clsx(className, 'relative group')} {...props}>
{children}
<CopyCode />
</pre>
</>
);
};
export default memo(Pre);