import React from "react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu.tsx"; import { Button } from "@/components/ui/button.tsx"; import { ChevronDown, Home, Terminal as TerminalIcon, Server as ServerIcon, Folder as FolderIcon, Shield as AdminIcon, Network as SshManagerIcon } from "lucide-react"; import { useTabs, type Tab } from "@/ui/Desktop/Navigation/Tabs/TabContext.tsx"; import { useTranslation } from "react-i18next"; export function TabDropdown(): React.ReactElement { const { tabs, currentTab, setCurrentTab } = useTabs(); const { t } = useTranslation(); const getTabIcon = (tabType: Tab['type']) => { switch (tabType) { case 'home': return ; case 'terminal': return ; case 'server': return ; case 'file_manager': return ; case 'ssh_manager': return ; case 'admin': return ; default: return ; } }; const getTabDisplayTitle = (tab: Tab) => { switch (tab.type) { case 'home': return t('nav.home'); case 'server': return tab.title || t('nav.serverStats'); case 'file_manager': return tab.title || t('nav.fileManager'); case 'ssh_manager': return tab.title || t('nav.sshManager'); case 'admin': return tab.title || t('nav.admin'); case 'terminal': default: return tab.title || t('nav.terminal'); } }; const handleTabSwitch = (tabId: number) => { setCurrentTab(tabId); }; // If only one tab (home), don't show dropdown if (tabs.length <= 1) { return null; } return ( {tabs.map((tab) => { const isActive = tab.id === currentTab; return ( handleTabSwitch(tab.id)} className={`flex items-center gap-2 cursor-pointer px-3 py-2 ${ isActive ? 'bg-[#1d1d1f] text-white' : 'hover:bg-[#2d2d30] text-gray-300' }`} > {getTabIcon(tab.type)} {getTabDisplayTitle(tab)} {isActive && (
)} ); })} ); }