From 30d21f0180fbef531f8a437306538b1167fc89d7 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 3 Sep 2025 13:56:49 +0000 Subject: [PATCH] update grafica --- frontend/src/ChatWindow.jsx | 5 --- frontend/src/UserMessage.jsx | 84 ++++++++++++++++++++++++++++++++---- 2 files changed, 75 insertions(+), 14 deletions(-) diff --git a/frontend/src/ChatWindow.jsx b/frontend/src/ChatWindow.jsx index b08373a..0e6365e 100644 --- a/frontend/src/ChatWindow.jsx +++ b/frontend/src/ChatWindow.jsx @@ -49,11 +49,6 @@ export default function ChatWindow({ messages, loading, theme }) { )} - {loading && ( -
- The model is processing... -
- )}
); diff --git a/frontend/src/UserMessage.jsx b/frontend/src/UserMessage.jsx index 84e85fd..a1fd5a8 100644 --- a/frontend/src/UserMessage.jsx +++ b/frontend/src/UserMessage.jsx @@ -1,8 +1,11 @@ // src/UserMessage.jsx import React from "react"; +import ReactMarkdown from "react-markdown"; +import remarkGfm from "remark-gfm"; +import remarkMath from "remark-math"; +import rehypeKatex from "rehype-katex"; export default function UserMessage({ content, theme, timestamp, startedAt, endedAt }) { - // Priorità: timestamp dal modello dati → endedAt → startedAt const ts = timestamp ?? endedAt ?? startedAt; return ( @@ -14,17 +17,19 @@ export default function UserMessage({ content, theme, timestamp, startedAt, ende textAlign: "left", }} > -
 (
+              
+            ),
+            th: (props) => 
, + code: CodeWithCopy }} > {content} - + {ts != null && (
+ {children} + + ); + } + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(codeText); + setCopied(true); + setTimeout(() => setCopied(false), 1500); + } catch (err) { + console.error("Copy failed", err); + } + }; + + return ( +
+
+        {codeText}
+      
+ + {copied && ( + + Copied! + + )} +
+ ); +} + function formatDateTime(dateTime) { const date = dateTime instanceof Date ? dateTime : new Date(dateTime); if (Number.isNaN(date.getTime())) return String(dateTime); @@ -55,3 +120,4 @@ function formatDateTime(dateTime) { }); } +