Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| if 'chat' not in st.session_state: | |
| st.session_state.chat = "A: Hello" | |
| def submit(): | |
| st.session_state.chat += f' \nB: {st.session_state.B}' | |
| st.session_state.chat += ' \nA: Some response.' | |
| # Clear the text input widget for convenience | |
| st.session_state.B = '' | |
| st.write(st.session_state.chat) | |
| st.text_input('B\'s Response', key='B', on_change=submit) | |
| # Define the scroll operation as a function and pass in something unique for each | |
| # page load that it needs to re-evaluate where "bottom" is | |
| js = f""" | |
| <script> | |
| function scroll(dummy_var_to_force_repeat_execution){{ | |
| var textAreas = parent.document.querySelectorAll('section.main'); | |
| for (let index = 0; index < textAreas.length; index++) {{ | |
| textAreas[index].style.color = 'red' | |
| textAreas[index].scrollTop = textAreas[index].scrollHeight; | |
| }} | |
| }} | |
| scroll({len(st.session_state.chat)}) | |
| </script> | |
| """ | |
| st.components.v1.html(js) |