@@ -43,7 +43,11 @@ interface SimplifiedPlanChatProps extends PlanChatProps {
4343 streamingMessageBuffer : string ;
4444 agentMessages : AgentMessageData [ ] ;
4545 showProcessingPlanSpinner : boolean ;
46- setShowProcessingPlanSpinner : ( show : boolean ) => void ;
46+ showApprovalButtons : boolean ;
47+ handleApprovePlan : ( ) => Promise < void > ;
48+ handleRejectPlan : ( ) => Promise < void > ;
49+ processingApproval : boolean ;
50+
4751}
4852
4953const PlanChat : React . FC < SimplifiedPlanChatProps > = ( {
@@ -61,79 +65,23 @@ const PlanChat: React.FC<SimplifiedPlanChatProps> = ({
6165 streamingMessageBuffer,
6266 agentMessages,
6367 showProcessingPlanSpinner,
64- setShowProcessingPlanSpinner
68+ showApprovalButtons,
69+ handleApprovePlan,
70+ handleRejectPlan,
71+ processingApproval
72+
6573
6674} ) => {
6775 const navigate = useNavigate ( ) ;
6876
6977 const { showToast, dismissToast } = useInlineToaster ( ) ;
7078 // States
7179
72- const [ processingApproval , setProcessingApproval ] = useState ( false ) ;
73-
74- const [ showApprovalButtons , setShowApprovalButtons ] = useState ( true ) ;
75-
76-
77-
78-
79- // Listen for m_plan streaming
80-
81-
82- // Handle plan approval
83- const handleApprovePlan = useCallback ( async ( ) => {
84- if ( ! planApprovalRequest ) return ;
85-
86- setProcessingApproval ( true ) ;
87- let id = showToast ( "Submitting Approval" , "progress" ) ;
88- try {
89- await apiService . approvePlan ( {
90- m_plan_id : planApprovalRequest . id ,
91- plan_id : planData ?. plan ?. id ,
92- approved : true ,
93- feedback : 'Plan approved by user'
94- } ) ;
95-
96- dismissToast ( id ) ;
97- onPlanApproval ?.( true ) ;
98- setShowProcessingPlanSpinner ?.( true ) ;
99- setShowApprovalButtons ( false ) ;
100-
101- } catch ( error ) {
102- dismissToast ( id ) ;
103- showToast ( "Failed to submit approval" , "error" ) ;
104- console . error ( '❌ Failed to approve plan:' , error ) ;
105- } finally {
106- setProcessingApproval ( false ) ;
107- }
108- } , [ planApprovalRequest , planData , onPlanApproval , setShowProcessingPlanSpinner ] ) ;
109-
110- // Handle plan rejection
111- const handleRejectPlan = useCallback ( async ( ) => {
112- if ( ! planApprovalRequest ) return ;
113-
114- setProcessingApproval ( true ) ;
115- let id = showToast ( "Submitting cancellation" , "progress" ) ;
116- try {
117- await apiService . approvePlan ( {
118- m_plan_id : planApprovalRequest . id ,
119- plan_id : planData ?. plan ?. id ,
120- approved : false ,
121- feedback : 'Plan rejected by user'
122- } ) ;
123-
124- dismissToast ( id ) ;
125- onPlanApproval ?.( false ) ;
126- navigate ( '/' ) ;
127-
128- } catch ( error ) {
129- dismissToast ( id ) ;
130- showToast ( "Failed to submit cancellation" , "error" ) ;
131- console . error ( '❌ Failed to reject plan:' , error ) ;
132- navigate ( '/' ) ;
133- } finally {
134- setProcessingApproval ( false ) ;
135- }
136- } , [ planApprovalRequest , planData , onPlanApproval , navigate ] ) ;
80+
81+
82+
83+
84+
13785
13886 if ( ! planData )
13987 return (
0 commit comments