import Link from 'next/link' import { useRouter } from 'next/router' import { IconChevronLeft } from 'ui' import * as NavItems from './NavigationMenu.constants' import * as Accordion from '@radix-ui/react-accordion' import Image from 'next/image' import clientLibsCommonSections from '~/../../spec/common-client-libs-sections.json' import { useEffect, useState, memo } from 'react' import useWindowLocation from '~/hooks/useWindowLocation' import { useNavigationMenuContext } from './NavigationMenu.Context' import { find } from 'lodash' import { useMenuActiveRefId } from '~/hooks/useMenuState' import RevVersionDropdown from '~/components/RefVersionDropdown' const allFunctions = Object.values(clientLibsCommonSections.sections.functions) const FunctionLink = ({ title, id, icon, product, library, slug, }: { title: string name?: string id: string icon?: string product?: string library: string slug: string }) => { const router = useRouter() // const { activeRefItem } = useNavigationMenuContext() const activeAccordianItem = useMenuActiveRefId() const active = activeAccordianItem === id return (
  • {icon && } {title}
  • ) } const SideMenuTitle = ({ title }: { title: string }) => { return ( {title} ) } const Divider = () => { return
    } const NavigationMenuRefList = ({ currentLevel, setLevel, id, lib }) => { const router = useRouter() // const { activeRefItem } = useNavigationMenuContext() // const [activeAccordianItem, setActiveAccordianItem] = useState('') // const activeRefItem = useMenuActiveRefId() // Get only the functions with references in the current librarry // ie: if the lib === dart, only get the dart functions const allCurrentFunctions = allFunctions .map((fn: any) => { if (fn.items.flat().find((item) => item.libs.includes(lib))) return fn }) .filter((item) => item) const introItems = Object.values(clientLibsCommonSections.sections.intro[lib].items) const menu = NavItems[id] const url = router.asPath const firstLevelRoute = url?.split('/')?.slice(0, 4)?.join('/') const path = useWindowLocation() useEffect(() => { //console.log('path', path) }, [path]) // console.log('firstLevelRoute', firstLevelRoute) // console.log('allFunctions', allFunctions) const databaseFunctions = find(allFunctions, { title: 'Database' }).items const filterIds = find(databaseFunctions, { id: 'using-filters', }).items.map((x) => x.id) const modifierIds = find(databaseFunctions, { id: 'using-modifiers', }).items.map((x) => x.id) // console.log(filterIds, modifierIds) // console.log(filterIds.includes(activeRefItem) ? 'test IS FILTER' : 'test NOT FIlTER') // useEffect(() => { // console.log('activeAccordianItem in USEEFFECT', activeAccordianItem) // if (filterIds.includes(activeRefItem) || activeRefItem === 'using-filters') { // console.log('FILTERS') // setActiveAccordianItem('using-filters') // } else if (modifierIds.includes(activeRefItem) || activeRefItem === 'using-modifiers') { // console.log('MODIFIERS') // setActiveAccordianItem('using-modifiers') // } else { // setActiveAccordianItem('') // } // }, [activeRefItem]) // console.log('filterIds', filterIds) // console.log('modifierIds', modifierIds) return (
    {/* {process.env.NEXT_PUBLIC_EXPERIMENTAL_REF !== 'true' && ( */}
    Back to Main Menu
    {/* )} */} {/* {process.env.NEXT_PUBLIC_EXPERIMENTAL_REF !== 'true' && ( */}
    {id} {menu.title}
    {/* )} */} {menu.extras && ( <> {' '} Resources )} {menu.extras?.map((x) => { return (
  • {x.icon && ( {x.icon} )} {x.name}
  • ) })}
    ) } export default memo(NavigationMenuRefList)