feat(series-all): 시리즈 전체보기 탭 구성

This commit is contained in:
Yu Sung
2025-11-15 01:50:58 +09:00
parent 320dbb6d57
commit 280ce4beda
4 changed files with 59 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ import SwiftUI
struct SeriesMainByGenreView: View { struct SeriesMainByGenreView: View {
var body: some View { var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) Text("시리즈 전체보기 장르별")
} }
} }

View File

@@ -9,7 +9,7 @@ import SwiftUI
struct SeriesMainDayOfWeekView: View { struct SeriesMainDayOfWeekView: View {
var body: some View { var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) Text("시리즈 전체보기 요일별")
} }
} }

View File

@@ -9,7 +9,7 @@ import SwiftUI
struct SeriesMainHomeView: View { struct SeriesMainHomeView: View {
var body: some View { var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) Text("시리즈 전체보기 홈")
} }
} }

View File

@@ -8,9 +8,63 @@
import SwiftUI import SwiftUI
struct SeriesMainView: View { struct SeriesMainView: View {
private enum InnerTab: Int, CaseIterable {
case home = 0
case dayOfWeek = 1
case byGenre = 2
var title: String {
switch self {
case .home: return ""
case .dayOfWeek: return "요일별"
case .byGenre: return "장르별"
}
}
}
@State private var selectedTab: InnerTab = .home
var body: some View { var body: some View {
BaseView { NavigationView {
Text("시리즈 전체보기") BaseView {
VStack(spacing: 0) {
DetailNavigationBar(title: "시리즈 전체보기")
// ( / )
HStack(spacing: 0) {
ChatInnerTab(
title: InnerTab.home.title,
isSelected: selectedTab == .home,
onTap: { if selectedTab != .home { selectedTab = .home } }
)
ChatInnerTab(
title: InnerTab.dayOfWeek.title,
isSelected: selectedTab == .dayOfWeek,
onTap: { if selectedTab != .dayOfWeek { selectedTab = .dayOfWeek } }
)
ChatInnerTab(
title: InnerTab.byGenre.title,
isSelected: selectedTab == .byGenre,
onTap: { if selectedTab != .byGenre { selectedTab = .byGenre } }
)
}
.padding(.bottom, 12)
Group {
switch selectedTab {
case .home:
SeriesMainHomeView()
case .dayOfWeek:
SeriesMainDayOfWeekView()
case .byGenre:
SeriesMainByGenreView()
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
}
}
} }
} }
} }