import * as Dialog from '@radix-ui/react-alert-dialog' import { Dispatch, createContext, useContext, useState } from 'react' import { Link } from 'react-router-dom' import { Example, examples } from './examples' const dialogContext = createContext<{ example: Example | null setExampleDialog: Dispatch }>({ example: null, setExampleDialog: () => void null, }) export function DialogContextProvider({ children }: { children: React.ReactNode }) { const [example, setExampleDialog] = useState(null) return ( {children} ) } export function ExamplePage({ example, children, }: { example: Example children: React.ReactNode }) { const categories = examples.map((e) => e.id) const [filterValue, setFilterValue] = useState('') const handleFilterChange = (e: React.ChangeEvent) => { setFilterValue(e.target.value) } return (
    {categories.map((currentCategory) => (
  • {currentCategory}

      {examples .find((category) => category.id === currentCategory) ?.value.filter((example) => example.title.toLowerCase().includes(filterValue.toLowerCase()) ) .map((sidebarExample) => ( ))}
  • ))}
{children}
) } function ExampleSidebarListItem({ example, isActive, }: { example: Example isActive?: boolean showDescriptionWhenInactive?: boolean }) { const { setExampleDialog } = useContext(dialogContext) return (
  • {example.title}
    {isActive && (
    {example.details && ( )}
    )}
  • ) } function Markdown({ sanitizedHtml, className = '', }: { sanitizedHtml: string className?: string }) { return (
    ) } function Dialogs() { const { example, setExampleDialog } = useContext(dialogContext) if (!example) return null const handleOpenChange = (open: boolean) => { if (!open) { setExampleDialog(null) } } return ( setExampleDialog(null)} />

    {example.title}

    ) } function SocialIcon({ icon }: { icon: string }) { return ( ) } function StandaloneIcon() { return ( ) } function InfoIcon() { return ( ) } function ExternalLinkIcon() { return ( ) } function TldrawLogo() { return }