chat_messages.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Copyright 2021-2025 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", None],
  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. (reason, varName, text, senderId, imageData) = payload.get("args", [])
  25. msgs.append([f"{len(msgs) +1 }", text, senderId, imageData])
  26. state.msgs = msgs
  27. page="""
  28. <|1 1 1|layout|
  29. <|{msgs}|chat|users={users}|show_sender={True}|>
  30. <|part|>
  31. <|{msgs}|chat|users={users}|show_sender={True}|not with_input|>
  32. |>
  33. """
  34. if __name__ == "__main__":
  35. Gui(page).run(title="Chat - Simple")