import { useRouter } from 'next/router' import { useState, useEffect } from 'react' import { IconChevronLeft } from '~/../../packages/ui' import * as NavItems from './NavigationMenu.constants' import NavigationMenuGuideList from './NavigationMenuGuideList' const SideNav = () => { console.log('sidebar rerendered') const router = useRouter() const [level, setLevel] = useState('home') const tempBasePath = '/new' function handleRouteChange(url: string) { console.log('path changed') console.log(url) console.log('LISTEN') switch (url) { case `/docs${tempBasePath}`: setLevel('home') break case `/docs${tempBasePath}/getting-started`: setLevel('gettingstarted') break case `/docs${tempBasePath}/tutorials`: setLevel('tutorials') break case `/docs${tempBasePath}/database`: setLevel('database') break case `/docs${tempBasePath}/auth`: setLevel('auth') break case `/docs${tempBasePath}/storage`: setLevel('storage') break case `/docs${tempBasePath}/realtime`: setLevel('realtime') break case `/docs${tempBasePath}/edge-functions`: setLevel('functions') break case `/docs${tempBasePath}/reference`: setLevel('reference') break case `/docs${tempBasePath}/integrations`: setLevel('integrations') break case `/docs${tempBasePath}/platform`: setLevel('platform') break case url.includes(`/docs${tempBasePath}/reference/javascript/`) && url: setLevel('reference_javascript') break default: break } } useEffect(() => { // Listen for page changes after a navigation or when the query changes router.events.on('routeChangeComplete', handleRouteChange) return () => { router.events.off('routeChangeComplete', handleRouteChange) } }, [router.events]) // handleRouteChange(router.asPath) const home = [ [ { label: 'Home', icon: 'home.svg', href: '', level: 'home', }, { label: 'Getting started', icon: 'getting-started.svg', href: '/getting-started', level: 'gettingstarted', }, { label: 'Tutorials', icon: 'tutorials.svg', href: '/tutorials', level: 'tutorials', }, ], [ { label: 'Database', icon: 'database.svg', href: '/database', level: 'database', }, { label: 'Auth', icon: 'auth.svg', href: '/auth', level: 'auth', }, { label: 'Storage', icon: 'storage.svg', href: '/storage', level: 'storage', }, { label: 'Realtime', icon: 'realtime.svg', href: '/realtime', level: 'realtime', }, { label: 'Edge Functions', icon: 'functions.svg', href: '/edge-functions', level: 'functions', }, ], [ { label: 'API Reference', icon: 'reference.svg', href: '/reference', level: 'reference', }, { label: 'Integrations', icon: 'integrations.svg', href: '/integrations', level: 'integrations', }, { label: 'Platform', icon: 'platform.svg', href: '/platform', level: 'platform', }, ], ] const auth = [ { label: 'back', icon: 'home.svg', href: '', level: 'home', }, ] const ref = [ { label: 'back', icon: 'home.svg', href: '', level: 'home', }, { label: 'supabase-js v2', icon: 'home.svg', href: '/reference/javascript/start', level: 'ref_js', }, { label: 'supabase-js v1', icon: 'home.svg', href: '/reference/javascript/v1/start', level: 'ref_js', }, { label: 'supabase-dart v1', icon: 'home.svg', href: '/reference/dart/start', level: 'ref_dart', }, ] const ref_js = [ { label: 'back to ref', icon: 'home.svg', href: '/reference', level: 'ref', }, ] return (