aboutsummaryrefslogtreecommitdiffstats
path: root/renderer/src/App.tsx
diff options
context:
space:
mode:
authorClawd <ai@clawd.bot>2026-02-28 08:15:03 -0800
committerClawd <ai@clawd.bot>2026-02-28 08:15:03 -0800
commita60b4077ec7a231a7cd766ca7d1ba84d6fabfd13 (patch)
tree587d66b9a105dc69078ff1704b979659cbab6d8b /renderer/src/App.tsx
parente4b1b26c1d61854b93c2cc3cba1714df2d7417d5 (diff)
Add delete functionality for projects and sessions
- Add delete buttons (🗑️) next to project/session dropdowns - Add confirmation dialogs before deletion - Add onDeleteProject and onDeleteSession props to Header - Implement delete handlers in App.tsx with error handling - Clear selection and related state after deletion - Add CSS styling for delete button with hover effect
Diffstat (limited to 'renderer/src/App.tsx')
-rw-r--r--renderer/src/App.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/renderer/src/App.tsx b/renderer/src/App.tsx
index d5a2efd..26ac252 100644
--- a/renderer/src/App.tsx
+++ b/renderer/src/App.tsx
@@ -237,6 +237,38 @@ export function App() {
237 setOriginalContent(""); 237 setOriginalContent("");
238 }; 238 };
239 239
240 const handleDeleteProject = async (id: string) => {
241 try {
242 await api.deleteProject(id);
243 setProjects((prev) => prev.filter((p) => p.id !== id));
244 if (selectedProject?.id === id) {
245 setSelectedProject(null);
246 setSelectedSession(null);
247 setSessions([]);
248 setMessages([]);
249 setDocumentContent("");
250 setOriginalContent("");
251 }
252 } catch (err) {
253 setError(err instanceof Error ? err.message : "Failed to delete project");
254 }
255 };
256
257 const handleDeleteSession = async (id: string) => {
258 try {
259 await api.deleteSession(id);
260 setSessions((prev) => prev.filter((s) => s.id !== id));
261 if (selectedSession?.id === id) {
262 setSelectedSession(null);
263 setMessages([]);
264 setDocumentContent("");
265 setOriginalContent("");
266 }
267 } catch (err) {
268 setError(err instanceof Error ? err.message : "Failed to delete session");
269 }
270 };
271
240 return ( 272 return (
241 <div className="app"> 273 <div className="app">
242 <Header 274 <Header
@@ -248,6 +280,8 @@ export function App() {
248 onSelectSession={setSelectedSession} 280 onSelectSession={setSelectedSession}
249 onCreateProject={handleCreateProject} 281 onCreateProject={handleCreateProject}
250 onCreateSession={handleCreateSession} 282 onCreateSession={handleCreateSession}
283 onDeleteProject={handleDeleteProject}
284 onDeleteSession={handleDeleteSession}
251 /> 285 />
252 286
253 <div className="main-content"> 287 <div className="main-content">