From 1c8f189b54983d5d9726d134f730d0334bfac567 Mon Sep 17 00:00:00 2001 From: NimBold Date: Thu, 11 Jun 2026 13:39:53 +0330 Subject: [PATCH] feat(ui): add Deno to about credits and engines list --- Sources/Firelink/MediaEngineManager.swift | 5 +++++ Sources/Firelink/Settings/AboutSettingsPane.swift | 3 +++ Sources/Firelink/Settings/EngineSettingsPane.swift | 2 ++ 3 files changed, 10 insertions(+) diff --git a/Sources/Firelink/MediaEngineManager.swift b/Sources/Firelink/MediaEngineManager.swift index f307f91..e8f8084 100644 --- a/Sources/Firelink/MediaEngineManager.swift +++ b/Sources/Firelink/MediaEngineManager.swift @@ -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? 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 } } } diff --git a/Sources/Firelink/Settings/AboutSettingsPane.swift b/Sources/Firelink/Settings/AboutSettingsPane.swift index 282837f..9414e37 100644 --- a/Sources/Firelink/Settings/AboutSettingsPane.swift +++ b/Sources/Firelink/Settings/AboutSettingsPane.swift @@ -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) diff --git a/Sources/Firelink/Settings/EngineSettingsPane.swift b/Sources/Firelink/Settings/EngineSettingsPane.swift index c3983db..75cc711 100644 --- a/Sources/Firelink/Settings/EngineSettingsPane.swift +++ b/Sources/Firelink/Settings/EngineSettingsPane.swift @@ -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()