OniXinO
commited on
Commit
·
9417eab
1
Parent(s):
1d45e7e
Зміни:
Browse filesОчищення через on_click: До кнопки "Надіслати" додано параметр on_click=clear_input. Тепер функція clear_input буде викликатися при натисканні кнопки, і вона очистить st.session_state.temp_user_input.
Обробка Enter з last_input: Для обробки натискання Enter використовується перевірка, чи змінилося значення temp_user_input з моменту останньої відправки. Це допомагає уникнути повторних відправок при кожному символі.
Тепер очищення текстового поля повинно відбуватися коректно як при натисканні кнопки, так і при натисканні Enter.
app.py
CHANGED
@@ -31,11 +31,19 @@ def send_message():
|
|
31 |
def update_user_input():
|
32 |
st.session_state.user_input = st.session_state.temp_user_input
|
33 |
|
|
|
|
|
|
|
|
|
34 |
st.text_input("Ви:", key="temp_user_input", on_change=update_user_input)
|
35 |
|
36 |
-
if st.button("Надіслати"
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
|
|
39 |
|
40 |
if st.session_state.history:
|
41 |
for i in range(0, len(st.session_state.history), 2):
|
|
|
31 |
def update_user_input():
|
32 |
st.session_state.user_input = st.session_state.temp_user_input
|
33 |
|
34 |
+
# Очищаємо temp_user_input після натискання кнопки
|
35 |
+
def clear_input():
|
36 |
+
st.session_state.temp_user_input = ""
|
37 |
+
|
38 |
st.text_input("Ви:", key="temp_user_input", on_change=update_user_input)
|
39 |
|
40 |
+
if st.button("Надіслати", on_click=clear_input):
|
41 |
+
send_message()
|
42 |
+
|
43 |
+
# Обробка натискання Enter
|
44 |
+
if st.session_state.get("temp_user_input", "") and st.session_state.get("last_input", "") != st.session_state.get("temp_user_input", ""):
|
45 |
+
st.session_state["last_input"] = st.session_state["temp_user_input"]
|
46 |
+
send_message()
|
47 |
|
48 |
if st.session_state.history:
|
49 |
for i in range(0, len(st.session_state.history), 2):
|