import { useRouter } from "next/router"; import { Skeleton } from "@/src/components/ui/skeleton"; import TableLink from "@/src/components/table/table-link"; import { CardDescription } from "@/src/components/ui/card"; import { EvaluatorForm } from "@/src/features/evals/components/evaluator-form"; import { usePeekEvalConfigData } from "@/src/components/table/peek/hooks/usePeekEvalConfigData"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/src/components/ui/tooltip"; import { LangfuseIcon } from "@/src/components/LangfuseLogo"; import { UserCircle2Icon } from "lucide-react"; import { StatusBadge } from "@/src/components/layouts/status-badge"; import { DeactivateEvalConfig } from "@/src/features/evals/components/deactivate-config"; import { Switch } from "@/src/components/ui/switch"; import { useHasProjectAccess } from "@/src/features/rbac/utils/checkProjectAccess"; import { useState } from "react"; import { cn } from "@/src/utils/tailwind"; import { showSuccessToast } from "@/src/features/notifications/showSuccessToast"; import { api } from "@/src/utils/api"; export const PeekViewEvaluatorConfigDetail = ({ projectId, }: { projectId: string; }) => { const router = useRouter(); const peekId = router.query.peek as string | undefined; const [isEditMode, setIsEditMode] = useState(false); const utils = api.useUtils(); const { data: evalConfig } = usePeekEvalConfigData({ jobConfigurationId: peekId, projectId, }); const hasAccess = useHasProjectAccess({ projectId, scope: "evalJob:CUD" }); if (!evalConfig) { return ; } return (
Configuration
Edit Mode
Referenced Evaluator {evalConfig.evalTemplate && ( )} {evalConfig.evalTemplate && ( {evalConfig.evalTemplate.projectId === null ? ( ) : ( )} {evalConfig.evalTemplate.partner ?? "Langfuse"} )}
{ setIsEditMode(false); utils.evals.invalidate(); showSuccessToast({ title: "Running Evaluator updated", description: "The evaluator configuration has been updated.", }); }} />
); };