// // UserEffects.swift // TUIRoomKit // // Created by CY zhao on 2024/6/5. // import Foundation import Combine import ImSDK_Plus import RTCRoomEngine class UserEffects: Effects { typealias Environment = ServiceCenter let getSelfInfo = Effect.dispatchingOne { actions, environment in actions .wasCreated(from: UserActions.getSelfInfo) .flatMap { action -> AnyPublisher in let selfId = environment.store?.selectCurrent(UserSelectors.getSelfId) ?? "" return environment.userService.fetchUserInfo(selfId) .map { userInfo in return UserActions.updateSelfInfo(payload: userInfo) } .catch { error -> Just in return Just(ErrorActions.throwError(payload: error)) } .eraseToAnyPublisher() } .eraseToAnyPublisher() } }