/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React, { useCallback, useState } from 'react'; import { useHeaderBar } from '../../../hooks/common/useHeaderBar'; import { useNavigation } from '../../../hooks/common/useNavigation'; import { useUserMessageUnreadCount } from '../../../hooks/common/useUserMessageUnreadCount'; import UserMessageModal from './UserMessageModal'; import MobileMenuButton from './MobileMenuButton'; import HeaderLogo from './HeaderLogo'; import MobileSiteNavDropdown from './MobileSiteNavDropdown'; import Navigation from './Navigation'; import ActionButtons from './ActionButtons'; const HeaderBar = ({ onMobileMenuToggle, drawerOpen }) => { const { userState, isMobile, collapsed, logoLoaded, currentLang, isLoading, systemName, logo, isNewYear, isSelfUseMode, docsNav, isDemoSiteMode, isConsoleRoute, showThemeToggle, showLanguageSelector, theme, headerNavModules, pricingRequireAuth, logout, handleLanguageChange, handleThemeToggle, handleMobileMenuToggle, navigate, t, } = useHeaderBar({ onMobileMenuToggle, drawerOpen }); const [messageModalVisible, setMessageModalVisible] = useState(false); const { unreadCount: messageUnreadCount, refreshUnreadCount } = useUserMessageUnreadCount(userState?.user); const handleMessageModalOpen = useCallback(() => { setMessageModalVisible(true); }, []); const handleMessageModalClose = useCallback(async () => { setMessageModalVisible(false); await refreshUnreadCount(); }, [refreshUnreadCount]); const { mainNavLinks } = useNavigation(t, docsNav, headerNavModules); return (
); }; export default HeaderBar;