11import { useState , useEffect } from 'react'
22import { Minus , Square , Copy , X , PanelLeft } from 'lucide-react'
3+ import { Tooltip , TooltipContent , TooltipProvider , TooltipTrigger } from '@/components/ui/tooltip'
34
45interface TitlebarProps {
56 isSidebarExpanded : boolean
@@ -22,38 +23,76 @@ export default function Titlebar({ isSidebarExpanded, onToggleSidebar }: Titleba
2223 >
2324 { /* Left side: Sidebar toggle icon */ }
2425 < div className = "flex items-center pl-2" style = { { WebkitAppRegion : 'no-drag' } as React . CSSProperties } >
25- < button
26- onClick = { onToggleSidebar }
27- className = "w-8 h-8 flex items-center justify-center rounded-lg text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 transition-colors duration-150"
28- aria-label = { isSidebarExpanded ? 'Collapse Sidebar' : 'Expand Sidebar' }
29- >
30- < PanelLeft size = { 16 } />
31- </ button >
26+ < TooltipProvider delayDuration = { 300 } >
27+ < Tooltip >
28+ < TooltipTrigger asChild >
29+ < button
30+ onClick = { onToggleSidebar }
31+ className = "w-8 h-8 flex items-center justify-center rounded-lg text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 transition-colors duration-150"
32+ aria-label = { isSidebarExpanded ? 'Collapse Sidebar' : 'Expand Sidebar' }
33+ >
34+ < PanelLeft size = { 16 } />
35+ </ button >
36+ </ TooltipTrigger >
37+ < TooltipContent side = "bottom" >
38+ { isSidebarExpanded ? 'Collapse Sidebar' : 'Expand Sidebar' }
39+ </ TooltipContent >
40+ </ Tooltip >
41+ </ TooltipProvider >
3242 </ div >
3343
3444 { /* Right side: Window controls */ }
3545 < div className = "flex h-full" style = { { WebkitAppRegion : 'no-drag' } as React . CSSProperties } >
36- < button
37- onClick = { ( ) => window . electronAPI . minimize ( ) }
38- className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-zinc-800 hover:text-zinc-300 transition-colors duration-150"
39- aria-label = "Minimize"
40- >
41- < Minus size = { 14 } />
42- </ button >
43- < button
44- onClick = { ( ) => window . electronAPI . maximize ( ) }
45- className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-zinc-800 hover:text-zinc-300 transition-colors duration-150"
46- aria-label = { isMaximized ? 'Restore' : 'Maximize' }
47- >
48- { isMaximized ? < Copy size = { 11 } /> : < Square size = { 11 } /> }
49- </ button >
50- < button
51- onClick = { ( ) => window . electronAPI . close ( ) }
52- className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-red-600 hover:text-white transition-colors duration-150"
53- aria-label = "Close"
54- >
55- < X size = { 14 } />
56- </ button >
46+ < TooltipProvider delayDuration = { 300 } >
47+ < Tooltip >
48+ < TooltipTrigger asChild >
49+ < button
50+ onClick = { ( ) => window . electronAPI . minimize ( ) }
51+ className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-zinc-800 hover:text-zinc-300 transition-colors duration-150"
52+ aria-label = "Minimize"
53+ >
54+ < Minus size = { 14 } />
55+ </ button >
56+ </ TooltipTrigger >
57+ < TooltipContent side = "bottom" >
58+ Minimize
59+ </ TooltipContent >
60+ </ Tooltip >
61+ </ TooltipProvider >
62+
63+ < TooltipProvider delayDuration = { 300 } >
64+ < Tooltip >
65+ < TooltipTrigger asChild >
66+ < button
67+ onClick = { ( ) => window . electronAPI . maximize ( ) }
68+ className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-zinc-800 hover:text-zinc-300 transition-colors duration-150"
69+ aria-label = { isMaximized ? 'Restore' : 'Maximize' }
70+ >
71+ { isMaximized ? < Copy size = { 11 } /> : < Square size = { 11 } /> }
72+ </ button >
73+ </ TooltipTrigger >
74+ < TooltipContent side = "bottom" >
75+ { isMaximized ? 'Restore' : 'Maximize' }
76+ </ TooltipContent >
77+ </ Tooltip >
78+ </ TooltipProvider >
79+
80+ < TooltipProvider delayDuration = { 300 } >
81+ < Tooltip >
82+ < TooltipTrigger asChild >
83+ < button
84+ onClick = { ( ) => window . electronAPI . close ( ) }
85+ className = "w-12 h-full flex items-center justify-center text-zinc-500 hover:bg-red-600 hover:text-white transition-colors duration-150"
86+ aria-label = "Close"
87+ >
88+ < X size = { 14 } />
89+ </ button >
90+ </ TooltipTrigger >
91+ < TooltipContent side = "bottom" >
92+ Close
93+ </ TooltipContent >
94+ </ Tooltip >
95+ </ TooltipProvider >
5796 </ div >
5897 </ div >
5998 )
0 commit comments