Fix infinite loading indicator with versions

This commit is contained in:
Skitty 2022-09-04 15:03:57 -05:00 committed by Brian Dashore
parent aad24d4b1d
commit aa344b8ea8

View file

@ -14,11 +14,13 @@ struct SettingsAppVersionView: View {
@State private var viewTask: Task<Void, Never>? @State private var viewTask: Task<Void, Never>?
@State private var releases: [GithubRelease] = [] @State private var releases: [GithubRelease] = []
@State private var loadedReleases = false
var body: some View { var body: some View {
ZStack { ZStack {
if releases.isEmpty { if !loadedReleases {
ActivityIndicator() ActivityIndicator()
} else { } else if !releases.isEmpty {
List { List {
Section(header: Text("GitHub links")) { Section(header: Text("GitHub links")) {
ForEach(releases, id: \.self) { release in ForEach(releases, id: \.self) { release in
@ -33,15 +35,16 @@ struct SettingsAppVersionView: View {
viewTask = Task { viewTask = Task {
do { do {
if let fetchedReleases = try await Github().fetchReleases() { if let fetchedReleases = try await Github().fetchReleases() {
withAnimation { releases = fetchedReleases
releases = fetchedReleases
}
} else { } else {
toastModel.updateToastDescription("Github error: No releases found") toastModel.updateToastDescription("Github error: No releases found")
} }
} catch { } catch {
toastModel.updateToastDescription("Github error: \(error)") toastModel.updateToastDescription("Github error: \(error)")
} }
withAnimation {
loadedReleases = true
}
} }
} }
.onDisappear { .onDisappear {