# All files / src/components/features/snippet-viewer SnippetViewerContent.tsx

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

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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59

     import { Snippet } from '@/lib/types'
    import { MonacoEditor } from '@/components/features/snippet-editor/MonacoEditor'
    import { ReactPreview } from '@/components/features/snippet-editor/ReactPreview'
    import { PythonOutput } from '@/components/features/python-runner/PythonOutput'

    interface SnippetViewerContentProps {
      snippet: Snippet
      canPreview: boolean
      showPreview: boolean
      isPython: boolean
    }

    export function SnippetViewerContent({
      snippet,
      canPreview,
      showPreview,
      isPython,
    }: SnippetViewerContentProps) {
      if (canPreview && showPreview) {
        return (
          <>
            <div className="flex-1 overflow-hidden border-r border-border">
              <MonacoEditor
                value={snippet.code}
                onChange={() => {}}
                language={snippet.language}
                height="100%"
                readOnly={true}
              />
            </div>
            <div className="flex-1 overflow-hidden">
              {isPython ? (
                <PythonOutput code={snippet.code} />
              ) : (
                <ReactPreview
                  code={snippet.code}
                  language={snippet.language}
                  functionName={snippet.functionName}
                  inputParameters={snippet.inputParameters}
                />
              )}
            </div>
          </>
        )
      }

      return (
        <div className="flex-1 overflow-hidden">
          <MonacoEditor
            value={snippet.code}
            onChange={() => {}}
            language={snippet.language}
            height="100%"
            readOnly={true}
          />
        </div>
      )
    }