Spaces:
Sleeping
Sleeping
| # app.py | |
| import streamlit as st | |
| from uac_helper import UACHelper | |
| from user_management import add_user, authenticate_user, load_settings, save_settings, generate_prompt, initialize_database | |
| import page_components | |
| # Initialize the database | |
| initialize_database() | |
| def settings_page(username): | |
| page_components.app_header() | |
| """Displays the settings page with user-specific settings.""" | |
| st.title("Chat with AI") | |
| settings = load_settings(username) | |
| # User-specific settings form | |
| topic = st.text_area("Topic", value=settings.get("topic", ""), key="topic") | |
| instructions = st.text_area("Custom Instructions", value=settings.get("instructions", ""), key="instructions") | |
| if st.button("Generate Prompt"): | |
| settings = {"topic": topic, "instructions": instructions} | |
| save_settings(username, settings) | |
| result = generate_prompt(topic, instructions) | |
| st.success(result) | |
| page_components.app_footer() | |
| def main(): | |
| """Main function for the Streamlit app.""" | |
| # Initialize UACHelper | |
| uac = UACHelper() | |
| # Navigation between pages | |
| if st.session_state.page == "Login": | |
| uac.login_page() | |
| elif st.session_state.page == "Sign Up": | |
| uac.sign_up_page() | |
| elif st.session_state.page == "Main Page": | |
| if uac.is_authenticated(): | |
| settings_page(uac.get_username()) | |
| else: | |
| st.error("You must log in to access this page.") | |
| st.session_state.page = "Login" | |
| # Sidebar for navigation | |
| st.sidebar.title("Navigation") | |
| if uac.is_authenticated(): | |
| if st.sidebar.button("Go to Main Page"): | |
| st.session_state.page = "Main Page" | |
| if st.sidebar.button("Logout", on_click=uac.logout): # Use on_click for callback | |
| pass # No need to call uac.logout() here | |
| else: | |
| st.sidebar.radio( | |
| "Go to", | |
| ["Login", "Sign Up"], | |
| key="sidebar_nav", | |
| on_change=lambda: st.session_state.update(page=st.session_state.sidebar_nav) | |
| ) | |
| if __name__ == "__main__": | |
| main() |