From 3992199f1200b96beb25dd19e7a87c514565dcc6 Mon Sep 17 00:00:00 2001 From: AnnuKumar Date: Wed, 10 Jun 2026 17:52:40 +0530 Subject: [PATCH] feat(frontend): add confirmation modal before deleting a chat session (#362) --- frontend/src/components/Sidebar.jsx | 45 +++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/Sidebar.jsx b/frontend/src/components/Sidebar.jsx index 454991f..dd64407 100644 --- a/frontend/src/components/Sidebar.jsx +++ b/frontend/src/components/Sidebar.jsx @@ -9,11 +9,26 @@ const LANGUAGES = [ export default function Sidebar({ sessions, currentSession, onNewChat, onLoadSession, onDeleteSession, model, models, onModelChange, language, onLanguageChange }) { const [search, setSearch] = useState(""); + const [sessionToDelete, setSessionToDelete] = useState(null); // Tracks target session ID + const modelList = models.length > 0 ? models.map(m=>m.name) : ["llama3","mistral","phi3","gemma2"]; const filtered = sessions.filter(s => s.title?.toLowerCase().includes(search.toLowerCase())); + // Triggered when clicking the 'x' button next to a session item + const handleDeleteClick = (sessionId) => { + setSessionToDelete(sessionId); + }; + + // Triggered when confirming deletion inside the pop-up modal + const handleConfirmDelete = () => { + if (sessionToDelete) { + onDeleteSession(sessionToDelete); + setSessionToDelete(null); + } + }; + return ( -
+
{/* Logo */}
@@ -72,7 +87,7 @@ export default function Sidebar({ sessions, currentSession, onNewChat, onLoadSes {s.message_count} )} - @@ -92,6 +107,30 @@ export default function Sidebar({ sessions, currentSession, onNewChat, onLoadSes Star on GitHub
+ + {/* Confirmation Modal Overlay */} + {sessionToDelete !== null && ( +
+
+

Delete Chat Session?

+

+ This action cannot be undone. All conversation records will be deleted from your database. +

+
+ + +
+
+
+ )}
); -} +} \ No newline at end of file