diff --git a/StickerSlack/SwiftUI/ContentView.swift b/StickerSlack/SwiftUI/ContentView.swift index 90d0bc0..b68a52c 100644 --- a/StickerSlack/SwiftUI/ContentView.swift +++ b/StickerSlack/SwiftUI/ContentView.swift @@ -50,11 +50,15 @@ struct ContentView: View { TrieTestingView() } - Tab(role: .search) { - SearchView() + Tab("Search", systemImage: "magnifyingglass", role: .search) { + NavigationStack { + SearchView() + .searchable(text: $hoarder.searchTerm) + } } } - .searchable(text: $hoarder.searchTerm, placement: .automatic) + .searchable(text: $hoarder.searchTerm) + .modifier(tabViewActivationSearchActivation()) } else { TabView { DownloadedView() diff --git a/StickerSlack/SwiftUI/SearchView.swift b/StickerSlack/SwiftUI/SearchView.swift index 2557bc8..f301d12 100644 --- a/StickerSlack/SwiftUI/SearchView.swift +++ b/StickerSlack/SwiftUI/SearchView.swift @@ -11,21 +11,19 @@ struct SearchView: View { @ObservedObject var hoarder: EmojiHoarder = .shared var body: some View { - NavigationStack { - List { - Text("\(hoarder.searchTerm.isEmpty ? hoarder.emojis.count : hoarder.filteredEmojis.count) Emoji") - - ForEach(hoarder.filteredEmojis, id: \.self) { name in - if let emoji = hoarder.trie.dict[name] { - EmojiRow(emoji: emoji) - } + List { + Text("\(hoarder.searchTerm.isEmpty ? hoarder.emojis.count : hoarder.filteredEmojis.count) Emoji") + + ForEach(hoarder.filteredEmojis, id: \.self) { name in + if let emoji = hoarder.trie.dict[name] { + EmojiRow(emoji: emoji) } } - .onChange(of: hoarder.searchTerm) { _ in - hoarder.filterEmojis(by: hoarder.searchTerm) - } } - } + .onChange(of: hoarder.searchTerm) { _ in + hoarder.filterEmojis(by: hoarder.searchTerm) + } + } } #Preview { diff --git a/StickerSlack/SwiftUI/ViewModifiers.swift b/StickerSlack/SwiftUI/ViewModifiers.swift index 03112b8..29e7d05 100644 --- a/StickerSlack/SwiftUI/ViewModifiers.swift +++ b/StickerSlack/SwiftUI/ViewModifiers.swift @@ -17,3 +17,13 @@ struct numericTextCompat: ViewModifier { } } } + +struct tabViewActivationSearchActivation: ViewModifier { + func body(content: Content) -> some View { + if #available(iOS 26, *) { + content.tabViewSearchActivation(.searchTabSelection) + } else { + content + } + } +}