From ca0c60a13bae3a2aff60ca4256202a0ceda78ca5 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 28 Nov 2025 21:56:24 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20am=C3=A9liorer=20l'assistant=20IA=20ave?= =?UTF-8?q?c=20modal=20agrandi=20et=20z-index?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajouter z-50 à la Card du chat pour qu'elle passe devant le bouton QuickCapture - Ajouter un bouton 'Agrandir' avec l'icône LayoutGrid - Créer un modal agrandi (max-w-4xl, h-80vh) pour l'assistant IA - Améliorer l'affichage des messages avec whitespace-pre-wrap - Ajouter des tooltips sur les boutons du chat --- src/pages/Index.tsx | 164 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 163 insertions(+), 1 deletion(-) diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 43f0aba..916b75d 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -217,6 +217,7 @@ const Index = () => { // Chatbox states const [chatOpen, setChatOpen] = useState(false); + const [chatExpandedModal, setChatExpandedModal] = useState(false); const [chatMessages, setChatMessages] = useState>([]); const [chatInput, setChatInput] = useState(""); const [chatLoading, setChatLoading] = useState(false); @@ -2988,7 +2989,7 @@ const Index = () => { ) : ( - +
@@ -2996,11 +2997,23 @@ const Index = () => { Assistant IA
+ @@ -3008,6 +3021,7 @@ const Index = () => { variant="ghost" size="sm" onClick={() => setChatOpen(false)} + title="Fermer" > @@ -3176,6 +3190,154 @@ const Index = () => { )} + {/* Expanded Chat Modal */} + + + +
+ + + Assistant IA + +
+ +
+
+
+ + + + + + + + Aucun modèle trouvé. + + + {openRouterModels.map((model) => ( + { + setSelectedModel(currentValue); + setModelSelectorOpen(false); + }} + > + +
+ {model.name} + {model.id} +
+
+ ))} +
+
+
+
+
+
+
+ +
+ {chatMessages.length === 0 ? ( +
+ +

Bienvenue dans l'Assistant IA

+

+ Posez vos questions et obtenez des réponses intelligentes grâce à l'IA. + {openRouterModels.length === 0 && user?.is_admin && ( + Configurez une clé API OpenRouter dans les paramètres. + )} +

+
+ ) : ( + chatMessages.map((msg, idx) => ( +
+
+
{msg.content}
+
+
+ )) + )} + {chatLoading && ( +
+
+
+ ● + ● + ● +
+
+
+ )} +
+
+ +
+
{ + e.preventDefault(); + handleSendMessage(); + }} + className="flex gap-2" + > + setChatInput(e.target.value)} + placeholder="Posez une question..." + disabled={chatLoading || !selectedModel} + className="flex-1" + /> + +
+
+ +
+ {/* Image modal for fullscreen view */} {selectedImage && (