import React, { useState } from 'react'; import { useIsProposeChangesModalOpen, useProposeChangesRequest, useUISelector, } from '../../contexts/UIContext'; const prettyJson = (obj: any) => { try { return JSON.stringify(obj, null, 2); } catch { return String(obj); } }; const ProposeChangesModal = function ProposeChangesModal() { const open = useIsProposeChangesModalOpen(); // const setOpen = useSetIsProposeChangesModalOpen(); const req = useProposeChangesRequest(); const resolve = useUISelector((s) => s.resolveProposeChanges); const [userReason, setUserReason] = useState(''); const goal = (req && (req.arguments?.goal ?? req.goal)) || ''; const actions = (req && (req.arguments?.actions ?? req.actions)) || []; const checks = (req && (req.arguments?.checks ?? req.checks)) || []; if (!open) return null; // Decision is communicated via a custom event the ChatContext listens to (by ref), // or via a resolver in UIContext that is handled when the modal closes. Here we // emit a DOM event; ChatContext doesn't need to import this component directly. const resolveDecision = (approved: boolean) => { resolve({ approved, user_reason: approved ? undefined : (userReason || undefined) }); }; return (
{prettyJson(actions)}
{prettyJson(checks)}