import SwiftUI
import GoogleSignInSwift

struct AuthContainerView: View {
    @StateObject var artistManager = ArtistManager()
    @StateObject var uploadedSongManager = UploadedSongManager()
    @StateObject var librarySongManager = LibrarySongManager.shared
    @StateObject var trendingSongManager = TrendingSongManager.shared
    @EnvironmentObject var authViewModel: AuthenticationViewModel

    var body: some View {
        switch authViewModel.state {
        case .signedIn:
            ContentView()
                .environmentObject(artistManager)
                .environmentObject(uploadedSongManager)
                .environmentObject(librarySongManager)
                .environmentObject(trendingSongManager)
                .onAppear {
                    artistManager.fetchArtists()
                    uploadedSongManager.fetchUploadedSongs()
                }
                
        case .signedOut:
            GoogleSignInButton(action: authViewModel.signIn)
        }
    }
}
