import { useEffect, useState, type CSSProperties } from 'react'
import { Copy, Maximize2, Minus, Shrink, Square, X } from 'lucide-react'
import { WINDOW_STATE_CHANGED } from '#/events/constants'
import { windowControlsAdapter } from '@/adapters/window-controls'
import { ipc } from '@/utils/bridge'
import { cn } from '@/lib/utils'
interface TitleBarProps {
isMac?: boolean
}
export function TitleBar ({ isMac = false }: TitleBarProps) {
const [isMaximized, setIsMaximized] = useState(false)
useEffect(() => {
async function syncWindowState () {
try {
const state = await windowControlsAdapter.getWindowState()
setIsMaximized(state.isMaximized)
} catch (error) {
console.error(error)
}
}
syncWindowState()
const handleWindowStateChange = (state: { isMaximized: boolean }) => {
setIsMaximized(state.isMaximized)
}
return ipc.on(WINDOW_STATE_CHANGED, handleWindowStateChange)
}, [])
const toggleMaximize = () => {
setIsMaximized((value) => !value)
windowControlsAdapter.maximizeWindow()
}
const maximizeIcon = isMaximized
?