@@ -416,6 +416,14 @@ const ModesView = ({ onDone }: ModesViewProps) => {
416416 return ( ) => document . removeEventListener ( "click" , handleClickOutside )
417417 } , [ showConfigMenu ] )
418418
419+ // Use a ref to store the current modeToDelete value
420+ const modeToDeleteRef = useRef ( modeToDelete )
421+
422+ // Update the ref whenever modeToDelete changes
423+ useEffect ( ( ) => {
424+ modeToDeleteRef . current = modeToDelete
425+ } , [ modeToDelete ] )
426+
419427 useEffect ( ( ) => {
420428 const handler = ( event : MessageEvent ) => {
421429 const message = event . data
@@ -449,9 +457,11 @@ const ModesView = ({ onDone }: ModesViewProps) => {
449457 } ) )
450458 } else if ( message . type === "deleteCustomModeCheck" ) {
451459 // Handle the check response
452- if ( message . slug && modeToDelete && modeToDelete . slug === message . slug ) {
460+ // Use the ref to get the current modeToDelete value
461+ const currentModeToDelete = modeToDeleteRef . current
462+ if ( message . slug && currentModeToDelete && currentModeToDelete . slug === message . slug ) {
453463 setModeToDelete ( {
454- ...modeToDelete ,
464+ ...currentModeToDelete ,
455465 rulesFolderPath : message . rulesFolderPath ,
456466 } )
457467 setShowDeleteConfirm ( true )
@@ -461,7 +471,7 @@ const ModesView = ({ onDone }: ModesViewProps) => {
461471
462472 window . addEventListener ( "message" , handler )
463473 return ( ) => window . removeEventListener ( "message" , handler )
464- } , [ ] )
474+ } , [ ] ) // Empty dependency array - only register once
465475
466476 const handleAgentReset = (
467477 modeSlug : string ,
0 commit comments