'use client'; import React, { forwardRef, useImperativeHandle, useContext, useRef, useState } from 'react'; import AppBreadCrumb from './AppBreadCrumb'; import { LayoutContext } from './context/layoutcontext'; import { useAuth } from '../contexts/AuthContext'; import { StyleClass } from 'primereact/styleclass'; import { Ripple } from 'primereact/ripple'; import { Button } from 'primereact/button'; import { InputText } from 'primereact/inputtext'; import { classNames } from 'primereact/utils'; import ConnectionStatusSimple from '../components/ConnectionStatusSimple'; const AppTopbar = forwardRef((props: { sidebarRef: React.RefObject }, ref) => { const [searchActive, setSearchActive] = useState(false); const { user, logout, isAuthenticated } = useAuth(); const btnRef1 = useRef(null); const btnRef2 = useRef(null); const menubutton = useRef(null); const menubuttonRef = useRef(null); const searchInput = useRef(null); const profileRef = useRef(null); const profileMenuRef = useRef(null); const { onMenuToggle, showConfigSidebar, showSidebar, layoutConfig } = useContext(LayoutContext); useImperativeHandle(ref, () => ({ menubutton: menubuttonRef.current })); const activateSearch = () => { setSearchActive(true); setTimeout(() => { (searchInput.current as any).focus(); }, 1000); }; const deactivateSearch = () => { setSearchActive(false); }; const handleKeyDown = (event: any) => { if (event.key === 'Escape') { deactivateSearch(); } }; const handleLogout = async () => { try { await logout(); } catch (error) { console.error('Erreur lors de la déconnexion:', error); } }; return (
); }); export default AppTopbar; AppTopbar.displayName = 'AppTopbar';