diff --git a/SodaLive/Sources/Content/Series/DayOfWeekSeriesView.swift b/SodaLive/Sources/Content/Series/DayOfWeekSeriesView.swift new file mode 100644 index 0000000..43b9996 --- /dev/null +++ b/SodaLive/Sources/Content/Series/DayOfWeekSeriesView.swift @@ -0,0 +1,172 @@ +// +// DayOfWeekSeriesView.swift +// SodaLive +// +// Created by klaus on 7/11/25. +// + +import SwiftUI + +struct DayOfWeek { + let dayOfWeekStr: String + let dayOfWeek: SeriesPublishedDaysOfWeek +} + +struct DayOfWeekSeriesView: View { + + let seriesList: [SeriesListItem] + let onTapDayOfWeek: (SeriesPublishedDaysOfWeek) -> Void + + @State private var dayOfWeek: SeriesPublishedDaysOfWeek = .FRI + + private let dayOfWeekItems: [DayOfWeek] = [ + DayOfWeek(dayOfWeekStr: "월", dayOfWeek: .MON), + DayOfWeek(dayOfWeekStr: "화", dayOfWeek: .TUE), + DayOfWeek(dayOfWeekStr: "수", dayOfWeek: .WED), + DayOfWeek(dayOfWeekStr: "목", dayOfWeek: .THU), + DayOfWeek(dayOfWeekStr: "금", dayOfWeek: .FRI), + DayOfWeek(dayOfWeekStr: "토", dayOfWeek: .SAT), + DayOfWeek(dayOfWeekStr: "일", dayOfWeek: .SUN), + DayOfWeek(dayOfWeekStr: "랜덤", dayOfWeek: .RANDOM), + ] + + // 요일 숫자에 맞춰 배열 + private let dayOfWeeks: [SeriesPublishedDaysOfWeek] = [ + .RANDOM, + .SUN, + .MON, + .TUE, + .WED, + .THU, + .FRI, + .SAT + ] + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + HStack(spacing: 0) { + Text("요일별") + .font(.custom(Font.preBold.rawValue, size: 26)) + .foregroundColor(.button) + + Text(" 시리즈") + .font(.custom(Font.preBold.rawValue, size: 26)) + .foregroundColor(.white) + } + .padding(.horizontal, 24) + + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 5) { + ForEach(0...self, from: responseData) + + if let data = decoded.data, decoded.success { + self.dayOfWeekSeriesList = data + } else { + if let message = decoded.message { + self.errorMessage = message + } else { + self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다." + } + + self.isShowPopup = true + } + } catch { + self.errorMessage = "다시 시도해 주세요.\n계속 같은 문제가 발생할 경우 고객센터로 문의 주시기 바랍니다." + self.isShowPopup = true + } + + self.isLoading = false + } + .store(in: &subscription) + } } diff --git a/SodaLive/Sources/Live/EventBanner/SectionEventBannerView.swift b/SodaLive/Sources/Live/EventBanner/SectionEventBannerView.swift index bfa8449..c63cc69 100644 --- a/SodaLive/Sources/Live/EventBanner/SectionEventBannerView.swift +++ b/SodaLive/Sources/Live/EventBanner/SectionEventBannerView.swift @@ -17,24 +17,18 @@ struct SectionEventBannerView: View { let items: [EventItem] var body: some View { - VStack(spacing: 13.3) { + VStack(spacing: 16) { TabView(selection: $currentIndex) { ForEach(0..