import { useParams } from 'common' import type { ShowApiKey } from '../../Docs/Docs.types' import { GeneralContent } from '@/components/interfaces/Docs/GeneralContent' import { ResourceContent } from '@/components/interfaces/Docs/ResourceContent' import { RpcContent } from '@/components/interfaces/Docs/RpcContent' import { buildEntityMaps } from '@/components/interfaces/Integrations/DataApi/DataApi.utils' import { DocViewError } from '@/components/interfaces/Integrations/DataApi/DocViewError' import { DocViewLoading } from '@/components/interfaces/Integrations/DataApi/DocViewLoading' import { useProjectSettingsV2Query } from '@/data/config/project-settings-v2-query' import { useProjectJsonSchemaQuery } from '@/data/docs/project-json-schema-query' interface DocViewProps { selectedLang: 'js' | 'bash' selectedApiKey: ShowApiKey } export const DocView = ({ selectedLang, selectedApiKey }: DocViewProps) => { const { ref: projectRef, page, resource, rpc } = useParams() const { data: settings, error: settingsError } = useProjectSettingsV2Query({ projectRef }) const { data: jsonSchema, error: jsonSchemaError, isPending: isLoading, refetch, } = useProjectJsonSchemaQuery({ projectRef }) const { paths } = jsonSchema || {} const PAGE_KEY = resource || rpc || page || 'index' const { resources, rpcs } = buildEntityMaps(paths) if (settingsError || jsonSchemaError) { return } if (isLoading || !settings || !jsonSchema) { return } return (
{resource ? ( ) : rpc ? ( ) : ( )}
) }