build: output files to dir

This commit is contained in:
jialin
2024-06-17 13:03:41 +08:00
parent 2352c316c0
commit 9fa61b9849
20 changed files with 776 additions and 245 deletions
+24 -12
View File
@@ -16,14 +16,21 @@ import ViewCodeModal from './view-code-modal';
interface MessageProps {
parameters: any;
}
interface MessageItemProps {
role: string;
content: string;
uid: number;
}
const MessageList: React.FC<MessageProps> = (props) => {
const { parameters } = props;
const [messageList, setMessageList] = useState<
{ role: string; content: string }[]
>([
const messageId = useRef<number>(0);
const [messageList, setMessageList] = useState<MessageItemProps[]>([
{
role: 'user',
content: ''
content: '',
uid: messageId.current
}
]);
@@ -37,11 +44,17 @@ const MessageList: React.FC<MessageProps> = (props) => {
const handleSystemMessageChange = (e: any) => {
setSystemMessage(e.target.value);
};
const setMessageId = () => {
messageId.current = messageId.current + 1;
};
const handleNewMessage = () => {
messageList.push({
role: 'user',
content: ''
content: '',
uid: messageId.current + 1
});
setMessageId();
setMessageList([...messageList]);
setActiveIndex(messageList.length - 1);
};
@@ -71,9 +84,11 @@ const MessageList: React.FC<MessageProps> = (props) => {
...messageList,
{
role: Roles.Assistant,
content: assistant.content
content: assistant.content,
uid: messageId.current + 1
}
]);
setMessageId();
setLoading(false);
} catch (error) {
setLoading(false);
@@ -101,10 +116,7 @@ const MessageList: React.FC<MessageProps> = (props) => {
setMessageList([...messageList]);
};
const handleUpdateMessage = (
index: number,
message: { role: string; content: string }
) => {
const handleUpdateMessage = (index: number, message: MessageItemProps) => {
messageList[index] = message;
console.log('updatemessage========', index, message);
setMessageList([...messageList]);
@@ -143,12 +155,12 @@ const MessageList: React.FC<MessageProps> = (props) => {
{messageList.map((item, index) => {
return (
<MessageItem
key={index}
key={item.uid}
isFocus={index === activeIndex}
islast={index === messageList.length - 1}
loading={loading}
onDelete={() => handleDelete(index)}
updateMessage={(message: { role: string; content: string }) =>
updateMessage={(message: MessageItemProps) =>
handleUpdateMessage(index, message)
}
message={item}
@@ -4,18 +4,20 @@ import _ from 'lodash';
import { memo, useEffect, useRef, useState } from 'react';
import { Roles } from '../config';
import '../style/message-item.less';
interface MessageItemProps {
role: string;
content: string;
uid: number;
}
const MessageItem: React.FC<{
message: {
role: string;
content: string;
};
message: MessageItemProps;
loading?: boolean;
islast?: boolean;
updateMessage: (message: { role: string; content: string }) => void;
updateMessage: (message: MessageItemProps) => void;
isFocus: boolean;
onDelete: () => void;
}> = ({ message, isFocus, onDelete, updateMessage, loading, islast }) => {
}> = ({ message, isFocus, onDelete, updateMessage }) => {
const [roleType, setRoleType] = useState(message.role);
const [isTyping, setIsTyping] = useState(false);
const [messageContent, setMessageContent] = useState(message.content);
@@ -51,7 +53,11 @@ const MessageItem: React.FC<{
useEffect(() => {
if (!isAnimating && !isInitialRender.current) {
updateMessage({ role: roleType, content: messageContent });
updateMessage({
role: roleType,
content: messageContent,
uid: message.uid
});
} else {
isInitialRender.current = false;
}