mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +00:00
morphy search button/tab ios 26
fix missing sf symbol
This commit is contained in:
@@ -12,75 +12,68 @@ struct ContentView: View {
|
|||||||
@ObservedObject var hoarder: EmojiHoarder = EmojiHoarder()
|
@ObservedObject var hoarder: EmojiHoarder = EmojiHoarder()
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationSplitView {
|
if #available(iOS 18, *) {
|
||||||
if #available(iOS 18, *) {
|
TabView {
|
||||||
TabView {
|
Tab("Browse", systemImage: "square.grid.2x2.fill") {
|
||||||
Tab("Browse", systemImage: "square.grid.2x2.fill") {
|
|
||||||
BrowseView(hoarder: hoarder)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tab {
|
|
||||||
// List {
|
|
||||||
// Text("\(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: searchTerm) { _ in
|
|
||||||
// hoarder.filterEmojis(by: searchTerm)
|
|
||||||
// }
|
|
||||||
// .refreshable {
|
|
||||||
// Task.detached {
|
|
||||||
// await hoarder.refreshDB()
|
|
||||||
// }
|
|
||||||
// searchTerm = ""
|
|
||||||
// }
|
|
||||||
// } label: {
|
|
||||||
// Label("Search", systemImage: "magnifyingglass")
|
|
||||||
// }
|
|
||||||
|
|
||||||
Tab("Downloaded", systemImage: "arrow.down.circle.fill") {
|
|
||||||
DownloadedView(hoarder: hoarder)
|
|
||||||
}
|
|
||||||
|
|
||||||
Tab("Tree", systemImage: "tree.fill") {
|
|
||||||
TrieTestingView(hoarder: hoarder)
|
|
||||||
}
|
|
||||||
|
|
||||||
Tab("Search", systemImage: "magnifyingglass", role: .search) {
|
|
||||||
NavigationStack {
|
|
||||||
SearchView(hoarder: hoarder)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.searchable(text: $hoarder.searchTerm, placement: .navigationBarDrawer)
|
|
||||||
// .searchable(text: $hoarder.searchTerm)
|
|
||||||
// .modifier(tabViewActivationSearchActivation())
|
|
||||||
} else {
|
|
||||||
TabView {
|
|
||||||
DownloadedView(hoarder: hoarder)
|
|
||||||
.tabItem {
|
|
||||||
Label("Downloaded", systemImage: "arrow.down.circle.fill")
|
|
||||||
}
|
|
||||||
BrowseView(hoarder: hoarder)
|
BrowseView(hoarder: hoarder)
|
||||||
.tabItem {
|
}
|
||||||
Label("Browse", systemImage: "square.grid.2x2.fill")
|
|
||||||
}
|
// Tab {
|
||||||
|
// List {
|
||||||
|
// Text("\(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: searchTerm) { _ in
|
||||||
|
// hoarder.filterEmojis(by: searchTerm)
|
||||||
|
// }
|
||||||
|
// .refreshable {
|
||||||
|
// Task.detached {
|
||||||
|
// await hoarder.refreshDB()
|
||||||
|
// }
|
||||||
|
// searchTerm = ""
|
||||||
|
// }
|
||||||
|
// } label: {
|
||||||
|
// Label("Search", systemImage: "magnifyingglass")
|
||||||
|
// }
|
||||||
|
|
||||||
|
Tab("Downloaded", systemImage: "arrow.down.circle.fill") {
|
||||||
|
DownloadedView(hoarder: hoarder)
|
||||||
|
}
|
||||||
|
|
||||||
|
Tab("Tree", systemImage: "tree.fill") {
|
||||||
TrieTestingView(hoarder: hoarder)
|
TrieTestingView(hoarder: hoarder)
|
||||||
.tabItem {
|
}
|
||||||
Label("Trie", systemImage: "tree.fill")
|
|
||||||
}
|
Tab(role: .search) {
|
||||||
SearchView(hoarder: hoarder)
|
SearchView(hoarder: hoarder)
|
||||||
.tabItem {
|
|
||||||
Label("Search", systemImage: "magnifyingglass")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} detail: {
|
.searchable(text: $hoarder.searchTerm)
|
||||||
Text("")
|
} else {
|
||||||
|
TabView {
|
||||||
|
DownloadedView(hoarder: hoarder)
|
||||||
|
.tabItem {
|
||||||
|
Label("Downloaded", systemImage: "arrow.down.circle.fill")
|
||||||
|
}
|
||||||
|
BrowseView(hoarder: hoarder)
|
||||||
|
.tabItem {
|
||||||
|
Label("Browse", systemImage: "square.grid.2x2.fill")
|
||||||
|
}
|
||||||
|
TrieTestingView(hoarder: hoarder)
|
||||||
|
.tabItem {
|
||||||
|
Label("Trie", systemImage: "tree.fill")
|
||||||
|
}
|
||||||
|
SearchView(hoarder: hoarder)
|
||||||
|
.tabItem {
|
||||||
|
Label("Search", systemImage: "magnifyingglass")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.searchable(text: $hoarder.searchTerm)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ struct DownloadedView: View {
|
|||||||
.clipShape(RoundedRectangle(cornerRadius: 15))
|
.clipShape(RoundedRectangle(cornerRadius: 15))
|
||||||
.contextMenu {
|
.contextMenu {
|
||||||
Text(emoji.name)
|
Text(emoji.name)
|
||||||
Button("Copy Name", systemImage: "document.on.document") {
|
Button("Copy Name", systemImage: "doc.on.clipboard") {
|
||||||
UIPasteboard.general.string = emoji.name
|
UIPasteboard.general.string = emoji.name
|
||||||
}
|
}
|
||||||
Button("Copy Image", systemImage: "photo.fill.on.rectangle.fill") {
|
Button("Copy Image", systemImage: "photo.fill.on.rectangle.fill") {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ struct TrieTestingView: View {
|
|||||||
@State var filterTerm: String = ""
|
@State var filterTerm: String = ""
|
||||||
@State var filterResult: [String] = []
|
@State var filterResult: [String] = []
|
||||||
|
|
||||||
@State var uikit: Bool = true
|
@State var uikit: Bool = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack {
|
VStack {
|
||||||
|
|||||||
Reference in New Issue
Block a user