I have a text area and a download button based on the input for the text area. Default streamlit behavior is for the user to press ctrl/cmd + enter or to focus on a different element from the textarea.
The goal is to have a button that is disabled until any character is in the textarea element. Currently, this only works with ctrl/cmd+enter to have the disable property changed to enabled for the button.
With a standard st.button, I can write a components hook that sees events triggered by individual keystrokes. However, st.download_button does not catch this.
You can use the disabled parameter for either st.button or st.download_button in order to disable the button until the text has been entered into the st.text_area widget.
An example of this in use is the following code:
where the st.chat_input is disabled when st.text_input is blank.
I appreciate the input. In this case, text_area doesnβt capture input text until control/command + enter is pressed, or the text area widget is no longer focused.
My workaround works for a standard button, but something is preventing the download_button widget from accessing.
No worries, Iβve decided to use two buttons as a solution to continue moving forward and to figure out how to bridge our custom React widget component library.