#src/components/upload.py import streamlit as st from utils.database import insert_document def handle_document_upload(conn, backend): st.markdown("### 📤 Upload Documents") uploaded_files = st.file_uploader( "Upload PDF documents", type="pdf", accept_multiple_files=True ) if uploaded_files: new_files = [f for f in uploaded_files if f.name not in st.session_state.processed_files] if new_files: with st.spinner("Processing documents..."): all_texts, document_names, _ = backend.upload_and_parse_documents(new_files) if all_texts: try: with conn: for doc, doc_name in zip(all_texts, document_names): if insert_document(conn, doc_name, doc): st.session_state.processed_files.add(doc_name) st.success(f"Successfully uploaded {len(new_files)} new documents!") except Exception as e: st.error(f"Error saving documents to database: {e}")