102 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			3.5 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
 | 
						|
    
 | 
						|
    let initCurrentTab: ContentBoxViewModel.CurrentTab
 | 
						|
    
 | 
						|
    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()
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                .onAppear {
 | 
						|
                    viewModel.currentTab = initCurrentTab
 | 
						|
                }
 | 
						|
            }
 | 
						|
            
 | 
						|
            if isShowCreatePlaylist {
 | 
						|
                ContentPlaylistCreateView(
 | 
						|
                    isShowing: $isShowCreatePlaylist,
 | 
						|
                    reloadData: $isReloadData
 | 
						|
                )
 | 
						|
            }
 | 
						|
            
 | 
						|
            if isShowDetailPlaylist {
 | 
						|
                ContentPlaylistDetailView(
 | 
						|
                    playlistId: selectedPlaylistId,
 | 
						|
                    isShowing: $isShowDetailPlaylist,
 | 
						|
                    reloadData: $isReloadData
 | 
						|
                )
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#Preview {
 | 
						|
    ContentBoxView(initCurrentTab: .orderlist)
 | 
						|
}
 |