import { useMemo } from "react"; import { Button } from "@/src/components/ui/button"; import { Pencil } from "lucide-react"; import { JSONView } from "@/src/components/ui/CodeJsonViewer"; import type { FinalPreviewStepProps, DialogStep } from "./types"; import { applyFullMapping } from "@langfuse/shared"; export function FinalPreviewStep({ dataset, mapping, observationData, totalCount, onEditStep, }: FinalPreviewStepProps) { // Compute the full preview const previewResult = useMemo(() => { if (!observationData) return null; return applyFullMapping({ observation: { input: observationData.input, output: observationData.output, metadata: observationData.metadata, }, mapping, }); }, [observationData, mapping]); return (

Review Configuration

Adding {totalCount} observation{totalCount !== 1 ? "s" : ""} to dataset " {dataset.name}"

Sample dataset item preview (from first selected observation):
{!observationData ? (

No observation data available for preview

) : (
{/* Input Preview */} onEditStep("input-mapping" as DialogStep)} /> {/* Expected Output Preview */} onEditStep("output-mapping" as DialogStep)} /> {/* Metadata Preview */} onEditStep("metadata-mapping" as DialogStep)} />
)}
); } type PreviewCardProps = { label: string; data: unknown; onEdit: () => void; }; function PreviewCard({ label, data, onEdit }: PreviewCardProps) { return (
{label}
{data === null ? (
null
) : ( )}
); }