import { Button, Dialog, DialogHeader, ScrollArea } from "@prismicio/editor-ui"; import { CustomType } from "@prismicio/types-internal/lib/customtypes"; import { FC, Suspense } from "react"; import { telemetry } from "@/apiClient"; import { ContentTabs } from "@/components/ContentTabs"; import { MarkdownRenderer } from "@/features/documentation/MarkdownRenderer"; import { useDocumentation } from "@/features/documentation/useDocumentation"; import { DefaultErrorBoundary } from "@/features/errorBoundaries"; import { useOnboarding } from "@/features/onboarding/useOnboarding"; import { useAdapterName } from "@/hooks/useAdapterName"; import styles from "./PageSnippetDialog.module.css"; type PageSnippetContentProps = { model: CustomType }; const PageSnippetContent: FC = ({ model }) => { const adapter = useAdapterName(); const documentation = useDocumentation({ kind: "PageSnippet", data: { model }, }); const { completeStep } = useOnboarding(); if (documentation.length === 0) { return null; } const trackOpenSnippet = () => { void completeStep("codePage"); void telemetry.track({ event: "page-type:open-snippet", framework: adapter, }); }; return ( Page snippet } >
{documentation.length > 1 ? ( ({ label: label ?? `Tab ${i + 1}`, content: , }))} /> ) : ( )}
); }; type PageSnippetDialogProps = { model: CustomType }; export const PageSnippetDialog: FC = ({ model }) => { return (
Page snippet } >
); };