//
//  TournamentOrganizerView.swift
//  PadelClub
//
//  Created by Razmig Sarkissian on 29/02/2024.
//

import SwiftUI
import LeStorage

struct TournamentOrganizerView: View {
    @EnvironmentObject var dataStore: DataStore
    @Environment(NavigationViewModel.self) private var navigation

    var body: some View {
        VStack(spacing: 0) {
            if let tournament = navigation.organizerTournament {
                OrganizedTournamentView(tournament: tournament).id(tournament.id)
            } else {
                NavigationStack {
                    let userClubsEmpty = dataStore.user.clubs.isEmpty
                    ContentUnavailableView(
                        "Aucun tournoi sélectionné",
                        systemImage: "rectangle.slash",
                        description:
                            Text(userClubsEmpty ? "Cet écran vous permettra de gérer plusieurs tournois se déroulant en même temps." : "Utilisez l'accès rapide ci-dessous pour éditer un tournoi et passer rapidement d'un tournoi à l'autre.")
                        )
                        .navigationTitle("Gestionnaire de tournois")
                        .navigationBarTitleDisplayMode(.inline)
                        .toolbarBackground(.visible, for: .navigationBar)
                }
            }
            Divider()
            HStack {
                ScrollView(.horizontal) {
                    HStack {
                        let tournaments = dataStore.tournaments.filter({ $0.hasEnded() == false && $0.isDeleted == false && $0.isCanceled == false }).sorted(by: \.startDate).reversed()
                        ForEach(tournaments) { tournament in
                            TournamentButtonView(tournament: tournament)
                        }
                    }
                    .padding()
                    .buttonStyle(.plain)
                }
            }
        }
        .onChange(of: Store.main.userId) {
            navigation.organizerTournament = nil
        }
    }
}

//#Preview {
//    TournamentOrganizerView()
//}
