Fix: copy code triggers UI for all code blocks

Fixes #24
This commit is contained in:
Jing Hua 2023-03-09 16:14:07 +08:00
parent 0d629a614a
commit 68562b699f
2 changed files with 3 additions and 4 deletions

View file

@ -38,7 +38,7 @@ const ChatContent = () => {
} }
}, [generating]); }, [generating]);
const { handleSubmit, error } = useSubmit(); const { error } = useSubmit();
return ( return (
<div className='flex-1 overflow-hidden'> <div className='flex-1 overflow-hidden'>

View file

@ -69,9 +69,7 @@ const ContentView = React.memo(
messageIndex: number; messageIndex: number;
}) => { }) => {
const { handleSubmit } = useSubmit(); const { handleSubmit } = useSubmit();
const [isDelete, setIsDelete] = useState<boolean>(false); const [isDelete, setIsDelete] = useState<boolean>(false);
const [copied, setCopied] = useState<boolean>(false);
const currentChatIndex = useStore((state) => state.currentChatIndex); const currentChatIndex = useStore((state) => state.currentChatIndex);
const setChats = useStore((state) => state.setChats); const setChats = useStore((state) => state.setChats);
const lastMessageIndex = useStore((state) => const lastMessageIndex = useStore((state) =>
@ -121,8 +119,9 @@ const ContentView = React.memo(
components={{ components={{
code({ node, inline, className, children, ...props }) { code({ node, inline, className, children, ...props }) {
if (inline) return <code>{children}</code>; if (inline) return <code>{children}</code>;
let highlight; const [copied, setCopied] = useState<boolean>(false);
let highlight;
const match = /language-(\w+)/.exec(className || ''); const match = /language-(\w+)/.exec(className || '');
const lang = match && match[1]; const lang = match && match[1];
const isMatch = lang && hljs.getLanguage(lang); const isMatch = lang && hljs.getLanguage(lang);