import { player } from '@/web/store' import SvgIcon from './SvgIcon' import { IpcChannels } from '@/shared/IpcChannels' import useIpcRenderer from '@/web/hooks/useIpcRenderer' import { useState, useMemo } from 'react' import { useSnapshot } from 'valtio' const Controls = () => { const [isMaximized, setIsMaximized] = useState(false) useIpcRenderer(IpcChannels.IsMaximized, (e, value) => { setIsMaximized(value) }) const minimize = () => { window.ipcRenderer?.send(IpcChannels.Minimize) } const maxRestore = () => { window.ipcRenderer?.send(IpcChannels.MaximizeOrUnmaximize) } const close = () => { window.ipcRenderer?.send(IpcChannels.Close) } return (
) } const Title = ({ className }: { className?: string }) => { const playerSnapshot = useSnapshot(player) const track = useMemo(() => playerSnapshot.track, [playerSnapshot.track]) return (
{track?.name && ( <> {track.name} - )} YesPlayMusic
) } const Win = () => { return (
<Controls /> </div> ) } const Linux = () => { return ( <div className='flex h-8 w-screen items-center justify-between bg-gray-50'> <div></div> <Title className='text-center' /> <Controls /> </div> ) } const TitleBar = () => { return ( <div className='app-region-drag fixed z-30'> {window.env?.isWin ? <Win /> : <Linux />} </div> ) } export default TitleBar