// // SectionEventBannerView.swift // SodaLive // // Created by klaus on 2023/08/09. // import SwiftUI import Kingfisher struct SectionEventBannerView: View { @State private var currentIndex = 0 @State private var timer = Timer.publish(every: 3, on: .main, in: .common).autoconnect() @AppStorage("token") private var token: String = UserDefaults.string(forKey: UserDefaultsKey.token) let items: [EventItem] var body: some View { VStack(spacing: 13.3) { TabView(selection: $currentIndex) { ForEach(0.. 0, let url = URL(string: link), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) } } else { AppState.shared.setAppStep(step: .login) } } } else { KFImage(URL(string: item.thumbnailImageUrl)) .cancelOnDisappear(true) .downsampling( size: CGSize( width: screenSize().width, height: screenSize().width * 300 / 1000 ) ) .resizable() .scaledToFill() .frame( width: screenSize().width, height: screenSize().width * 300 / 1000, alignment: .center ) .tag(index) .onTapGesture { if !token.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { if let _ = item.detailImageUrl { AppState.shared.setAppStep(step: .eventDetail(event: item)) } else if let link = item.link, link.trimmingCharacters(in: .whitespaces).count > 0, let url = URL(string: link), UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url) } } else { AppState.shared.setAppStep(step: .login) } } } } } .tabViewStyle(PageTabViewStyle(indexDisplayMode: .never)) .frame( width: screenSize().width, height: screenSize().width * 300 / 1000, alignment: .center ) HStack(spacing: 4) { ForEach(0..