sodalive-ios/SodaLive/Sources/Content/Box/ContentBoxView.swift

97 lines
3.4 KiB
Swift

//
// ContentBoxView.swift
// SodaLive
//
// Created by klaus on 12/7/24.
//
import SwiftUI
struct ContentBoxView: View {
@StateObject var viewModel = ContentBoxViewModel()
@State private var isShowDetailPlaylist = false
@State private var isShowCreatePlaylist = false
@State private var isReloadData = false
@State private var selectedPlaylistId = 0
var body: some View {
ZStack {
NavigationView {
VStack(spacing: 13.3) {
DetailNavigationBar(title: "내 보관함")
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 12) {
ContentBoxTabView(
title: "구매목록",
isSelected: viewModel.currentTab == .orderlist
)
.onTapGesture {
if viewModel.currentTab != .orderlist {
viewModel.currentTab = .orderlist
}
}
ContentBoxTabView(
title: "재생목록",
isSelected: viewModel.currentTab == .playlist
)
.onTapGesture {
if viewModel.currentTab != .playlist {
viewModel.currentTab = .playlist
}
}
}
.padding(.horizontal, 13.3)
}
if viewModel.currentTab == .playlist {
if isReloadData {
Color.clear
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
isReloadData = false
}
}
} else {
ContentPlaylistListView(
onClickCreate: { isShowCreatePlaylist = true },
onClickItem: { playlistId in
selectedPlaylistId = playlistId
isShowDetailPlaylist = true
}
)
.padding(.bottom, 13.3)
.padding(.horizontal, 13.3)
}
} else {
OrderListAllInnerView()
}
}
}
if isShowCreatePlaylist {
ContentPlaylistCreateView(
isShowing: $isShowCreatePlaylist,
reloadData: $isReloadData
)
}
if isShowDetailPlaylist {
ContentPlaylistDetailView(
playlistId: selectedPlaylistId,
isShowing: $isShowDetailPlaylist,
reloadData: $isReloadData
)
}
}
}
}
#Preview {
ContentBoxView()
}