import clsx from 'clsx'; import React, { useRef, useState } from 'react'; import { PiDotsThreeVerticalBold } from 'react-icons/pi'; import { useEnv } from '@/context/EnvContext'; import { useReaderStore } from '@/store/readerStore'; import { useSidebarStore } from '@/store/sidebarStore'; import { isTauriAppPlatform } from '@/services/environment'; import { useResponsiveSize } from '@/hooks/useResponsiveSize'; import useTrafficLight from '@/hooks/useTrafficLight'; import WindowButtons from '@/components/WindowButtons'; import Dropdown from '@/components/Dropdown'; import SidebarToggler from './SidebarToggler'; import BookmarkToggler from './BookmarkToggler'; import NotebookToggler from './NotebookToggler'; import SettingsToggler from './SettingsToggler'; import ViewMenu from './ViewMenu'; interface HeaderBarProps { bookKey: string; bookTitle: string; isTopLeft: boolean; isHoveredAnim: boolean; onCloseBook: (bookKey: string) => void; onSetSettingsDialogOpen: (open: boolean) => void; } const HeaderBar: React.FC = ({ bookKey, bookTitle, isTopLeft, isHoveredAnim, onCloseBook, onSetSettingsDialogOpen, }) => { const { appService } = useEnv(); const headerRef = useRef(null); const { isTrafficLightVisible } = useTrafficLight(); const [isDropdownOpen, setIsDropdownOpen] = useState(false); const { hoveredBookKey, setHoveredBookKey, bookKeys } = useReaderStore(); const { isSideBarVisible } = useSidebarStore(); const iconSize16 = useResponsiveSize(16); const handleToggleDropdown = (isOpen: boolean) => { setIsDropdownOpen(isOpen); if (!isOpen) setHoveredBookKey(''); }; return (
setHoveredBookKey(bookKey)} onMouseLeave={() => setHoveredBookKey('')} >

{bookTitle}

} onToggle={handleToggleDropdown} > onCloseBook(bookKey)} />
); }; export default HeaderBar;