'use client'; import { useState, useEffect } from 'react'; import { Button, Tooltip } from '@heroui/react'; import { PanelLeftClose, PanelLeftOpen, ChartColumnStacked, ClipboardList, FlaskConical, UserRound, Settings, } from 'lucide-react'; import { usePathname, useRouter } from '@/src/i18n/routing'; import useGetCurrentIds from '@/utils/useGetCurrentIds'; import { ProjectMessages } from '@/types/project'; export type Props = { messages: ProjectMessages; locale: string; }; export default function Sidebar({ messages, locale }: Props) { const { projectId } = useGetCurrentIds(); const router = useRouter(); const pathname = usePathname(); const [currentKey, setCurrentKey] = useState('home'); const [isSideBarOpen, setIsSideBarOpen] = useState(true); const TOGGLE_ICON_STROKE_WIDTH = 1; const TOGGLE_ICON_SIZE = 18; const ICON_STROKE_WIDTH = 1; const ICON_SIZE = 26; const handleClick = (key: string) => { if (key === 'home') { router.push(`/projects/${projectId}/home`, { locale: locale }); } else if (key === 'cases') { router.push(`/projects/${projectId}/folders`, { locale: locale }); } else if (key === 'runs') { router.push(`/projects/${projectId}/runs`, { locale: locale }); } else if (key === 'members') { router.push(`/projects/${projectId}/members`, { locale: locale }); } else if (key === 'settings') { router.push(`/projects/${projectId}/settings`, { locale: locale }); } }; useEffect(() => { const handleRouteChange = (currentPath: string) => { if (currentPath.includes('home')) { setCurrentKey('home'); } else if (currentPath.includes('folders')) { setCurrentKey('cases'); } else if (currentPath.includes('runs')) { setCurrentKey('runs'); } else if (currentPath.includes('members')) { setCurrentKey('members'); } else if (currentPath.includes('settings')) { setCurrentKey('settings'); } }; handleRouteChange(pathname); }, [pathname]); const tabItems = [ { key: 'home', text: messages.home, startContent: , }, { key: 'cases', text: messages.testCases, startContent: , }, { key: 'runs', text: messages.testRuns, startContent: , }, { key: 'members', text: messages.members, startContent: , }, { key: 'settings', text: messages.settings, startContent: , }, ]; return (
{tabItems.map((itr) => (
))}
); }