Spaces:
Running
Running
fix: Disable download button until content exists - prevent empty download field UX issue
Browse files- Download button now disabled by default (interactive=False)
- Button only enables after successful generation completes
- Uses .then() chain to enable button after streaming finishes
- Hidden download_output component for cleaner UX
app.py
CHANGED
|
@@ -1029,7 +1029,10 @@ def create_interface():
|
|
| 1029 |
with gr.Row():
|
| 1030 |
copy_summary_btn = gr.Button("π Copy Summary", size="sm")
|
| 1031 |
copy_thinking_btn = gr.Button("π Copy Thinking", size="sm")
|
| 1032 |
-
download_btn = gr.Button("β¬οΈ Download (JSON)", size="sm")
|
|
|
|
|
|
|
|
|
|
| 1033 |
|
| 1034 |
# Event handlers
|
| 1035 |
submit_btn.click(
|
|
@@ -1037,6 +1040,9 @@ def create_interface():
|
|
| 1037 |
inputs=[file_input, model_dropdown, enable_reasoning, max_tokens, temperature_slider, top_p, top_k, language_selector],
|
| 1038 |
outputs=[thinking_output, summary_output, info_output, metrics_state],
|
| 1039 |
show_progress="full"
|
|
|
|
|
|
|
|
|
|
| 1040 |
)
|
| 1041 |
|
| 1042 |
model_dropdown.change(
|
|
@@ -1064,7 +1070,7 @@ def create_interface():
|
|
| 1064 |
download_btn.click(
|
| 1065 |
fn=download_summary_json,
|
| 1066 |
inputs=[summary_output, thinking_output, model_dropdown, language_selector, metrics_state],
|
| 1067 |
-
outputs=[
|
| 1068 |
)
|
| 1069 |
|
| 1070 |
# Footer
|
|
|
|
| 1029 |
with gr.Row():
|
| 1030 |
copy_summary_btn = gr.Button("π Copy Summary", size="sm")
|
| 1031 |
copy_thinking_btn = gr.Button("π Copy Thinking", size="sm")
|
| 1032 |
+
download_btn = gr.Button("β¬οΈ Download (JSON)", size="sm", interactive=False)
|
| 1033 |
+
|
| 1034 |
+
# Hidden file output for download (not shown until ready)
|
| 1035 |
+
download_output = gr.File(label="Download", visible=False)
|
| 1036 |
|
| 1037 |
# Event handlers
|
| 1038 |
submit_btn.click(
|
|
|
|
| 1040 |
inputs=[file_input, model_dropdown, enable_reasoning, max_tokens, temperature_slider, top_p, top_k, language_selector],
|
| 1041 |
outputs=[thinking_output, summary_output, info_output, metrics_state],
|
| 1042 |
show_progress="full"
|
| 1043 |
+
).then(
|
| 1044 |
+
fn=lambda: gr.Button(interactive=True),
|
| 1045 |
+
outputs=[download_btn]
|
| 1046 |
)
|
| 1047 |
|
| 1048 |
model_dropdown.change(
|
|
|
|
| 1070 |
download_btn.click(
|
| 1071 |
fn=download_summary_json,
|
| 1072 |
inputs=[summary_output, thinking_output, model_dropdown, language_selector, metrics_state],
|
| 1073 |
+
outputs=[download_output]
|
| 1074 |
)
|
| 1075 |
|
| 1076 |
# Footer
|