From 6a9854bdd77775febf4d2c5ca6e1fd86ee4ca3ea Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Sat, 12 Jul 2025 01:20:02 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A9=94=EC=9D=B8=20=ED=99=88=20-=20?= =?UTF-8?q?=EC=9A=94=EC=9D=BC=EB=B3=84=20=EC=8B=9C=EB=A6=AC=EC=A6=88,=20?= =?UTF-8?q?=EC=98=A4=EB=94=94=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Content/Series/DayOfWeekSeriesView.swift | 172 ++++++++++++++++++ .../Content/Series/SeriesItemView.swift | 117 +++++++++++- SodaLive/Sources/Home/HomeAuditionView.swift | 116 ++++++++++++ SodaLive/Sources/Home/HomeTabView.swift | 34 +--- SodaLive/Sources/Home/HomeTabViewModel.swift | 39 ++++ .../EventBanner/SectionEventBannerView.swift | 31 +--- 6 files changed, 459 insertions(+), 50 deletions(-) create mode 100644 SodaLive/Sources/Content/Series/DayOfWeekSeriesView.swift create mode 100644 SodaLive/Sources/Home/HomeAuditionView.swift 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..