FloatChatEffect.swift 831 B

1234567891011121314151617181920212223242526272829
  1. //
  2. // FloatChatEffect.swift
  3. // TUIRoomKit
  4. //
  5. // Created by CY zhao on 2024/5/14.
  6. //
  7. import Foundation
  8. class FloatChatEffect: Effects {
  9. typealias Environment = FloatChatService
  10. let sendMessage = Effect<Environment>.dispatchingOne { actions, environment in
  11. actions.wasCreated(from: FloatChatActions.sendMessage)
  12. .flatMap { action in
  13. environment.sendGroupMessage(action.payload)
  14. .map { FloatChatActions.onMessageSended(payload: $0) }
  15. }
  16. .eraseToAnyPublisher()
  17. }
  18. let reportData = Effect<Environment>.nonDispatching { actions, environment in
  19. actions
  20. .wasCreated(from: FloatChatActions.reportData)
  21. .sink { action in
  22. RoomKitReport.reportData(action.payload)
  23. }
  24. }
  25. }