Fix visibility of navigation bar when searching the forwarding screen. (#1357)

* Fix visibility of navigation bar when searching the forwarding screen.

- Update Introspect and replace deprecated calls with new ones.
- Remove obsoleted colours from DesignKit.
This commit is contained in:
Doug
2023-07-19 16:55:21 +01:00
committed by GitHub
parent b677e5cbd7
commit 66eea98b33
14 changed files with 39 additions and 78 deletions
@@ -15,6 +15,7 @@
//
import SwiftUI
import SwiftUIIntrospect
extension View {
/// Disable the interactive dismiss while the search is on.
@@ -28,6 +29,21 @@ extension View {
func dismissSearchOnDisappear() -> some View {
modifier(DismissSearchOnDisappear())
}
/// Configures a searchable's underlying search controller.
/// - Parameters:
/// - hidesNavigationBar: A Boolean indicating whether to hide the navigation bar when searching.
/// - showsCancelButton: A Boolean indicating whether the search controller manages the visibility of the search bar’s cancel button.
///
/// This modifier may be moved into Compound once styles for the various configuration options have been defined.
func searchableConfiguration(hidesNavigationBar: Bool = true,
showsCancelButton: Bool = true) -> some View {
introspect(.navigationStack, on: .iOS(.v16), scope: .ancestor) { navigationController in
guard let searchController = navigationController.navigationBar.topItem?.searchController else { return }
searchController.hidesNavigationBarDuringPresentation = hidesNavigationBar
searchController.automaticallyShowsCancelButton = showsCancelButton
}
}
}
private struct InteractiveDismissSearchModifier: ViewModifier {