//
//  VersionsBRootView.swift
//  vibes
//
//  Root view for Versions 1B exploration
//

import SwiftUI

struct VersionsBRootView: View {
    @State private var selectedTab: NavTab = .library
    @State private var showCreateSheet = false
    @State private var createdSongs: [LibrarySong] = []

    var body: some View {
        VersionsLibraryView(
            selectedTab: $selectedTab,
            showCreateSheet: $showCreateSheet,
            createdSongs: $createdSongs
        )
        .onChange(of: showCreateSheet) { oldValue, newValue in
            if newValue && !oldValue {
                // Reset the session to start fresh
                OneSongSessionManagerB.shared.resetSession()
            }
        }
        .fullScreenCover(isPresented: $showCreateSheet) {
            OneSongMainViewB(
                onDismiss: {
                    showCreateSheet = false
                },
                onAddToLibrary: { albumArt, songName, description in
                    // Create new song
                    let newSong = LibrarySong(
                        title: songName,
                        albumArt: albumArt,
                        description: description
                    )

                    // Delay dismiss slightly
                    DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                        showCreateSheet = false
                    }

                    // Add to beginning of array after dismiss completes
                    // Animate existing songs down to make room
                    DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) {
                        withAnimation(.easeInOut(duration: 0.3)) {
                            createdSongs.insert(newSong, at: 0)
                        }
                    }
                }
            )
        }
    }
}

#Preview {
    VersionsBRootView()
}
