Magnets are expressed in two different ways: a hash and a link. Both of these mean the same thing with a magnet link giving more information if required. However, there was a disconnect if a hash was present or a link was present and required many steps to check which was available. Unify magnets by creating a parent structure that attempts to extract the hash or create a link in the event that either parameter isn't provided. Replace everything except bookmarks (to prevent CoreData complaints and unnecessary abstraction) to use the new Magnet system. Signed-off-by: kingbri <bdashore3@proton.me>
45 lines
1.4 KiB
Swift
45 lines
1.4 KiB
Swift
//
|
|
// DebridLabelView.swift
|
|
// Ferrite
|
|
//
|
|
// Created by Brian Dashore on 11/27/22.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct DebridLabelView: View {
|
|
@EnvironmentObject var debridManager: DebridManager
|
|
|
|
@State var cloudLinks: [String] = []
|
|
var magnet: Magnet?
|
|
|
|
var body: some View {
|
|
if let selectedDebridType = debridManager.selectedDebridType {
|
|
Text(selectedDebridType.toString(abbreviated: true))
|
|
.fontWeight(.bold)
|
|
.padding(2)
|
|
.background {
|
|
Group {
|
|
if let magnet, cloudLinks.isEmpty {
|
|
switch debridManager.matchMagnetHash(magnet) {
|
|
case .full:
|
|
Color.green
|
|
case .partial:
|
|
Color.orange
|
|
case .none:
|
|
Color.red
|
|
}
|
|
} else if cloudLinks.count == 1 {
|
|
Color.green
|
|
} else if cloudLinks.count > 1 {
|
|
Color.orange
|
|
} else {
|
|
Color.red
|
|
}
|
|
}
|
|
.cornerRadius(4)
|
|
.opacity(0.5)
|
|
}
|
|
}
|
|
}
|
|
}
|