import React from "react"; import { Card, CardContent, CardHeader, CardTitle, } from "@/src/components/ui/card"; import { Badge } from "@/src/components/ui/badge"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/src/components/ui/tooltip"; import { InfoIcon } from "lucide-react"; import { type ReviewStepProps } from "@/src/features/experiments/types/stepProps"; import { StepHeader } from "@/src/features/experiments/components/shared/StepHeader"; export const ReviewStep: React.FC = ({ formState, navigationState, summary, }) => { const { form } = formState; const { setActiveStep } = navigationState; const { selectedPromptName, selectedPromptVersion, selectedDataset, modelParams, activeEvaluatorNames, structuredOutputEnabled, selectedSchemaName, validationResult, } = summary; const formValues = form.getValues(); return (
{/* Two-column grid layout */}
{/* Prompt Card - Top Left */} setActiveStep("prompt")} > Prompt
Name: {selectedPromptName}
Version: v{selectedPromptVersion}
{/* Model Card - Top Right */} setActiveStep("prompt")} > Model
Provider: {modelParams.provider.value}
Model: {modelParams.model.value}
{modelParams.temperature.enabled && (
Temperature: {modelParams.temperature.value}
)} {modelParams.max_tokens.enabled && (
Max Tokens: {modelParams.max_tokens.value}
)} {structuredOutputEnabled && selectedSchemaName && (
Structured Output: {selectedSchemaName}
)}
{/* Dataset Card - Middle Left */} setActiveStep("dataset")} > Dataset
Name: {selectedDataset?.name}
{validationResult?.isValid && (
Items: {validationResult.totalItems}
)}
{/* Evaluators Card - Middle Right (only if there are evaluators) */} {activeEvaluatorNames.length > 0 && ( setActiveStep("evaluators")} > Evaluators ({activeEvaluatorNames.length})
{activeEvaluatorNames.map((name) => ( {name} ))}
)} {/* Run Details Card - Bottom (Full Width) */} setActiveStep("details")} > Experiment Run Details
Experiment Name: {formValues.name}
Run Name: {formValues.runName} This run name is auto-generated from the experiment name and can be used to fetch the resulting experiment run via the public API.
{formValues.description && (
Description: {formValues.description}
)}
); };