import streamlit as st from components.connexion import connexion, bouton_deconnexion import streamlit.components.v1 as components def afficher_menu(): with st.sidebar: st.markdown(""" """, unsafe_allow_html=True) # === GESTION DU THÈME === # # Le changement de thème induit un st.rerun qui vide les formula # Pour éviter de perdre les informations dans les formulaires, # le changement de thème n'est proposé que si l'utilisateur est sur l'onglet "Instructions" # if st.session_state.onglet == "Instructions": if "theme_mode" not in st.session_state: st.session_state.theme_mode = "Clair" st.markdown("""

Thème

""", unsafe_allow_html=True) theme = st.radio("Thème", ["Clair", "Sombre"], index=["Clair", "Sombre"].index(st.session_state.theme_mode), horizontal=True, label_visibility="hidden") st.markdown("""
""", unsafe_allow_html=True) else : st.markdown("""

Thème

""", unsafe_allow_html=True) st.info("Le changement de thème ne peut se faire que depuis l'onglet Instructions.") st.markdown("""
""", unsafe_allow_html=True) theme = st.session_state.theme_mode connexion() if st.session_state.get("logged_in", False): bouton_deconnexion() # === RERUN SI BESOIN === if (onglet_choisi and onglet_choisi != st.session_state.onglet) or (theme != st.session_state.theme_mode): if onglet_choisi: # Ne met à jour que si on a cliqué st.session_state.onglet = onglet_choisi st.session_state.theme_mode = theme st.rerun() def afficher_impact(total_bytes): with st.sidebar: components.html(f""" Impact Environnemental

Impact environnemental

Chargement en cours…

""")