Files
DefectingCat.github.io/components/mdx/pre.tsx
2023-12-26 11:27:36 +08:00

32 lines
669 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 shadow-card')} {...props}>
{children}
<CopyCode />
</pre>
</>
);
};
export default memo(Pre);