// Copyright © 2020 Metabolist. All rights reserved.

import SwiftUI
import ViewModels

struct DomainBlocksView: View {
    @StateObject var viewModel: DomainBlocksViewModel
    var body: some View {
        Form {
            ForEach(viewModel.domainBlocks, id: \.self) { domain in
                Text(domain)
                    .onAppear {
                        if domain == viewModel.domainBlocks.last {
                            viewModel.request()
                        }
                    }
            }
            .onDelete {
                guard let index = $0.first else { return }

                viewModel.delete(domain: viewModel.domainBlocks[index])
            }
            if viewModel.loading {
                ProgressView()
            }
        }
        .onAppear {
            viewModel.request()
        }
        .navigationTitle("preferences.blocked-domains")
        .navigationBarTitleDisplayMode(.inline)
        .toolbar {
            ToolbarItem(placement: ToolbarItemPlacement.navigationBarTrailing) {
                EditButton()
            }
        }
    }
}

#if DEBUG
import PreviewViewModels

struct DomainBlocksView_Previews: PreviewProvider {
    static var previews: some View {
        NavigationView {
            DomainBlocksView(viewModel: .preview)
        }
    }
}
#endif