import React from "react";
import {
Dialog,
DialogContent,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import { ModalState } from "@/types";
import { TraceDetailsModal } from "@/components/shared/modals/TraceDetailsModal";
import { StageResultsModal } from "@/components/shared/modals/StageResultsModal";
import { KnowledgeGraphModal } from "@/components/shared/modals/KnowledgeGraphModal";
import { TraceSegmentModal } from "@/components/shared/modals/TraceSegmentModal";
import ExampleTraceModal from "./modals/ExampleTraceModal";
import { ObservabilityConnectionDialog } from "@/components/features/observability/ObservabilityConnectionDialog";
import { UploadDialog } from "@/components/features/upload/UploadDialog";
import { AuthModal } from "@/components/auth/AuthModal";
interface ModalSystemProps {
modalState: ModalState;
onClose: () => void;
}
export function ModalSystem({ modalState, onClose }: ModalSystemProps) {
const { isOpen, type, title, data, config } = modalState;
const getModalSize = () => {
switch (config?.size) {
case "sm":
return "max-w-md";
case "md":
return "max-w-lg";
case "lg":
return "max-w-2xl";
case "xl":
return "max-w-4xl";
case "full":
return "max-w-[95vw] max-h-[95vh]";
default:
return "max-w-3xl";
}
};
const renderModalContent = () => {
switch (type) {
case "trace-details":
return