import { useState } from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import SideNav, { keyToPath, pathToKey } from './SideNav';
// 퍼블리시 패널 컴포넌트 재사용
import Panel1Component from '../../publish/pages/Panel1Component';
import Panel2Component from '../../publish/pages/Panel2Component';
import Panel3Component from '../../publish/pages/Panel3Component';
import Panel4Component from '../../publish/pages/Panel4Component';
import Panel5Component from '../../publish/pages/Panel5Component';
import Panel6Component from '../../publish/pages/Panel6Component';
import Panel7Component from '../../publish/pages/Panel7Component';
import Panel8Component from '../../publish/pages/Panel8Component';
// DisplayComponent는 스토어 연결된 버전 사용
import DisplayComponent from '../../component/wrap/side/DisplayComponent';
/**
* 사이드바 컴포넌트
* - 네비게이션 메뉴
* - 패널 영역 (경로에 따라 다른 패널 표시)
*/
export default function Sidebar() {
const navigate = useNavigate();
const location = useLocation();
const [isPanelOpen, setIsPanelOpen] = useState(true);
// URL에서 활성 메뉴 키 추출
const getActiveKey = () => {
const path = location.pathname.split('/')[1] || 'ship';
return pathToKey[path] || 'gnb1';
};
const activeKey = getActiveKey();
const handleMenuChange = (key) => {
setIsPanelOpen(true);
const path = keyToPath[key] || 'ship';
navigate(`/${path}`);
};
const handleTogglePanel = () => {
setIsPanelOpen((prev) => !prev);
};
// 패널 공통 props
const panelProps = {
isOpen: isPanelOpen,
onToggle: handleTogglePanel,
};
// 활성 키에 따른 패널 컴포넌트 렌더링
const renderPanel = () => {
switch (activeKey) {
case 'gnb1':
return ;
case 'gnb2':
return ;
case 'gnb3':
return ;
case 'gnb4':
return ;
case 'gnb5':
return ;
case 'gnb6':
return ;
case 'gnb7':
return ;
case 'gnb8':
return ;
case 'filter':
case 'layer':
return ;
default:
return ;
}
};
return (
);
}