import { useState } from 'react';
import {
AppBar, Toolbar, Typography, IconButton, Tooltip, Box,
Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, List, ListItem, ListItemText
} from '@mui/material';
import {
Brightness7, Brightness4, BrightnessAuto,
Logout, HelpOutline
} from '@mui/icons-material';
import { useNavigate } from 'react-router-dom';
import { useThemeContext } from '../ThemeContext';
import { useAuth } from '../auth/AuthContext';
import { Menu as MenuIcon } from '@mui/icons-material';
import { APP_VERSION } from '../utils/version';
import { Logger } from '../utils/logger';
interface HeaderProps {
onMenuClick?: () => void;
isMobile?: boolean;
}
export default function Header({ onMenuClick, isMobile }: HeaderProps) {
const { mode, toggleColorMode } = useThemeContext();
const { logout } = useAuth();
const navigate = useNavigate();
const [helpOpen, setHelpOpen] = useState(false);
const [confirmDialog, setConfirmDialog] = useState({ open: false, title: '', onConfirm: () => {} });
const handleLogout = () => {
Logger.debug('Opening logout confirmation dialog', 'Header');
setConfirmDialog({
open: true,
title: 'Вы действительно хотите выйти?',
onConfirm: async () => {
Logger.debug('Logout confirmed by user', 'Header');
await logout();
Logger.debug('logout() resolved in Header', 'Header');
navigate('/login');
}
});
};
const getThemeIcon = () => {
switch (mode) {
case 'light': return ;
case 'dark': return ;
case 'system': return ;
}
};
const getThemeLabel = () => {
switch (mode) {
case 'light': return 'Светлая тема';
case 'dark': return 'Темная тема';
case 'system': return 'Системная тема';
}
};
return (
<>
theme.zIndex.drawer + 1 }}
>
{isMobile && (
)}
3DP-MANAGER
setHelpOpen(true)}>
{getThemeIcon()}
{/* Confirmation Dialog for logout */}
>
);
}