Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	Fix UI not resetting after cancel - add reset handler
Browse files- Add reset_ui_after_cancel function to properly reset UI components
- Chain .then() after cancel button click to reset UI state
- Clear cancel_event flag for next generation
- Ensures Submit button becomes interactive again after cancellation
    	
        app.py
    CHANGED
    
    | @@ -693,6 +693,16 @@ with gr.Blocks(title="LLM Inference with ZeroGPU") as demo: | |
| 693 | 
             
                    """Called by the cancel button, sets the global event."""
         | 
| 694 | 
             
                    cancel_event.set()
         | 
| 695 | 
             
                    print("Cancellation signal sent.")
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 696 |  | 
| 697 | 
             
                # Event for submitting text via Enter key or Submit button
         | 
| 698 | 
             
                submit_event = txt.submit(
         | 
| @@ -707,10 +717,13 @@ with gr.Blocks(title="LLM Inference with ZeroGPU") as demo: | |
| 707 | 
             
                )
         | 
| 708 |  | 
| 709 | 
             
                # Event for the "Cancel" button.
         | 
| 710 | 
            -
                # It  | 
| 711 | 
             
                cancel_btn.click(
         | 
| 712 | 
             
                    fn=set_cancel_flag,
         | 
| 713 | 
             
                    cancels=[submit_event]
         | 
|  | |
|  | |
|  | |
| 714 | 
             
                )
         | 
| 715 |  | 
| 716 | 
             
                # Listeners for updating the duration estimate
         | 
|  | |
| 693 | 
             
                    """Called by the cancel button, sets the global event."""
         | 
| 694 | 
             
                    cancel_event.set()
         | 
| 695 | 
             
                    print("Cancellation signal sent.")
         | 
| 696 | 
            +
                
         | 
| 697 | 
            +
                def reset_ui_after_cancel():
         | 
| 698 | 
            +
                    """Reset UI components after cancellation."""
         | 
| 699 | 
            +
                    cancel_event.clear()  # Clear the flag for next generation
         | 
| 700 | 
            +
                    print("UI reset after cancellation.")
         | 
| 701 | 
            +
                    return {
         | 
| 702 | 
            +
                        txt: gr.update(interactive=True),
         | 
| 703 | 
            +
                        submit_btn: gr.update(interactive=True),
         | 
| 704 | 
            +
                        cancel_btn: gr.update(visible=False),
         | 
| 705 | 
            +
                    }
         | 
| 706 |  | 
| 707 | 
             
                # Event for submitting text via Enter key or Submit button
         | 
| 708 | 
             
                submit_event = txt.submit(
         | 
|  | |
| 717 | 
             
                )
         | 
| 718 |  | 
| 719 | 
             
                # Event for the "Cancel" button.
         | 
| 720 | 
            +
                # It sets the cancel flag, cancels the submit event, then resets the UI.
         | 
| 721 | 
             
                cancel_btn.click(
         | 
| 722 | 
             
                    fn=set_cancel_flag,
         | 
| 723 | 
             
                    cancels=[submit_event]
         | 
| 724 | 
            +
                ).then(
         | 
| 725 | 
            +
                    fn=reset_ui_after_cancel,
         | 
| 726 | 
            +
                    outputs=ui_components
         | 
| 727 | 
             
                )
         | 
| 728 |  | 
| 729 | 
             
                # Listeners for updating the duration estimate
         | 
