import { useRouter } from 'next/router' import { useEffect } from 'react' import RefEducationSection from '~/components/reference/RefEducationSection' import RefFunctionSection from '~/components/reference/RefFunctionSection' import RefSubLayout from '~/layouts/ref/RefSubLayout' import ApiOperationSection from './ApiOperationSection' import CliCommandSection from './CLICommandSection' import { IAPISpec, ICommonFunc, IRefStaticDoc, ISpec, TypeSpec } from './Reference.types' interface RefSectionHandlerProps { sections: ICommonFunc[] spec?: ISpec | IAPISpec typeSpec?: TypeSpec pageProps: { docs: IRefStaticDoc[] } type: 'client-lib' | 'cli' | 'api' } const RefSectionHandler = (props: RefSectionHandlerProps) => { const router = useRouter() const slug = router.query.slug[0] // When user lands on a url like http://supabase.com/docs/reference/javascript/sign-up // find the #sign-up element and scroll to that useEffect(() => { if (document && slug !== 'start') { document.querySelector(`#${slug}`) && document.querySelector(`#${slug}`).scrollIntoView() } }) return ( {props.sections.map((x, i) => { switch (x.type) { case 'markdown': const markdownData = props.pageProps.docs.find((doc) => doc.id === x.id) return break case 'function': return ( ) case 'cli-command': return break case 'operation': return ( ) default: return ( ) break } })} ) } export default RefSectionHandler