// // RecommendChannelContentItemView.swift // SodaLive // // Created by klaus on 7/14/25. // import SwiftUI import Kingfisher struct RecommendChannelContentItemView: View { @AppStorage("token") private var token: String = UserDefaults.string(forKey: UserDefaultsKey.token) let item: RecommendChannelContentItem var body: some View { HStack(spacing: 16) { KFImage(URL(string: item.thumbnailImageUrl)) .cancelOnDisappear(true) .resizable() .frame(width: 60, height: 60) .cornerRadius(12) VStack(alignment: .leading, spacing: 2) { Text(item.title) .font(.custom(Font.preRegular.rawValue, size: 18)) .foregroundColor(.white) .lineLimit(1) .truncationMode(.tail) HStack(spacing: 12) { HStack(spacing: 4) { Image("ic_heart_white") Text("\(item.likeCount)") .font(.custom(Font.preRegular.rawValue, size: 18)) .foregroundColor(.white) } HStack(spacing: 4) { Image("ic_comment_white") Text("\(item.commentCount)") .font(.custom(Font.preRegular.rawValue, size: 18)) .foregroundColor(.white) } } } } .onTapGesture { if !token.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { AppState.shared.setAppStep(step: .contentDetail(contentId: item.contentId)) } else { AppState.shared.setAppStep(step: .login) } } } } #Preview { RecommendChannelContentItemView( item: RecommendChannelContentItem( contentId: 1, title: "고품격 음악 밥솥", thumbnailImageUrl: "https://cf.sodalive.net/audio_content_cover/5819/5819-cover-20a26c55-c7a2-47ef-bca5-ce47d953dfe0-1373-1752293900615", likeCount: 999, commentCount: 99 ) ) }