Spaces:
Runtime error
Runtime error
fix: improve file browser layout - use selectbox instead of cramped columns
Browse files- streamlit_app.py +48 -33
streamlit_app.py
CHANGED
|
@@ -498,41 +498,56 @@ with tab4:
|
|
| 498 |
|
| 499 |
if files:
|
| 500 |
st.markdown(f"#### Files in {selected_paper_browse}")
|
| 501 |
-
|
| 502 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 503 |
with col1:
|
| 504 |
-
st.
|
| 505 |
with col2:
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
|
| 515 |
-
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
|
| 523 |
-
|
| 524 |
-
|
| 525 |
-
|
| 526 |
-
|
| 527 |
-
|
| 528 |
-
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
|
| 534 |
-
key=f"download_{file_path.name}",
|
| 535 |
-
)
|
| 536 |
else:
|
| 537 |
st.info(f"No files found in {selected_paper_browse}")
|
| 538 |
else:
|
|
|
|
| 498 |
|
| 499 |
if files:
|
| 500 |
st.markdown(f"#### Files in {selected_paper_browse}")
|
| 501 |
+
|
| 502 |
+
# Create file selector
|
| 503 |
+
file_names = [f.name for f in files]
|
| 504 |
+
selected_file_name = st.selectbox(
|
| 505 |
+
"Select file to view:",
|
| 506 |
+
file_names,
|
| 507 |
+
key="file_browser_select",
|
| 508 |
+
)
|
| 509 |
+
|
| 510 |
+
# Find the selected file
|
| 511 |
+
selected_file_path = None
|
| 512 |
+
for f in files:
|
| 513 |
+
if f.name == selected_file_name:
|
| 514 |
+
selected_file_path = f
|
| 515 |
+
break
|
| 516 |
+
|
| 517 |
+
if selected_file_path:
|
| 518 |
+
# Show file info and download button
|
| 519 |
+
col1, col2 = st.columns([4, 1])
|
| 520 |
with col1:
|
| 521 |
+
st.markdown(f"**File:** `{selected_file_path.name}`")
|
| 522 |
with col2:
|
| 523 |
+
with open(selected_file_path, "rb") as f:
|
| 524 |
+
st.download_button(
|
| 525 |
+
label="📥 Download",
|
| 526 |
+
data=f.read(),
|
| 527 |
+
file_name=selected_file_path.name,
|
| 528 |
+
key=f"download_{selected_file_path.name}",
|
| 529 |
+
)
|
| 530 |
+
|
| 531 |
+
st.markdown("---")
|
| 532 |
+
|
| 533 |
+
# Display file content
|
| 534 |
+
try:
|
| 535 |
+
if selected_file_path.suffix == ".md":
|
| 536 |
+
with open(selected_file_path, "r") as f:
|
| 537 |
+
content = f.read()
|
| 538 |
+
st.markdown(content)
|
| 539 |
+
elif selected_file_path.suffix == ".json":
|
| 540 |
+
with open(selected_file_path, "r") as f:
|
| 541 |
+
content = json.load(f)
|
| 542 |
+
st.json(content)
|
| 543 |
+
elif selected_file_path.suffix == ".txt":
|
| 544 |
+
with open(selected_file_path, "r") as f:
|
| 545 |
+
content = f.read()
|
| 546 |
+
st.code(content)
|
| 547 |
+
else:
|
| 548 |
+
st.info("Binary or unsupported file format")
|
| 549 |
+
except Exception as e:
|
| 550 |
+
st.error(f"Error reading file: {str(e)}")
|
|
|
|
|
|
|
| 551 |
else:
|
| 552 |
st.info(f"No files found in {selected_paper_browse}")
|
| 553 |
else:
|