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.

Files changed (1) hide show
  1. app.py +11 -3
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("Надіслати") or st.session_state.get("user_input", "") != "":
37
- if st.session_state.get("user_input", "") != "":
38
- send_message()
 
 
 
 
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):