AllDebrid is another debrid provider. Add support to Ferrite in addition to RealDebrid. The overall debrid login backend has changed to accomodate for a more agnostic app structure where more services can be added as needed. Also add some cosmetic changes to search so filters can be added while searching for a phrase. Signed-off-by: kingbri <bdashore3@proton.me>
62 lines
1.7 KiB
Swift
62 lines
1.7 KiB
Swift
//
|
|
// SettingsAppVersionView.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 8/29/22.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct SettingsAppVersionView: View {
|
|
@EnvironmentObject var toastModel: ToastViewModel
|
|
|
|
@State private var viewTask: Task<Void, Never>?
|
|
@State private var releases: [Github.Release] = []
|
|
|
|
@State private var loadedReleases = false
|
|
|
|
var body: some View {
|
|
ZStack {
|
|
if !loadedReleases {
|
|
ProgressView()
|
|
} else if !releases.isEmpty {
|
|
List {
|
|
Section(header: InlineHeader("GitHub links")) {
|
|
ForEach(releases, id: \.self) { release in
|
|
ListRowLinkView(text: release.tagName, link: release.htmlUrl)
|
|
}
|
|
}
|
|
}
|
|
.listStyle(.insetGrouped)
|
|
}
|
|
}
|
|
.onAppear {
|
|
viewTask = Task {
|
|
do {
|
|
if let fetchedReleases = try await Github().fetchReleases() {
|
|
releases = fetchedReleases
|
|
} else {
|
|
toastModel.updateToastDescription("Github error: No releases found")
|
|
}
|
|
} catch {
|
|
toastModel.updateToastDescription("Github error: \(error)")
|
|
}
|
|
|
|
withAnimation {
|
|
loadedReleases = true
|
|
}
|
|
}
|
|
}
|
|
.onDisappear {
|
|
viewTask?.cancel()
|
|
}
|
|
.navigationTitle("Version History")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
}
|
|
}
|
|
|
|
struct SettingsAppVersionView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
SettingsAppVersionView()
|
|
}
|
|
}
|