yattee/Apple TV/SearchView.swift

34 lines
809 B
Swift
Raw Normal View History

2021-06-11 12:36:26 +00:00
import SwiftUI
struct SearchView: View {
@ObservedObject private var provider = SearchedVideosProvider()
2021-06-11 21:40:35 +00:00
@ObservedObject var state: AppState
@Binding var tabSelection: TabSelection
2021-06-11 21:11:59 +00:00
@State var query = ""
2021-06-11 12:36:26 +00:00
var body: some View {
2021-06-11 21:40:35 +00:00
VideosView(state: state, tabSelection: $tabSelection, videos: videos)
2021-06-11 21:11:59 +00:00
.searchable(text: $query)
2021-06-11 12:36:26 +00:00
}
2021-06-11 21:40:35 +00:00
var videos: [Video] {
var newQuery = query
if let url = URLComponents(string: query),
let queryItem = url.queryItems?.first(where: { item in item.name == "v" }),
let id = queryItem.value
{
newQuery = id
}
if newQuery != provider.query {
provider.query = newQuery
provider.load()
}
2021-06-11 12:36:26 +00:00
2021-06-11 21:40:35 +00:00
return provider.videos
2021-06-11 12:36:26 +00:00
}
}