All files / web/src/app/create/worksheets/components PreviewDataInjector.tsx

0% Statements 0/31
0% Branches 0/1
0% Functions 0/1
0% Lines 0/31

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                                               
'use client'

import { useEffect } from 'react'
import { useStreamedPreview } from './StreamedPreviewContext'

interface PreviewDataInjectorProps {
  pages?: string[]
  totalPages?: number
}

/**
 * Client component that receives streamed preview data from the server
 * and injects it into the StreamedPreviewContext for use by PreviewCenter.
 *
 * This component renders nothing visible - it just bridges the server-streamed
 * data into the client-side context system.
 */
export function PreviewDataInjector({ pages, totalPages }: PreviewDataInjectorProps) {
  const { setStreamedPreview } = useStreamedPreview()

  useEffect(() => {
    console.log('[PreviewDataInjector] Received streamed preview:', {
      pageCount: pages?.length ?? 0,
      totalPages,
    })
    setStreamedPreview(pages, totalPages)
  }, [pages, totalPages, setStreamedPreview])

  // This component doesn't render anything visible
  return null
}