Having a session state inside the logic for my help_text variable used in the help parameter of a button stops the button from working. The button still shows the two different strings correctly, but does nothing when clicked. Doing a conditional without the session_state.save_disabled makes it work, but with the session state it breaks. Printing the session state shows the correct output however.
import streamlit as st
uploaded_file_name_formatted = 'bob'
if 'save_disabled' not in st.session_state:
st.session_state.save_disabled = True # Initialize with True if not set
if st.button('Change State'):
st.session_state.save_disabled = not st.session_state.save_disabled
if st.session_state.save_disabled:
help_text = "Report must be generated first"
else:
help_text = f"Sends report to S3 folder named {uploaded_file_name_formatted}"
# Use the pre-determined help text in the button
if st.button("Send Report to S3", disabled=st.session_state.save_disabled, help=help_text):
# saveReport(S3_CLIENT, uploaded_file_name_formatted)
st.title('savereport')