import { useContext } from 'react' import { Tooltip, TooltipContent, TooltipTrigger, TooltipArrow, } from '@janhq/uikit' import { motion as m } from 'framer-motion' import { MessageCircleIcon, SettingsIcon, DatabaseIcon, CpuIcon, BookOpenIcon, } from 'lucide-react' import { twMerge } from 'tailwind-merge' import LogoMark from '@/containers/Brand/Logo/Mark' import { FeatureToggleContext } from '@/context/FeatureToggle' import { MainViewState } from '@/constants/screens' import { useMainViewState } from '@/hooks/useMainViewState' export default function RibbonNav() { const { mainViewState, setMainViewState } = useMainViewState() const { experimentalFeatureEnabed } = useContext(FeatureToggleContext) const onMenuClick = (state: MainViewState) => { if (mainViewState === state) return setMainViewState(state) } const primaryMenus = [ { name: 'Getting Started', icon: , state: MainViewState.Welcome, }, { name: 'Chat', icon: , state: MainViewState.Chat, }, ] const secondaryMenus = [ // Add menu if experimental feature ...(experimentalFeatureEnabed ? [] : []), { name: 'Explore Models', icon: , state: MainViewState.ExploreModels, }, { name: 'My Models', icon: , state: MainViewState.MyModels, }, { name: 'Settings', icon: , state: MainViewState.Setting, }, ] return (
{primaryMenus .filter((primary) => !!primary) .map((primary, i) => { const isActive = mainViewState === primary.state return (
onMenuClick(primary.state)} > {primary.icon}
{isActive && ( )}
{primary.name}
) })}
{secondaryMenus .filter((secondary) => !!secondary) .map((secondary, i) => { const isActive = mainViewState === secondary.state return (
onMenuClick(secondary.state)} > {secondary.icon}
{isActive && ( )}
{secondary.name}
) })}
) }