diff --git a/SodaLive/Sources/Home/HomeCreatorRankingItemView.swift b/SodaLive/Sources/Home/HomeCreatorRankingItemView.swift index 81805c5..e138142 100644 --- a/SodaLive/Sources/Home/HomeCreatorRankingItemView.swift +++ b/SodaLive/Sources/Home/HomeCreatorRankingItemView.swift @@ -11,7 +11,7 @@ import Kingfisher struct HomeCreatorRankingItemView: View { let rank: Int - @State var item: GetExplorerSectionCreatorResponse + @Binding var item: GetExplorerSectionCreatorResponse let onClickFollow: (Int, Bool) -> Void @@ -57,11 +57,18 @@ struct HomeCreatorRankingItemView: View { item.follow ? .white : Color(hex: "263238") ) .onTapGesture { - if !token.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { - item.follow = !item.follow + let trimmedToken = token.trimmingCharacters(in: .whitespacesAndNewlines) + guard !trimmedToken.isEmpty else { + onClickFollow(item.id, item.follow) + return + } + + if item.follow { + onClickFollow(item.id, false) + } else { + item.follow = true + onClickFollow(item.id, true) } - - onClickFollow(item.id, item.follow) } } } @@ -76,12 +83,14 @@ struct HomeCreatorRankingItemView: View { #Preview { HomeCreatorRankingItemView( rank: 1, - item: GetExplorerSectionCreatorResponse( + item: .constant( + GetExplorerSectionCreatorResponse( id: 1, nickname: "유빈ASMR", tags: "", profileImageUrl: "https://cf.sodalive.net/profile/34806/34806-profile-49db6b45-bb1e-4dc7-917e-1a614a853f5f-4232-1752158072656", follow: true + ) ), onClickFollow: { _, _ in } ) diff --git a/SodaLive/Sources/Home/HomeTabView.swift b/SodaLive/Sources/Home/HomeTabView.swift index eb84705..5ea457a 100644 --- a/SodaLive/Sources/Home/HomeTabView.swift +++ b/SodaLive/Sources/Home/HomeTabView.swift @@ -22,6 +22,9 @@ struct HomeTabView: View { @State private var isShowAuthConfirmView: Bool = false @State private var pendingAction: (() -> Void)? = nil @State private var payload = Payload() + @State private var isShowUnfollowConfirmDialog = false + @State private var pendingUnfollowCreatorId: Int? = nil + @State private var pendingUnfollowCreatorName = "" var onTapPopularCharacterAllView: (() -> Void)? = nil @@ -124,17 +127,19 @@ struct HomeTabView: View { ScrollView(.horizontal, showsIndicators: false) { LazyHStack(spacing: 16) { - ForEach(0.. String { + pick( + ko: "\(nickname)님을 팔로우 해제 하시겠습니까?", + en: "Do you want to unfollow \(nickname)?", + ja: "\(nickname)さんのフォローを解除しますか?" + ) + } static var liveOnNow: String { pick(ko: "현재 라이브 중입니다.", en: "Live is currently ongoing.", ja: "現在ライブ配信中です。") } static var cannotReserveOwnLive: String { pick(ko: "내가 만든 라이브는 예약할 수 없습니다.", en: "reserve a live you created is required.", ja: "自分が作ったライブは予約できません。") }