View options, video details screen

This commit is contained in:
Arkadiusz Fal
2021-07-08 00:39:18 +02:00
parent 6d35394ffd
commit 4a733f5a30
27 changed files with 652 additions and 108 deletions

View File

@@ -3,6 +3,9 @@ import SwiftUI
struct ContentView: View {
@Default(.openChannel) var channel
@Default(.showingVideoDetails) var showDetails
@State private var showingOptions = false
var body: some View {
NavigationView {
@@ -33,6 +36,9 @@ struct ContentView: View {
.tabItem { Image(systemName: "magnifyingglass") }
.tag(TabSelection.search)
}
.fullScreenCover(isPresented: $showingOptions) { OptionsView() }
.onPlayPauseCommand { showingOptions.toggle() }
.background(videoDetailsViewNavigationLink)
}
}
@@ -42,6 +48,10 @@ struct ContentView: View {
set: { Defaults[.tabSelection] = $0 }
)
}
var videoDetailsViewNavigationLink: some View {
NavigationLink("", destination: VideoDetailsView(), isActive: $showDetails).hidden()
}
}
struct ContentView_Previews: PreviewProvider {

View File

@@ -5,4 +5,10 @@ extension Defaults.Keys {
static let tabSelection = Key<TabSelection>("tabSelection", default: .subscriptions)
static let searchQuery = Key<String>("searchQuery", default: "")
static let openChannel = Key<Channel?>("openChannel")
static let searchSortOrder = Key<SearchSortOrder>("searchSortOrder", default: .relevance)
static let searchDate = Key<SearchDate?>("searchDate", default: nil)
static let searchDuration = Key<SearchDuration?>("searchDuration", default: nil)
static let openVideoID = Key<String>("videoID", default: "")
static let showingVideoDetails = Key<Bool>("showingVideoDetails", default: false)
}

View File

@@ -1,8 +1,12 @@
import Defaults
enum ListingLayout: String, CaseIterable, Defaults.Serializable {
enum ListingLayout: String, CaseIterable, Identifiable, Defaults.Serializable {
case list, cells
var id: String {
rawValue
}
var name: String {
switch self {
case .list: