fix(main): 최근 활동 이동을 보정한다
This commit is contained in:
@@ -27,6 +27,7 @@ struct RecommendationBannerResponse: Decodable, Hashable {
|
||||
}
|
||||
|
||||
struct HomeActiveCreatorItem: Decodable, Hashable {
|
||||
let creatorId: Int
|
||||
let creatorNickname: String
|
||||
let creatorProfileImage: String
|
||||
let activityType: RecommendedActivityType
|
||||
@@ -34,6 +35,32 @@ struct HomeActiveCreatorItem: Decodable, Hashable {
|
||||
let targetId: Int?
|
||||
}
|
||||
|
||||
enum HomeActiveCreatorTapDestination: Equatable {
|
||||
case live(Int)
|
||||
case creator(Int)
|
||||
case content(Int)
|
||||
case communityPost(Int)
|
||||
}
|
||||
|
||||
extension HomeActiveCreatorItem {
|
||||
var activeCreatorTapDestination: HomeActiveCreatorTapDestination? {
|
||||
switch activityType {
|
||||
case .live:
|
||||
if let targetId {
|
||||
return .live(targetId)
|
||||
}
|
||||
|
||||
return creatorId > 0 ? .creator(creatorId) : nil
|
||||
case .liveReplay, .audio:
|
||||
return targetId.map(HomeActiveCreatorTapDestination.content)
|
||||
case .community:
|
||||
return targetId.map(HomeActiveCreatorTapDestination.communityPost)
|
||||
case .unknown:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct HomeCreatorItem: Decodable, Hashable {
|
||||
let creatorId: Int
|
||||
let creatorNickname: String
|
||||
|
||||
@@ -2,6 +2,7 @@ import Foundation
|
||||
|
||||
enum RecommendedActivityType: Decodable, Hashable {
|
||||
case live
|
||||
case liveReplay
|
||||
case audio
|
||||
case community
|
||||
case unknown(String)
|
||||
@@ -11,8 +12,10 @@ enum RecommendedActivityType: Decodable, Hashable {
|
||||
let code = try container.decode(String.self)
|
||||
|
||||
switch code {
|
||||
case "LIVE", "LIVE_REPLAY":
|
||||
case "LIVE":
|
||||
self = .live
|
||||
case "LIVE_REPLAY":
|
||||
self = .liveReplay
|
||||
case "AUDIO":
|
||||
self = .audio
|
||||
case "COMMUNITY":
|
||||
@@ -24,7 +27,7 @@ enum RecommendedActivityType: Decodable, Hashable {
|
||||
|
||||
var title: String {
|
||||
switch self {
|
||||
case .live:
|
||||
case .live, .liveReplay:
|
||||
return I18n.HomeRecommendation.activityLive
|
||||
case .audio:
|
||||
return I18n.HomeRecommendation.activityAudio
|
||||
|
||||
Reference in New Issue
Block a user