'use client';
import { useState, useEffect } from 'react';
import { Listbox, ListboxItem } from '@nextui-org/react';
import { Home, Files, FlaskConical, Users, Settings } from 'lucide-react';
import { usePathname, useRouter } from '@/src/navigation';
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, setCurrentTab] = useState('home');
const baseClass = 'p-3';
const selectedClass = `${baseClass} bg-neutral-200 dark:bg-neutral-700`;
const handleTabClick = (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')) {
setCurrentTab('home');
} else if (currentPath.includes('folders')) {
setCurrentTab('cases');
} else if (currentPath.includes('runs')) {
setCurrentTab('runs');
} else if (currentPath.includes('members')) {
setCurrentTab('members');
} else if (currentPath.includes('settings')) {
setCurrentTab('settings');
}
};
handleRouteChange(pathname);
}, [pathname]);
const tabItems = [
{
key: 'home',
text: messages.home,
startContent: