St.experimental_rerun() for sortable repeating (input-)panels

Hi!

Itā€™s amazing how easy it is to build dynamic web apps with Streamlit :smiling_face:!

I needed a panel of repeating elements for a project. To show what i mean I made this example for you (see below): You can select elements (ā€œeventsā€) and then enter a date for each element. After clicking the ā€œSort by Dateā€-button the elements/ā€œeventsā€ will be sorted by date. This was only possible by using st.session_state() and st.experimental_rerun() (please tell me if thereā€™s a better way to do this). It would be wonderful if st.experimental_rerun() would find its way to Streamlit core someday :smiling_face: :balloon:

[Edited: Itā€™s now possible to sort the events also by clicking up/down-buttons]
Here is my example: :balloon:
https://share.streamlit.io/mckry/streamlit_sortable_repeating/app.py

Max

3 Likes

Nice one! Rerun and session state is a reasonable way to do this. If you want more interactivity (drag & drop, fancy styling, different views, etc.) then Streamlit supports component extensibility using React and other web frameworks.

Thank you @asehmi :blush:! Probably I should use react for creating customized componentsā€¦ However, I havenā€™t used React for ages so i tried to solve my problem in pure Python :smiley:

1 Like

I think streamlit-elements holds the key for those of us who canā€™t go deep into React components but still are able to achieve some magic. Not that Streamlit itself isnā€™t magic enough!! :yum:

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.