import { HomeIcon, UserGroupIcon, CakeIcon, SearchIcon, ChatIcon, BookOpenIcon, TableIcon, DotsHorizontalIcon, CashIcon, } from '@heroicons/react/outline' import clsx from 'clsx' import _ from 'lodash' import Link from 'next/link' import { useRouter } from 'next/router' import { useFollowedFolds } from '../../hooks/use-fold' import { useUser } from '../../hooks/use-user' import { firebaseLogin, firebaseLogout } from '../../lib/firebase/users' import { ManifoldLogo } from './manifold-logo' import { MenuButton } from './menu' import { getNavigationOptions, ProfileSummary } from './profile-menu' const navigation = [ { name: 'Home', href: '/home', icon: HomeIcon }, { name: 'Explore', href: '/markets', icon: SearchIcon }, { name: 'Portfolio', href: '/portfolio', icon: TableIcon }, ] const signedOutNavigation = [ { name: 'Home', href: '/home', icon: HomeIcon }, { name: 'Explore', href: '/markets', icon: SearchIcon }, { name: 'About', href: 'https://docs.manifold.markets', icon: BookOpenIcon }, ] const signedOutMobileNavigation = [ { name: 'Leaderboards', href: '/leaderboards', icon: CakeIcon }, { name: 'Communities', href: '/folds', icon: UserGroupIcon }, { name: 'Discord', href: 'https://discord.gg/eHQBNBqXuh', icon: ChatIcon }, { name: 'About', href: 'https://docs.manifold.markets', icon: BookOpenIcon }, ] const mobileNavigation = [ { name: 'Add funds', href: '/add-funds', icon: CashIcon }, ...signedOutMobileNavigation, ] type Item = { name: string href: string icon: React.ComponentType<{ className?: string }> } function SidebarItem(props: { item: Item; currentPage: string }) { const { item, currentPage } = props return ( ) } function MoreButton() { return ( ) } export default function Sidebar() { const router = useRouter() const currentPage = router.pathname const user = useUser() let folds = useFollowedFolds(user) || [] folds = _.sortBy(folds, 'followCount').reverse() const navigationOptions = user === null ? signedOutNavigation : navigation const mobileNavigationOptions = user === null ? signedOutMobileNavigation : mobileNavigation return ( ) }