@@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useRef, useState, useMemo } from "react"
22import { useParams , useNavigate } from "react-router-dom" ;
33import { Spinner , Text } from "@fluentui/react-components" ;
44import { PlanDataService } from "../services/PlanDataService" ;
5- import { ProcessedPlanData , WebsocketMessageType , MPlanData , AgentMessageData , AgentMessageType , ParsedUserClarification , AgentType , PlanStatus , FinalMessage } from "../models" ;
5+ import { ProcessedPlanData , WebsocketMessageType , MPlanData , AgentMessageData , AgentMessageType , ParsedUserClarification , AgentType , PlanStatus , FinalMessage , TeamConfig } from "../models" ;
66import PlanChat from "../components/content/PlanChat" ;
77import PlanPanelRight from "../components/content/PlanPanelRight" ;
88import PlanPanelLeft from "../components/content/PlanPanelLeft" ;
@@ -48,6 +48,7 @@ const PlanPage: React.FC = () => {
4848 const [ showProcessingPlanSpinner , setShowProcessingPlanSpinner ] = useState < boolean > ( false ) ;
4949 const [ showApprovalButtons , setShowApprovalButtons ] = useState < boolean > ( true ) ;
5050 const [ continueWithWebsocketFlow , setContinueWithWebsocketFlow ] = useState < boolean > ( false ) ;
51+ const [ selectedTeam , setSelectedTeam ] = useState < TeamConfig | null > ( null ) ;
5152 // WebSocket connection state
5253 const [ wsConnected , setWsConnected ] = useState < boolean > ( false ) ;
5354 const [ streamingMessages , setStreamingMessages ] = useState < StreamingPlanUpdate [ ] > ( [ ] ) ;
@@ -261,6 +262,7 @@ const PlanPage: React.FC = () => {
261262 setShowBufferingText ( true ) ;
262263 setShowProcessingPlanSpinner ( false ) ;
263264 setAgentMessages ( prev => [ ...prev , agentMessageData ] ) ;
265+ setSelectedTeam ( planData ?. team || null ) ;
264266 scrollToBottom ( ) ;
265267 // Persist the agent message
266268 const is_final = true ;
@@ -270,13 +272,19 @@ const PlanPage: React.FC = () => {
270272 }
271273
272274 processAgentMessage ( agentMessageData , planData , is_final , streamingMessageBuffer ) ;
275+
276+ setTimeout ( ( ) => {
277+ console . log ( '✅ Plan completed, refreshing left list' ) ;
278+ setReloadLeftList ( true ) ;
279+ } , 1000 ) ;
280+
273281 }
274282
275283
276284 } ) ;
277285
278286 return ( ) => unsubscribe ( ) ;
279- } , [ scrollToBottom , planData , processAgentMessage , streamingMessageBuffer ] ) ;
287+ } , [ scrollToBottom , planData , processAgentMessage , streamingMessageBuffer , setSelectedTeam , setReloadLeftList ] ) ;
280288
281289 //WebsocketMessageType.AGENT_MESSAGE
282290 useEffect ( ( ) => {
@@ -409,6 +417,8 @@ const PlanPage: React.FC = () => {
409417 return planResult ;
410418 } catch ( err ) {
411419 console . log ( "Failed to load plan data:" , err ) ;
420+ setErrorLoading ( true ) ;
421+ setPlanData ( null ) ;
412422 return null ;
413423 } finally {
414424 setLoading ( false ) ;
@@ -564,6 +574,15 @@ const PlanPage: React.FC = () => {
564574 return (
565575 < CoralShellColumn >
566576 < CoralShellRow >
577+ < PlanPanelLeft
578+ reloadTasks = { reloadLeftList }
579+ onNewTaskButton = { handleNewTaskButton }
580+ restReload = { resetReload }
581+ onTeamSelect = { ( ) => { } }
582+ onTeamUpload = { async ( ) => { } }
583+ isHomePage = { false }
584+ selectedTeam = { selectedTeam }
585+ />
567586 < Content >
568587 < div style = { {
569588 textAlign : "center" ,
@@ -591,7 +610,7 @@ const PlanPage: React.FC = () => {
591610 onTeamSelect = { ( ) => { } }
592611 onTeamUpload = { async ( ) => { } }
593612 isHomePage = { false }
594- selectedTeam = { null }
613+ selectedTeam = { selectedTeam }
595614 />
596615
597616 < Content >
0 commit comments