mirror of
https://github.com/neon443/StickerSlack.git
synced 2026-03-11 13:26:17 +00:00
added filter categories
This commit is contained in:
@@ -11,6 +11,8 @@
|
|||||||
A924C3722EA9127200F20781 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A924C3712EA9127200F20781 /* Emoji.swift */; };
|
A924C3722EA9127200F20781 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A924C3712EA9127200F20781 /* Emoji.swift */; };
|
||||||
A924C3732EA9127200F20781 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A924C3712EA9127200F20781 /* Emoji.swift */; };
|
A924C3732EA9127200F20781 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A924C3712EA9127200F20781 /* Emoji.swift */; };
|
||||||
A924C3782EA9225800F20781 /* Haptics in Frameworks */ = {isa = PBXBuildFile; productRef = A924C3772EA9225800F20781 /* Haptics */; };
|
A924C3782EA9225800F20781 /* Haptics in Frameworks */ = {isa = PBXBuildFile; productRef = A924C3772EA9225800F20781 /* Haptics */; };
|
||||||
|
A935437B2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935437A2EB2A3C800BB80A4 /* FilterCategory.swift */; };
|
||||||
|
A935437C2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A935437A2EB2A3C800BB80A4 /* FilterCategory.swift */; };
|
||||||
A940FE3D2EA232590016870B /* ApiEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A940FE3C2EA232590016870B /* ApiEmoji.swift */; };
|
A940FE3D2EA232590016870B /* ApiEmoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = A940FE3C2EA232590016870B /* ApiEmoji.swift */; };
|
||||||
A949B1F32EA04E8200215164 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A949B1EF2EA04E8200215164 /* Assets.xcassets */; };
|
A949B1F32EA04E8200215164 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A949B1EF2EA04E8200215164 /* Assets.xcassets */; };
|
||||||
A949B1F42EA04E8200215164 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A949B1F02EA04E8200215164 /* ContentView.swift */; };
|
A949B1F42EA04E8200215164 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A949B1F02EA04E8200215164 /* ContentView.swift */; };
|
||||||
@@ -58,6 +60,7 @@
|
|||||||
A924C3712EA9127200F20781 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = "<group>"; };
|
A924C3712EA9127200F20781 /* Emoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Emoji.swift; sourceTree = "<group>"; };
|
||||||
A924C3742EA9134C00F20781 /* StickerSlack.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = StickerSlack.entitlements; sourceTree = "<group>"; };
|
A924C3742EA9134C00F20781 /* StickerSlack.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = StickerSlack.entitlements; sourceTree = "<group>"; };
|
||||||
A924C3752EA9137A00F20781 /* StickerSlackiMessageExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = StickerSlackiMessageExtension.entitlements; sourceTree = "<group>"; };
|
A924C3752EA9137A00F20781 /* StickerSlackiMessageExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = StickerSlackiMessageExtension.entitlements; sourceTree = "<group>"; };
|
||||||
|
A935437A2EB2A3C800BB80A4 /* FilterCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterCategory.swift; sourceTree = "<group>"; };
|
||||||
A940FE3C2EA232590016870B /* ApiEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApiEmoji.swift; sourceTree = "<group>"; };
|
A940FE3C2EA232590016870B /* ApiEmoji.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApiEmoji.swift; sourceTree = "<group>"; };
|
||||||
A949B1DF2EA04C0B00215164 /* StickerSlack.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StickerSlack.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
A949B1DF2EA04C0B00215164 /* StickerSlack.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StickerSlack.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
A949B1EF2EA04E8200215164 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
A949B1EF2EA04E8200215164 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
@@ -152,6 +155,7 @@
|
|||||||
A940FE3C2EA232590016870B /* ApiEmoji.swift */,
|
A940FE3C2EA232590016870B /* ApiEmoji.swift */,
|
||||||
A924C3712EA9127200F20781 /* Emoji.swift */,
|
A924C3712EA9127200F20781 /* Emoji.swift */,
|
||||||
A9D15B892EB1142C00404792 /* EmojiPack.swift */,
|
A9D15B892EB1142C00404792 /* EmojiPack.swift */,
|
||||||
|
A935437A2EB2A3C800BB80A4 /* FilterCategory.swift */,
|
||||||
);
|
);
|
||||||
path = Emoji;
|
path = Emoji;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -291,6 +295,7 @@
|
|||||||
A949B1F42EA04E8200215164 /* ContentView.swift in Sources */,
|
A949B1F42EA04E8200215164 /* ContentView.swift in Sources */,
|
||||||
A949B1F52EA04E8200215164 /* StickerSlackApp.swift in Sources */,
|
A949B1F52EA04E8200215164 /* StickerSlackApp.swift in Sources */,
|
||||||
A949B1FB2EA0518800215164 /* SlackResponse.swift in Sources */,
|
A949B1FB2EA0518800215164 /* SlackResponse.swift in Sources */,
|
||||||
|
A935437B2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */,
|
||||||
A924C3732EA9127200F20781 /* Emoji.swift in Sources */,
|
A924C3732EA9127200F20781 /* Emoji.swift in Sources */,
|
||||||
A9D15B8B2EB1142C00404792 /* EmojiPack.swift in Sources */,
|
A9D15B8B2EB1142C00404792 /* EmojiPack.swift in Sources */,
|
||||||
A949B1F82EA04F2300215164 /* EmojiHoarder.swift in Sources */,
|
A949B1F82EA04F2300215164 /* EmojiHoarder.swift in Sources */,
|
||||||
@@ -305,6 +310,7 @@
|
|||||||
A924C3722EA9127200F20781 /* Emoji.swift in Sources */,
|
A924C3722EA9127200F20781 /* Emoji.swift in Sources */,
|
||||||
A9BE06DC2EA657C70033B213 /* ApiEmoji.swift in Sources */,
|
A9BE06DC2EA657C70033B213 /* ApiEmoji.swift in Sources */,
|
||||||
A9BE06DB2EA656B80033B213 /* EmojiHoarder.swift in Sources */,
|
A9BE06DB2EA656B80033B213 /* EmojiHoarder.swift in Sources */,
|
||||||
|
A935437C2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */,
|
||||||
A969D6AF2EA3F1AF00399C05 /* MessagesViewController.swift in Sources */,
|
A969D6AF2EA3F1AF00399C05 /* MessagesViewController.swift in Sources */,
|
||||||
A9BE06DD2EA657CF0033B213 /* SlackResponse.swift in Sources */,
|
A9BE06DD2EA657CF0033B213 /* SlackResponse.swift in Sources */,
|
||||||
A9D15B8A2EB1142C00404792 /* EmojiPack.swift in Sources */,
|
A9D15B8A2EB1142C00404792 /* EmojiPack.swift in Sources */,
|
||||||
|
|||||||
14
StickerSlack/Emoji/FilterCategory.swift
Normal file
14
StickerSlack/Emoji/FilterCategory.swift
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
//
|
||||||
|
// FilterCategory.swift
|
||||||
|
// StickerSlack
|
||||||
|
//
|
||||||
|
// Created by neon443 on 29/10/2025.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
enum FilterCategory {
|
||||||
|
case none
|
||||||
|
case downloaded
|
||||||
|
case notDownloaded
|
||||||
|
}
|
||||||
@@ -91,4 +91,22 @@ class EmojiHoarder: ObservableObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func filterEmojis(byCategory category: FilterCategory, searchTerm: String) {
|
||||||
|
guard category != .none else {
|
||||||
|
filterEmojis(by: searchTerm)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Task {
|
||||||
|
filterEmojis(by: searchTerm)
|
||||||
|
switch category {
|
||||||
|
case .none:
|
||||||
|
fallthrough
|
||||||
|
case .downloaded:
|
||||||
|
withAnimation(.interactiveSpring) { filteredEmojis = filteredEmojis.filter { $0.isLocal } }
|
||||||
|
case .notDownloaded:
|
||||||
|
withAnimation(.interactiveSpring) { filteredEmojis = filteredEmojis.filter { !$0.isLocal } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,21 @@ struct ContentView: View {
|
|||||||
.onChange(of: searchTerm) { _ in
|
.onChange(of: searchTerm) { _ in
|
||||||
hoarder.filterEmojis(by: searchTerm)
|
hoarder.filterEmojis(by: searchTerm)
|
||||||
}
|
}
|
||||||
|
|
||||||
.autocorrectionDisabled()
|
.autocorrectionDisabled()
|
||||||
.textFieldStyle(.roundedBorder)
|
.textFieldStyle(.roundedBorder)
|
||||||
|
|
||||||
|
Button("none") {
|
||||||
|
hoarder.filterEmojis(byCategory: .none, searchTerm: searchTerm)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button("downloaded") {
|
||||||
|
hoarder.filterEmojis(byCategory: .downloaded, searchTerm: searchTerm)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button("not downloaded") {
|
||||||
|
hoarder.filterEmojis(byCategory: .notDownloaded, searchTerm: searchTerm)
|
||||||
|
}
|
||||||
|
|
||||||
Text("\(hoarder.filteredEmojis.count) Emoji")
|
Text("\(hoarder.filteredEmojis.count) Emoji")
|
||||||
|
|
||||||
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
|
ForEach($hoarder.filteredEmojis, id: \.self) { $emoji in
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ struct EmojiPreview: View {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ProgressView()
|
ProgressView()
|
||||||
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user