'use client' import { useMemo } from 'react' import Loading from '@/app/components/base/loading' import WorkflowWithDefaultContext from '@/app/components/workflow' import { WorkflowContextProvider } from '@/app/components/workflow/context' import { initialEdges, initialNodes } from '@/app/components/workflow/utils' import SnippetLayout from './components/snippet-layout' import SnippetMain from './components/snippet-main' import { useSnippetInit } from './hooks/use-snippet-init' type SnippetPageProps = { snippetId: string } const SnippetPageLoading = ({ snippetId }: SnippetPageProps) => { return (
) } const SnippetPage = ({ snippetId }: SnippetPageProps) => { const { data, isLoading } = useSnippetInit(snippetId) const publishedNodesData = useMemo(() => { if (!data) return [] return initialNodes(data.published.graph.nodes, data.published.graph.edges) }, [data]) const publishedEdgesData = useMemo(() => { if (!data) return [] return initialEdges(data.published.graph.edges, data.published.graph.nodes) }, [data]) const draftNodesData = useMemo(() => { if (!data) return [] return initialNodes(data.draft.graph.nodes, data.draft.graph.edges) }, [data]) const draftEdgesData = useMemo(() => { if (!data) return [] return initialEdges(data.draft.graph.edges, data.draft.graph.nodes) }, [data]) if (!data || isLoading) { return } const hasPublishedWorkflow = !!data.publishedWorkflow const initialWorkflowNodesData = hasPublishedWorkflow ? publishedNodesData : draftNodesData const initialWorkflowEdgesData = hasPublishedWorkflow ? publishedEdgesData : draftEdgesData return ( ) } const SnippetPageWrapper = ({ snippetId }: SnippetPageProps) => { return ( ) } export default SnippetPageWrapper