Files
yattee/Yattee/Views/Settings/YouTubeEnhancementsSettingsView.swift
2026-02-08 18:33:56 +01:00

109 lines
3.2 KiB
Swift

//
// YouTubeEnhancementsSettingsView.swift
// Yattee
//
// Settings view for YouTube-specific enhancements.
//
import SwiftUI
struct YouTubeEnhancementsSettingsView: View {
@Environment(\.appEnvironment) private var appEnvironment
var body: some View {
Form {
if let settings = appEnvironment?.settingsManager {
SponsorBlockSection(settings: settings)
ReturnYouTubeDislikeSection(settings: settings)
DeArrowSection(settings: settings)
}
}
.navigationTitle(String(localized: "settings.youtubeEnhancements.title"))
#if os(iOS)
.navigationBarTitleDisplayMode(.inline)
#endif
}
}
// MARK: - SponsorBlock Section
private struct SponsorBlockSection: View {
@Bindable var settings: SettingsManager
var body: some View {
Section {
NavigationLink {
SponsorBlockSettingsView()
} label: {
HStack {
Label(String(localized: "settings.sponsorBlock.sectionTitle"), systemImage: "forward")
Spacer()
Text(settings.sponsorBlockEnabled
? String(localized: "common.enabled")
: String(localized: "common.disabled"))
.foregroundStyle(.secondary)
}
}
} footer: {
Text(String(localized: "settings.youtubeEnhancements.sponsorBlock.footer"))
}
}
}
// MARK: - Return YouTube Dislike Section
private struct ReturnYouTubeDislikeSection: View {
@Bindable var settings: SettingsManager
var body: some View {
Section {
NavigationLink {
ReturnYouTubeDislikeSettingsView()
} label: {
HStack {
Label(String(localized: "settings.returnYouTubeDislike.sectionTitle"), systemImage: "hand.thumbsdown")
Spacer()
Text(settings.returnYouTubeDislikeEnabled
? String(localized: "common.enabled")
: String(localized: "common.disabled"))
.foregroundStyle(.secondary)
}
}
} footer: {
Text(String(localized: "settings.youtubeEnhancements.returnYouTubeDislike.footer"))
}
}
}
// MARK: - DeArrow Section
private struct DeArrowSection: View {
@Bindable var settings: SettingsManager
var body: some View {
Section {
NavigationLink {
DeArrowSettingsView()
} label: {
HStack {
Label(String(localized: "settings.deArrow.sectionTitle"), systemImage: "textformat")
Spacer()
Text(settings.deArrowEnabled
? String(localized: "common.enabled")
: String(localized: "common.disabled"))
.foregroundStyle(.secondary)
}
}
} footer: {
Text(String(localized: "settings.youtubeEnhancements.deArrow.footer"))
}
}
}
#Preview {
NavigationStack {
YouTubeEnhancementsSettingsView()
}
.appEnvironment(.preview)
}