summaryrefslogtreecommitdiff
path: root/Hutch/Views/Lookup/UserRepositoriesView.swift
blob: 7aeea101e938da6522f4906223608e460962dc6b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import SwiftUI

struct UserRepositoriesView: View {
    let viewModel: UserProfileViewModel

    var body: some View {
        List {
            ForEach(viewModel.repositories) { repo in
                NavigationLink {
                    RepositoryDetailView(repository: repo) { updatedRepository in
                        viewModel.updateRepository(updatedRepository)
                    }
                } label: {
                    RepositoryRowView(repository: repo, buildStatus: .none)
                }
            }
        }
        .listStyle(.plain)
        .navigationTitle("Repositories")
        .navigationBarTitleDisplayMode(.inline)
        .overlay {
            if viewModel.isLoadingRepositories && viewModel.repositories.isEmpty {
                SRHTLoadingStateView(message: "Loading repositories…")
            }
        }
        .refreshable {
            await viewModel.loadRepositories()
        }
    }
}