Files
featherVoice/TUIKit/TUIRoomKit/Source/Store/User/UserEffects.swift

33 lines
1002 B
Swift
Raw Normal View History

2025-08-08 10:49:36 +08:00
//
// 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<Environment>.dispatchingOne { actions, environment in
actions
.wasCreated(from: UserActions.getSelfInfo)
.flatMap { action -> AnyPublisher<Action, Never> in
let selfId = environment.store?.selectCurrent(UserSelectors.getSelfId) ?? ""
return environment.userService.fetchUserInfo(selfId)
.map { userInfo in
return UserActions.updateSelfInfo(payload: userInfo)
}
.catch { error -> Just<Action> in
return Just(ErrorActions.throwError(payload: error))
}
.eraseToAnyPublisher()
}
.eraseToAnyPublisher()
}
}