/* eslint-disable react-hooks/exhaustive-deps */ import React, { useEffect, useState } from 'react'; import { Layout } from 'antd'; import Sider from 'antd/es/layout/Sider'; import SiderMenu from '../components/SiderMenu'; import { Route, Routes, useLocation, useNavigate } from 'react-router-dom'; import ProcessDiagramPage from './ProcessDiagramPage'; import RunningProcessesPage from './RunningProcessesPage'; import AccountsPage from './AccountsPage'; import EventsListPage from './EventsListPage'; import ConfigurationPage from './ConfigurationPage'; export default function MainLayout() { const navigate = useNavigate(); const location = useLocation(); const [collapsed, setCollapsed] = useState(false); const [selectedKey, setSelectedKey] = useState('1'); const [width, setWidth] = useState('15%'); const [collapsedWidth, setCollapsedWidth] = useState(50); const calculateWidths = () => { const windowWidth = window.innerWidth; const expanded = Math.min(Math.max(windowWidth * 0.15, 180), 240); const collapsed = Math.max(windowWidth * 0.038, 50); setWidth(expanded); setCollapsedWidth(collapsed); }; useEffect(() => { calculateWidths(); window.addEventListener('resize', calculateWidths); return () => window.removeEventListener('resize', calculateWidths); }, []); useEffect(() => { if (location.pathname === '/') { navigate('/process-diagram'); } setSelectedKey(location.pathname); }, [location.pathname]); function hangleMenuClick(e: any) { const key = e.key; if (key === 'toggle') { setCollapsed(!collapsed); return; } if (key === 'divider') { return; } setSelectedKey(key); navigate(key); } return ( setCollapsed(value)} theme="light" width={width} collapsedWidth={collapsedWidth} trigger={null} > } /> } /> } /> } /> } /> 404 Not Found} /> ); }