75 lines
2.3 KiB
Swift
75 lines
2.3 KiB
Swift
//
|
|
// SeriesMainView.swift
|
|
// SodaLive
|
|
//
|
|
// Created by klaus on 11/14/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
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 {
|
|
NavigationView {
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
SeriesMainView()
|
|
}
|