Add services settings

This commit is contained in:
Arkadiusz Fal 2021-10-23 14:12:53 +02:00
parent 512613d350
commit cf0975d8bf
3 changed files with 30 additions and 9 deletions

View File

@ -18,6 +18,8 @@ extension Defaults.Keys {
static let lastAccountID = Key<Account.ID?>("lastAccountID") static let lastAccountID = Key<Account.ID?>("lastAccountID")
static let lastInstanceID = Key<Instance.ID?>("lastInstanceID") static let lastInstanceID = Key<Instance.ID?>("lastInstanceID")
static let sponsorBlockInstance = Key<String>("sponsorBlockInstance", default: "https://sponsor.ajay.app")
static let quality = Key<Stream.ResolutionSetting>("quality", default: .hd720pFirstThenBest) static let quality = Key<Stream.ResolutionSetting>("quality", default: .hd720pFirstThenBest)
static let recentlyOpened = Key<[RecentItem]>("recentlyOpened", default: []) static let recentlyOpened = Key<[RecentItem]>("recentlyOpened", default: [])

View File

@ -1,15 +1,25 @@
// import Defaults
// ServicesSettings.swift
// Pearvidious
//
// Created by Arkadiusz Fal on 23/10/2021.
//
import SwiftUI import SwiftUI
struct ServicesSettings: View { struct ServicesSettings: View {
@Default(.sponsorBlockInstance) private var sponsorBlock
var body: some View { var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) Section(header: Text("SponsorBlock API")) {
TextField(
"SponsorBlock API Instance",
text: $sponsorBlock,
prompt: Text("SponsorBlock API URL, leave blank to disable")
)
.labelsHidden()
#if !os(macOS)
.autocapitalization(.none)
.keyboardType(.URL)
#endif
#if os(macOS)
Spacer()
#endif
}
} }
} }

View File

@ -5,7 +5,7 @@ import SwiftUI
struct SettingsView: View { struct SettingsView: View {
#if os(macOS) #if os(macOS)
private enum Tabs: Hashable { private enum Tabs: Hashable {
case playback, instances case playback, services, instances
} }
#endif #endif
@ -24,6 +24,14 @@ struct SettingsView: View {
} }
.tag(Tabs.instances) .tag(Tabs.instances)
Form {
ServicesSettings()
}
.tabItem {
Label("Services", systemImage: "puzzlepiece.extension")
}
.tag(Tabs.services)
Form { Form {
PlaybackSettings() PlaybackSettings()
} }
@ -41,6 +49,7 @@ struct SettingsView: View {
AccountSelectionView() AccountSelectionView()
#endif #endif
InstancesSettings() InstancesSettings()
ServicesSettings()
PlaybackSettings() PlaybackSettings()
} }
.navigationTitle("Settings") .navigationTitle("Settings")