'use client' import { logOut, useIsLoggedIn, useUser } from 'common' import { LogOut, Settings, UserIcon } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { AuthenticatedDropdownMenu, type menuItem } from 'ui-patterns/AuthenticatedDropdownMenu' import { CommandMenu } from './command-menu' import { ThemeSwitcherDropdown } from './theme-switcher-dropdown' import NavigationItem from '@/components/side-navigation-item' import { courses } from '@/config/docs' import { mergeInternalContentIntoSections } from '@/lib/merge-internal-content' import { SidebarNavItem } from '@/types/nav' interface SideNavigationProps { internalPaths: string[] } function SideNavigation({ internalPaths }: SideNavigationProps) { const isLoggedIn = useIsLoggedIn() const user = useUser() const router = useRouter() // First, merge orphaned internal content into their respective sections // Note: All content is visible to everyone. Auth is only for saving progress. const coursesWithInternalContent = { ...courses, items: mergeInternalContentIntoSections(courses.items, internalPaths), } // User menu for authenticated dropdown const userMenu: menuItem[][] = [ [ { label: user?.email ?? "You're logged in", type: 'text', icon: UserIcon, }, { label: 'Account Preferences', icon: Settings, href: 'https://supabase.com/dashboard/account/me', }, ], [ { label: 'Sign out', type: 'button', icon: LogOut, onClick: async () => { await logOut() router.refresh() }, }, ], ] return ( ) } export default SideNavigation