@@ -396,6 +396,14 @@ const ModesView = ({ onDone }: ModesViewProps) => {
396396 return ( ) => document . removeEventListener ( "click" , handleClickOutside )
397397 } , [ showConfigMenu ] )
398398
399+ // Use a ref to store the current modeToDelete value
400+ const modeToDeleteRef = useRef ( modeToDelete )
401+
402+ // Update the ref whenever modeToDelete changes
403+ useEffect ( ( ) => {
404+ modeToDeleteRef . current = modeToDelete
405+ } , [ modeToDelete ] )
406+
399407 useEffect ( ( ) => {
400408 const handler = ( event : MessageEvent ) => {
401409 const message = event . data
@@ -407,9 +415,11 @@ const ModesView = ({ onDone }: ModesViewProps) => {
407415 }
408416 } else if ( message . type === "deleteCustomModeCheck" ) {
409417 // Handle the check response
410- if ( message . slug && modeToDelete && modeToDelete . slug === message . slug ) {
418+ // Use the ref to get the current modeToDelete value
419+ const currentModeToDelete = modeToDeleteRef . current
420+ if ( message . slug && currentModeToDelete && currentModeToDelete . slug === message . slug ) {
411421 setModeToDelete ( {
412- ...modeToDelete ,
422+ ...currentModeToDelete ,
413423 rulesFolderPath : message . rulesFolderPath ,
414424 } )
415425 setShowDeleteConfirm ( true )
@@ -419,7 +429,7 @@ const ModesView = ({ onDone }: ModesViewProps) => {
419429
420430 window . addEventListener ( "message" , handler )
421431 return ( ) => window . removeEventListener ( "message" , handler )
422- } , [ modeToDelete ] )
432+ } , [ ] ) // Empty dependency array - only register once
423433
424434 const handleAgentReset = (
425435 modeSlug : string ,
0 commit comments