file download working

This commit is contained in:
anovazzi1 2023-04-25 22:47:52 -03:00
commit 56d97e7c7f
3 changed files with 55 additions and 38 deletions

View file

@ -49,20 +49,24 @@ export default function ChatMessage({ chat }: { chat: ChatMessageType }) {
)} )}
{chat.thought && chat.thought !== "" && !hidden && <br></br>} {chat.thought && chat.thought !== "" && !hidden && <br></br>}
<div className="w-full px-4 pb-3 pt-3 pr-8"> <div className="w-full px-4 pb-3 pt-3 pr-8">
{chat.files ? ( <span>
<div></div> {chat.message}
) : ( {chat.files && (
<span>
{chat.message}
<div className="my-2 w-full"> <div className="my-2 w-full">
<FileCard {chat.files.map((file) => {
fileName={"FileType"} return (
fileType={"jpeg"} <div className="my-2 w-full">
content={""} <FileCard
/> fileName={"File"}
fileType={file.type}
content={file.data}
/>
</div>
);
})}
</div> </div>
</span> )}
)} </span>
</div> </div>
</div> </div>
</div> </div>

View file

@ -35,14 +35,13 @@ export default function ChatModal({
message: string, message: string,
isSend: boolean, isSend: boolean,
thought?: string, thought?: string,
file?:Blob files?: Array<any>
) => { ) => {
setChatHistory((old) => { setChatHistory((old) => {
let newChat = _.cloneDeep(old); let newChat = _.cloneDeep(old);
if(file){ if (files) {
newChat.push({ message, isSend,file }); newChat.push({ message, isSend, files });
} } else if (thought) {
else if (thought) {
newChat.push({ message, isSend, thought }); newChat.push({ message, isSend, thought });
} else { } else {
newChat.push({ message, isSend }); newChat.push({ message, isSend });
@ -71,35 +70,51 @@ export default function ChatModal({
is_bot: boolean; is_bot: boolean;
message: string; message: string;
type: string; type: string;
data?:string; files?: Array<any>;
}) => { }) => {
if(chatItem.type==="end"){ if (chatItem.message) {
newChatHistory.push({ newChatHistory.push(
isSend: !chatItem.is_bot, chatItem.files
message: chatItem.message, ? {
thought: chatItem.intermediate_steps, isSend: !chatItem.is_bot,
}); message: chatItem.message,
thought: chatItem.intermediate_steps,
files: chatItem.files,
}
: {
isSend: !chatItem.is_bot,
message: chatItem.message,
thought: chatItem.intermediate_steps,
}
);
} }
newChatHistory.push({
isSend: !chatItem.is_bot,
message: chatItem.message,
thought: chatItem.intermediate_steps,
});
} }
); );
return newChatHistory; return newChatHistory;
}); });
} }
if (data.type === "end") { if (data.type === "end") {
addChatHistory(data.message, false, data.intermediate_steps); if (data.files) {
setLockChat(false) addChatHistory(
data.message,
false,
data.intermediate_steps,
data.files
);
} else {
addChatHistory(data.message, false, data.intermediate_steps);
}
setLockChat(false);
} }
if (data.type=="file"){ if (data.type == "file") {
console.log(data) console.log(data);
} }
// Do something with the data received from the WebSocket // Do something with the data received from the WebSocket
}; };
newWs.onclose=(e)=>{console.log(e.reason);setLockChat(false)} newWs.onclose = (e) => {
console.log(e.code);
setLockChat(false);
};
setWs(newWs); setWs(newWs);
return () => { return () => {
@ -107,7 +122,6 @@ export default function ChatModal({
}; };
}, []); }, []);
async function sendAll(data: sendAllProps) { async function sendAll(data: sendAllProps) {
if (ws) { if (ws) {
ws.send(JSON.stringify(data)); ws.send(JSON.stringify(data));
@ -211,8 +225,7 @@ export default function ChatModal({
} }
function clearChat() { function clearChat() {
setChatHistory([]); setChatHistory([]);
ws.send(JSON.stringify({clear_history:true})) ws.send(JSON.stringify({ clear_history: true }));
} }
const { closePopUp } = useContext(PopUpContext); const { closePopUp } = useContext(PopUpContext);

View file

@ -6,5 +6,5 @@ export type ChatMessageType = {
message: string; message: string;
isSend: boolean; isSend: boolean;
thought?: string; thought?: string;
files?: Array<{content:string,type:string}>; files?: Array<{data:string,type:string}>;
}; };