feat(ui): add Deno to about credits and engines list

This commit is contained in:
NimBold
2026-06-11 13:39:53 +03:30
parent 11b030f66a
commit 1c8f189b54
3 changed files with 10 additions and 0 deletions
@@ -11,11 +11,13 @@ enum AddonState: Equatable, Sendable {
enum AddonType: String, CaseIterable, Sendable {
case ytDlp = "yt-dlp"
case ffmpeg
case deno
var binaryName: String {
switch self {
case .ytDlp: return "yt-dlp"
case .ffmpeg: return "ffmpeg"
case .deno: return "deno"
}
}
}
@@ -26,6 +28,7 @@ final class MediaEngineManager: ObservableObject {
@Published var ytDlpState: AddonState = .notInstalled
@Published var ffmpegState: AddonState = .notInstalled
@Published var denoState: AddonState = .notInstalled
private var ytDlpPreparationTask: Task<URL?, Never>?
private init() {
@@ -246,6 +249,7 @@ final class MediaEngineManager: ObservableObject {
switch addon {
case .ytDlp: return ytDlpState
case .ffmpeg: return ffmpegState
case .deno: return denoState
}
}
@@ -253,6 +257,7 @@ final class MediaEngineManager: ObservableObject {
switch addon {
case .ytDlp: ytDlpState = state
case .ffmpeg: ffmpegState = state
case .deno: denoState = state
}
}
}
@@ -9,6 +9,7 @@ struct AboutSettingsPane: View {
private let aria2URL = URL(string: "https://aria2.github.io/")!
private let ytDlpURL = URL(string: "https://github.com/yt-dlp/yt-dlp")!
private let ffmpegURL = URL(string: "https://ffmpeg.org/")!
private let denoURL = URL(string: "https://deno.com/")!
private let licenseURL = URL(string: "https://github.com/nimbold/Firelink/blob/main/LICENSE")!
private var appVersion: String {
@@ -80,6 +81,8 @@ struct AboutSettingsPane: View {
Link("yt-dlp", destination: ytDlpURL)
Text("").foregroundStyle(.secondary)
Link("ffmpeg", destination: ffmpegURL)
Text("").foregroundStyle(.secondary)
Link("Deno", destination: denoURL)
}
Spacer()
Link("MIT License", destination: licenseURL)
@@ -46,6 +46,8 @@ struct EngineSettingsPane: View {
addonStatusRow(title: "FFmpeg", state: engineManager.ffmpegState, path: engineManager.binaryPath(for: .ffmpeg))
addonStatusRow(title: "Deno", state: engineManager.denoState, path: engineManager.binaryPath(for: .deno))
LabeledContent("Browser Cookies") {
HStack {
Spacer()