diff options
Diffstat (limited to 'renderer/src/components/Header.tsx')
| -rw-r--r-- | renderer/src/components/Header.tsx | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/renderer/src/components/Header.tsx b/renderer/src/components/Header.tsx index 3dcbba9..b6bed26 100644 --- a/renderer/src/components/Header.tsx +++ b/renderer/src/components/Header.tsx | |||
| @@ -10,6 +10,8 @@ interface HeaderProps { | |||
| 10 | onSelectSession: (session: Session | null) => void; | 10 | onSelectSession: (session: Session | null) => void; |
| 11 | onCreateProject: () => void; | 11 | onCreateProject: () => void; |
| 12 | onCreateSession: () => void; | 12 | onCreateSession: () => void; |
| 13 | onDeleteProject?: (id: string) => void; | ||
| 14 | onDeleteSession?: (id: string) => void; | ||
| 13 | } | 15 | } |
| 14 | 16 | ||
| 15 | const phaseLabels: Record<Phase, string> = { | 17 | const phaseLabels: Record<Phase, string> = { |
| @@ -29,7 +31,23 @@ export function Header({ | |||
| 29 | onSelectSession, | 31 | onSelectSession, |
| 30 | onCreateProject, | 32 | onCreateProject, |
| 31 | onCreateSession, | 33 | onCreateSession, |
| 34 | onDeleteProject, | ||
| 35 | onDeleteSession, | ||
| 32 | }: HeaderProps) { | 36 | }: HeaderProps) { |
| 37 | const handleDeleteProject = () => { | ||
| 38 | if (!selectedProject || !onDeleteProject) return; | ||
| 39 | if (confirm(`Delete project "${selectedProject.name}"? This cannot be undone.`)) { | ||
| 40 | onDeleteProject(selectedProject.id); | ||
| 41 | } | ||
| 42 | }; | ||
| 43 | |||
| 44 | const handleDeleteSession = () => { | ||
| 45 | if (!selectedSession || !onDeleteSession) return; | ||
| 46 | if (confirm(`Delete session "${selectedSession.name}"? This cannot be undone.`)) { | ||
| 47 | onDeleteSession(selectedSession.id); | ||
| 48 | } | ||
| 49 | }; | ||
| 50 | |||
| 33 | return ( | 51 | return ( |
| 34 | <header className="header"> | 52 | <header className="header"> |
| 35 | <div className="header-left"> | 53 | <div className="header-left"> |
| @@ -49,6 +67,15 @@ export function Header({ | |||
| 49 | ))} | 67 | ))} |
| 50 | </select> | 68 | </select> |
| 51 | <button onClick={onCreateProject}>+ Project</button> | 69 | <button onClick={onCreateProject}>+ Project</button> |
| 70 | {selectedProject && onDeleteProject && ( | ||
| 71 | <button | ||
| 72 | onClick={handleDeleteProject} | ||
| 73 | className="btn-delete" | ||
| 74 | title="Delete project" | ||
| 75 | > | ||
| 76 | 🗑️ | ||
| 77 | </button> | ||
| 78 | )} | ||
| 52 | 79 | ||
| 53 | {selectedProject && ( | 80 | {selectedProject && ( |
| 54 | <> | 81 | <> |
| @@ -67,6 +94,15 @@ export function Header({ | |||
| 67 | ))} | 94 | ))} |
| 68 | </select> | 95 | </select> |
| 69 | <button onClick={onCreateSession}>+ Session</button> | 96 | <button onClick={onCreateSession}>+ Session</button> |
| 97 | {selectedSession && onDeleteSession && ( | ||
| 98 | <button | ||
| 99 | onClick={handleDeleteSession} | ||
| 100 | className="btn-delete" | ||
| 101 | title="Delete session" | ||
| 102 | > | ||
| 103 | 🗑️ | ||
| 104 | </button> | ||
| 105 | )} | ||
| 70 | </> | 106 | </> |
| 71 | )} | 107 | )} |
| 72 | </div> | 108 | </div> |
