feat(series-all): 시리즈 전체보기 탭 구성
This commit is contained in:
@@ -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("시리즈 전체보기 장르별")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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("시리즈 전체보기 요일별")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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("시리즈 전체보기 홈")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user