'use client' import { cn } from '../../lib/utils' import { ChatCanvasActions } from './actions' import { CodeArtifactViewer } from './artifacts/code' import { useChatCanvas } from './context' import { DocumentArtifactViewer } from './artifacts/document' import { ArtifactCard } from './artifact-card' interface ChatCanvasProps { children?: React.ReactNode className?: string } function ChatCanvas({ children, className }: ChatCanvasProps) { const { isCanvasOpen, displayedArtifact } = useChatCanvas() if (!isCanvasOpen || !displayedArtifact) return null return (
{children ?? ( <> )}
) } ChatCanvas.CodeArtifact = CodeArtifactViewer ChatCanvas.DocumentArtifact = DocumentArtifactViewer ChatCanvas.Artifact = ArtifactCard ChatCanvas.Actions = ChatCanvasActions export default ChatCanvas