from __future__ import annotations from typing import Any import streamlit as st from database.db import ( insert_feedback_submission, read_feedback_submissions, ) def render_feedback(conn: Any) -> None: st.header("Feedback") st.caption("Submit feedback or suggestions. All submissions are stored together.") message = st.text_area( "Your feedback", height=120, placeholder="Type your feedback here..." ) if st.button("Submit"): trimmed = (message or "").strip() if not trimmed: st.warning("Feedback cannot be empty.") else: try: insert_feedback_submission(conn, trimmed) st.success("Feedback submitted. Thank you!") except Exception as e: st.error(f"Failed to submit feedback: {e}") st.divider() st.subheader("Submitted Feedback") try: df = read_feedback_submissions(conn) except Exception as e: st.error(f"Could not load feedback: {e}") return if df.empty: st.info("No feedback submitted yet.") return for _, row in df.iterrows(): st.markdown(f"**{row.get('created_at', '')}**") st.write(row.get("message", "")) st.divider()