Performance (#602)
This commit is contained in:
parent
24068ea5aa
commit
c959264f93
|
@ -28,11 +28,11 @@ import HomeContext from '@/pages/api/home/home.context';
|
||||||
import Spinner from '../Spinner';
|
import Spinner from '../Spinner';
|
||||||
import { ChatInput } from './ChatInput';
|
import { ChatInput } from './ChatInput';
|
||||||
import { ChatLoader } from './ChatLoader';
|
import { ChatLoader } from './ChatLoader';
|
||||||
import { ChatMessage } from './ChatMessage';
|
|
||||||
import { ErrorMessageDiv } from './ErrorMessageDiv';
|
import { ErrorMessageDiv } from './ErrorMessageDiv';
|
||||||
import { ModelSelect } from './ModelSelect';
|
import { ModelSelect } from './ModelSelect';
|
||||||
import { SystemPrompt } from './SystemPrompt';
|
import { SystemPrompt } from './SystemPrompt';
|
||||||
import { TemperatureSlider } from './Temperature';
|
import { TemperatureSlider } from './Temperature';
|
||||||
|
import { MemoizedChatMessage } from './MemoizedChatMessage';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
stopConversationRef: MutableRefObject<boolean>;
|
stopConversationRef: MutableRefObject<boolean>;
|
||||||
|
@ -464,7 +464,7 @@ export const Chat = memo(({ stopConversationRef }: Props) => {
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{selectedConversation?.messages.map((message, index) => (
|
{selectedConversation?.messages.map((message, index) => (
|
||||||
<ChatMessage
|
<MemoizedChatMessage
|
||||||
key={index}
|
key={index}
|
||||||
message={message}
|
message={message}
|
||||||
messageIndex={index}
|
messageIndex={index}
|
||||||
|
|
|
@ -23,7 +23,7 @@ import rehypeMathjax from 'rehype-mathjax';
|
||||||
import remarkGfm from 'remark-gfm';
|
import remarkGfm from 'remark-gfm';
|
||||||
import remarkMath from 'remark-math';
|
import remarkMath from 'remark-math';
|
||||||
|
|
||||||
interface Props {
|
export interface Props {
|
||||||
message: Message;
|
message: Message;
|
||||||
messageIndex: number;
|
messageIndex: number;
|
||||||
onEdit?: (editedMessage: Message) => void
|
onEdit?: (editedMessage: Message) => void
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import { FC, memo } from "react";
|
||||||
|
import { ChatMessage, Props } from "./ChatMessage";
|
||||||
|
|
||||||
|
export const MemoizedChatMessage: FC<Props> = memo(
|
||||||
|
ChatMessage,
|
||||||
|
(prevProps, nextProps) => (
|
||||||
|
prevProps.message.content === nextProps.message.content
|
||||||
|
)
|
||||||
|
);
|
|
@ -1,4 +1,9 @@
|
||||||
import { FC, memo } from 'react';
|
import { FC, memo } from 'react';
|
||||||
import ReactMarkdown, { Options } from 'react-markdown';
|
import ReactMarkdown, { Options } from 'react-markdown';
|
||||||
|
|
||||||
export const MemoizedReactMarkdown: FC<Options> = memo(ReactMarkdown);
|
export const MemoizedReactMarkdown: FC<Options> = memo(
|
||||||
|
ReactMarkdown,
|
||||||
|
(prevProps, nextProps) => (
|
||||||
|
prevProps.children === nextProps.children
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue