History UI improvements

This commit is contained in:
James Magahern
2023-09-26 16:23:35 -07:00
parent d9fa5adf00
commit eec57f5f31
4 changed files with 36 additions and 6 deletions

View File

@@ -10,8 +10,8 @@ import UIKit
@MainActor
class HistoryBrowserViewController: UIHostingController<HistoryView> {
public init() {
super.init(rootView: HistoryView(viewModel: BrowserHistory.shared.viewModel(limit: 500)))
public init(onSelectItem: @escaping (URL) -> Void) {
super.init(rootView: HistoryView(viewModel: BrowserHistory.shared.viewModel(limit: 500), onSelectItem: onSelectItem))
}
required dynamic init?(coder aDecoder: NSCoder) {

View File

@@ -11,6 +11,7 @@ import UniformTypeIdentifiers
struct HistoryView: View {
@StateObject public var viewModel: BrowserHistory.ViewModel
@State public var selectedItems = Set<HistoryItem.ID>()
public var onSelectItem: (URL) -> Void
private let dateFormatter = DateFormatter() .. {
$0.locale = Locale.current
@@ -55,8 +56,7 @@ struct HistoryView: View {
}
}, primaryAction: { items in
items.compactMap({ viewModel.item(forIdentifier: $0) }).forEach { item in
UIApplication.shared.open(item.url)
dismissAction()
onSelectItem(item.url)
}
})
.searchable(text: $viewModel.searchQuery)
@@ -65,7 +65,7 @@ struct HistoryView: View {
struct HistoryViewPreviewProvider: PreviewProvider {
static var previews: some View {
HistoryView(viewModel: BrowserHistory.shared.viewModel())
HistoryView(viewModel: BrowserHistory.shared.viewModel(), onSelectItem: { _ in })
.previewLayout(.fixed(width: 480.0, height: 800.0))
}
}