minor changes

This commit is contained in:
nflnkr 2023-05-03 12:54:04 +03:00
parent 7dc6d6ecd4
commit f9567803b6
3 changed files with 19 additions and 8 deletions

@ -63,15 +63,16 @@ export default function Chat({ sx }: Props) {
onMessage(event) { onMessage(event) {
try { try {
const newMessage = JSON.parse(event.data) as TicketMessage; const newMessage = JSON.parse(event.data) as TicketMessage;
// console.log("SSE: parsed newMessage:", newMessage); console.log("SSE: parsed newMessage:", newMessage);
if (!newMessage.id) throw new Error("Bad SSE response");
addOrUpdateUnauthMessages([newMessage]); addOrUpdateUnauthMessages([newMessage]);
} catch (error) { } catch (error) {
// console.log("SSE: couldn't parse:", event.data); console.log("SSE: couldn't parse:", event.data);
// console.log("Error parsing message SSE", error); console.log("Error parsing SSE message", error);
} }
}, },
onError(event) { onError(event) {
// console.log("SSE Error:", event); console.log("SSE Error:", event);
}, },
}); });
@ -105,6 +106,13 @@ export default function Chat({ sx }: Props) {
setMessageField(""); setMessageField("");
} }
const handleTextfieldKeyPress: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement> = (e) => {
if (e.key === "Enter" && !e.shiftKey) {
e.preventDefault();
handleSendMessage();
}
};
return ( return (
<Box sx={{ <Box sx={{
display: "flex", display: "flex",
@ -175,6 +183,7 @@ export default function Chat({ sx }: Props) {
placeholder="Введите сообщение..." placeholder="Введите сообщение..."
id="message" id="message"
multiline multiline
onKeyDown={handleTextfieldKeyPress}
sx={{ sx={{
width: "100%", width: "100%",
p: 0, p: 0,

@ -14,9 +14,11 @@ export default function FloatingSupportChat() {
bottom: "10px", bottom: "10px",
display: "flex", display: "flex",
}}> }}>
{isChatOpened && <Chat sx={{ {isChatOpened &&
mb: "54px", <Chat sx={{
}} />} mb: "54px",
}} />
}
<Fab <Fab
variant={"extended"} variant={"extended"}
onClick={() => setIsChatOpened(prev => !prev)} onClick={() => setIsChatOpened(prev => !prev)}

@ -4,7 +4,7 @@ import { createJSONStorage, devtools, persist } from "zustand/middleware";
interface UnauthTicketStore { interface UnauthTicketStore {
ticket: Ticket | null; ticket: Ticket | null; // TODO delete if unused
sessionId: string | null; sessionId: string | null;
messages: TicketMessage[]; messages: TicketMessage[];
fetchState: "idle" | "fetching" | "all fetched"; fetchState: "idle" | "fetching" | "all fetched";