chat_messages.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # Copyright 2021-2024 Avaiga Private Limited
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
  4. # the License. You may obtain a copy of the License at
  5. #
  6. # http://www.apache.org/licenses/LICENSE-2.0
  7. #
  8. # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
  9. # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
  10. # specific language governing permissions and limitations under the License.
  11. from taipy.gui import Gui, Icon
  12. msgs = [
  13. ["1", "msg 1", "Alice", None],
  14. ["2", "msg From Another unknown User", "Charles", None],
  15. ["3", "This from the sender User", "taipy", "./sample.jpeg"],
  16. ["4", "And from another known one", "Alice", None],
  17. ]
  18. users = [
  19. ["Alice", Icon("./alice-avatar.png", "Alice avatar")],
  20. ["Charles", Icon("./charles-avatar.png", "Charles avatar")],
  21. ["taipy", Icon("./beatrix-avatar.png", "Beatrix avatar")],
  22. ]
  23. def on_action(state, var_name: str, payload: dict):
  24. args = payload.get("args", [])
  25. msgs.append([f"{len(msgs) +1 }", args[2], args[3], args[4]])
  26. state.msgs = msgs
  27. Gui(
  28. """
  29. <|toggle|theme|>
  30. # Test Chat
  31. <|1 1 1|layout|
  32. <|{msgs}|chat|users={users}|show_sender={True}|>
  33. <|part|>
  34. <|{msgs}|chat|users={users}|show_sender={True}|not with_input|>
  35. |>
  36. """,
  37. ).run()