тип файл не выводится

This commit is contained in:
Tamara 2024-03-10 01:05:54 +03:00
parent d6c8532280
commit e968e5c7ee
2 changed files with 48 additions and 105 deletions

@ -27,7 +27,8 @@ import ArrowLeft from "@icons/questionsPage/arrowLeft";
import { useUserStore } from "@root/user";
import AttachFileIcon from "@mui/icons-material/AttachFile";
import ChatImage from "./ChatImage";
import SwitchChatMassage from "@ui_kit/FloatingSupportChat/SwithChatMassage";
import ChatDocument from "@ui_kit/FloatingSupportChat/ChatDocument";
import * as React from "react";
interface Props {
open: boolean;
@ -37,6 +38,12 @@ interface Props {
sendFile: (a: File | undefined) => Promise<true>;
}
const fileTypes = {
picture: [".jpg", ".png"],
video: [".mp4"],
document: [".doc", ".docx", ".pdf", ".txt", ".xlsx", ".csv"],
};
export default function Chat({
open = false,
sx,
@ -205,30 +212,47 @@ export default function Chat({
>
{ticket.sessionData?.ticketId &&
messages.map((message) => {
// if (message.files !== null && message.files.length > 0) {
// return <ChatImage
// unAuthenticated
// key={message.id}
// file={message.files[0]}
// createdAt={message.created_at}
// isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
// />
// } else {
// return <ChatMessage
// unAuthenticated
// key={message.id}
// text={message.message}
// createdAt={message.created_at}
// isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
// />
// }
return (
<SwitchChatMassage
message={message}
ticket={ticket}
user={user}
const isFileImage = () => {
if (message.files.name) {
fileTypes.picture.some((fileType) =>
message.files.name.toLowerCase().endsWith(fileType),
);
}
};
const isFileDocument = () => {
if (message.files.name) {
fileTypes.document.some((fileType) =>
message.files.name.toLowerCase().endsWith(fileType),
);
}
};
console.log(message)
if (message.files.length > 0 && isFileImage) {
return <ChatImage
unAuthenticated
key={message.id}
file={message.files[0]}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
);
}
if (message.files.length > 0 && isFileDocument) {
return <ChatDocument
unAuthenticated
key={message.id}
file={message.files[0]}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
} else {
return <ChatMessage
unAuthenticated
key={message.id}
text={message.message}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
}
})}
</Box>
<FormControl fullWidth sx={{ borderTop: "1px solid black" }}>

@ -1,81 +0,0 @@
import { Typography } from "@mui/material";
import * as React from "react";
import { useState } from "react";
import ChatImage from "@ui_kit/FloatingSupportChat/ChatImage";
import ChatMessage from "@ui_kit/FloatingSupportChat/ChatMessage";
import ChatDocument from "@ui_kit/FloatingSupportChat/ChatDocument";
interface Props {
message: any;
ticket: any;
user: string | undefined;
}
const fileTypes = {
picture: [".jpg", ".png"],
video: [".mp4"],
document: [".doc", ".docx", ".pdf", ".txt", ".xlsx", ".csv"],
};
export default function SwitchChatMassage({ message, ticket, user }: Props) {
const [typeMassage, setTypeMassage] = useState("");
const isFileImage = () => {
if (message.files.name) {
fileTypes.picture.some((fileType) =>
message.files.name.toLowerCase().endsWith(fileType),
);
}
};
const isFileDocument = () => {
if (message.files.name) {
fileTypes.document.some((fileType) =>
message.files.name.toLowerCase().endsWith(fileType),
);
}
};
if (message.files === null) {
setTypeMassage("massage");
}
if (message.files !== null && isFileImage && message.files.length !== 0) {
setTypeMassage("image");
}
if (message.files !== null && isFileDocument && message.files.length !== 0) {
setTypeMassage("document");
}
console.log("working?", typeMassage);
switch (typeMassage) {
case "image":
return (
<ChatImage
unAuthenticated
key={message.id}
file={message.files[0]}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
);
case "massage":
return (
<ChatMessage
unAuthenticated
key={message.id}
text={message.message}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
);
case "document":
return (
<ChatDocument
unAuthenticated
key={message.id}
file={message.files[0]}
createdAt={message.created_at}
isSelf={(ticket.sessionData?.sessionId || user) === message.user_id}
/>
);
default:
return <></>;
}
}