import { useState, useEffect } from "react"; import { IconChevronDown, IconChevronUp } from "@tabler/icons-react"; import { useApprovalStore } from "@/stores"; import { DisplayBlocks } from "./DisplayBlocks"; import { cn } from "@/lib/utils"; import type { ApprovalResponse } from "shared/legacy-sdk"; export function ApprovalDialog() { const { pending, respondToRequest } = useApprovalStore(); const [selectedIndex, setSelectedIndex] = useState(1); const [expanded, setExpanded] = useState(false); const req = pending[0]; // Auto-expand if there's a diff block (code change) useEffect(() => { if (req) { const hasDiff = req.display?.some((b) => b.type === "diff") ?? false; setExpanded(hasDiff); } }, [req?.id]); if (!req) return null; const hasDisplay = req.display && req.display.length > 0; const handleResponse = async (response: ApprovalResponse) => { await respondToRequest(req.id, response); setSelectedIndex(1); setExpanded(false); }; const options = [ { key: "approve", label: "Yes", index: 1 }, { key: "approve_for_session", label: "Yes, for this session", index: 2 }, { key: "reject", label: "No", index: 3 }, ] as const; return (