starting to add emojipacks

This commit is contained in:
neon443
2025-12-01 15:07:44 +00:00
parent 74d6b29f69
commit 11cebac1b4
5 changed files with 84 additions and 0 deletions

24
EmojiPackManager.swift Normal file
View File

@@ -0,0 +1,24 @@
//
// EmojiPackManager.swift
// StickerSlack
//
// Created by neon443 on 01/12/2025.
//
import SwiftUI
struct EmojiPackManager: View {
@ObservedObject var hoarder: EmojiHoarder
var body: some View {
ForEach(hoarder.emojiPacks) { pack in
EmojiPackView(pack: pack)
}
}
}
#Preview {
EmojiPackManager(
hoarder: EmojiHoarder(localOnly: true, skipIndex: true)
)
}

View File

@@ -65,6 +65,12 @@
A9BBC51A2EB8FA4500FFE82F /* ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBC5172EB8FA4500FFE82F /* ViewModifiers.swift */; }; A9BBC51A2EB8FA4500FFE82F /* ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9BBC5172EB8FA4500FFE82F /* ViewModifiers.swift */; };
A9C172DC2EB8C9AC008A7885 /* Trie.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C172DB2EB8C9AC008A7885 /* Trie.swift */; }; A9C172DC2EB8C9AC008A7885 /* Trie.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C172DB2EB8C9AC008A7885 /* Trie.swift */; };
A9C172DD2EB8C9AC008A7885 /* Trie.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C172DB2EB8C9AC008A7885 /* Trie.swift */; }; A9C172DD2EB8C9AC008A7885 /* Trie.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C172DB2EB8C9AC008A7885 /* Trie.swift */; };
A9CD6C352EDDE22800B7F421 /* EmojiPackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CD6C342EDDE22800B7F421 /* EmojiPackView.swift */; };
A9CD6C362EDDE22800B7F421 /* EmojiPackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CD6C342EDDE22800B7F421 /* EmojiPackView.swift */; };
A9CD6C382EDDE37500B7F421 /* EmojiPackManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CD6C372EDDE37500B7F421 /* EmojiPackManager.swift */; };
A9CD6C392EDDE37500B7F421 /* EmojiPackManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CD6C372EDDE37500B7F421 /* EmojiPackManager.swift */; };
A9CD6C3A2EDDE6B500B7F421 /* EmojiPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D15B892EB1142C00404792 /* EmojiPack.swift */; };
A9CD6C3B2EDDE6B500B7F421 /* EmojiPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D15B892EB1142C00404792 /* EmojiPack.swift */; };
A9D15B8B2EB1142C00404792 /* EmojiPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D15B892EB1142C00404792 /* EmojiPack.swift */; }; A9D15B8B2EB1142C00404792 /* EmojiPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9D15B892EB1142C00404792 /* EmojiPack.swift */; };
A9EB72392EB93FDB00658CEB /* EmojiCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9EB72382EB93FDB00658CEB /* EmojiCollectionView.swift */; }; A9EB72392EB93FDB00658CEB /* EmojiCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9EB72382EB93FDB00658CEB /* EmojiCollectionView.swift */; };
A9EB72472EB948C400658CEB /* EmojiRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9EB72462EB948C400658CEB /* EmojiRow.swift */; }; A9EB72472EB948C400658CEB /* EmojiRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9EB72462EB948C400658CEB /* EmojiRow.swift */; };
@@ -143,6 +149,8 @@
A9B9A82C2EB2CCBE004C9245 /* StickerSlackTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerSlackTests.swift; sourceTree = "<group>"; }; A9B9A82C2EB2CCBE004C9245 /* StickerSlackTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerSlackTests.swift; sourceTree = "<group>"; };
A9BBC5172EB8FA4500FFE82F /* ViewModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModifiers.swift; sourceTree = "<group>"; }; A9BBC5172EB8FA4500FFE82F /* ViewModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModifiers.swift; sourceTree = "<group>"; };
A9C172DB2EB8C9AC008A7885 /* Trie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Trie.swift; sourceTree = "<group>"; }; A9C172DB2EB8C9AC008A7885 /* Trie.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Trie.swift; sourceTree = "<group>"; };
A9CD6C342EDDE22800B7F421 /* EmojiPackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPackView.swift; sourceTree = "<group>"; };
A9CD6C372EDDE37500B7F421 /* EmojiPackManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPackManager.swift; sourceTree = "<group>"; };
A9D15B892EB1142C00404792 /* EmojiPack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPack.swift; sourceTree = "<group>"; }; A9D15B892EB1142C00404792 /* EmojiPack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiPack.swift; sourceTree = "<group>"; };
A9E2ECD72EB74CE00038B2D6 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; }; A9E2ECD72EB74CE00038B2D6 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; };
A9EB72382EB93FDB00658CEB /* EmojiCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionView.swift; sourceTree = "<group>"; }; A9EB72382EB93FDB00658CEB /* EmojiCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiCollectionView.swift; sourceTree = "<group>"; };
@@ -229,6 +237,7 @@
children = ( children = (
A9773C2E2EA54AF000F3B753 /* EmojiPreview.swift */, A9773C2E2EA54AF000F3B753 /* EmojiPreview.swift */,
A9EB72462EB948C400658CEB /* EmojiRow.swift */, A9EB72462EB948C400658CEB /* EmojiRow.swift */,
A9CD6C342EDDE22800B7F421 /* EmojiPackView.swift */,
); );
path = Emoji; path = Emoji;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -260,6 +269,7 @@
A949B1D62EA04C0B00215164 = { A949B1D62EA04C0B00215164 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A9CD6C372EDDE37500B7F421 /* EmojiPackManager.swift */,
A9E2ECD72EB74CE00038B2D6 /* Config.xcconfig */, A9E2ECD72EB74CE00038B2D6 /* Config.xcconfig */,
A949B1F22EA04E8200215164 /* StickerSlack */, A949B1F22EA04E8200215164 /* StickerSlack */,
A9104C742EB3AE4700D160EA /* Resources */, A9104C742EB3AE4700D160EA /* Resources */,
@@ -487,6 +497,7 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
A949B1F42EA04E8200215164 /* ContentView.swift in Sources */, A949B1F42EA04E8200215164 /* ContentView.swift in Sources */,
A9CD6C382EDDE37500B7F421 /* EmojiPackManager.swift in Sources */,
A949B1F52EA04E8200215164 /* StickerSlackApp.swift in Sources */, A949B1F52EA04E8200215164 /* StickerSlackApp.swift in Sources */,
A9104C802EB4022500D160EA /* MSSticker.swift in Sources */, A9104C802EB4022500D160EA /* MSSticker.swift in Sources */,
A957C1772ECD008E00EA3EE9 /* Bundle.swift in Sources */, A957C1772ECD008E00EA3EE9 /* Bundle.swift in Sources */,
@@ -498,6 +509,7 @@
A957C17A2ECE542D00EA3EE9 /* GifManager.swift in Sources */, A957C17A2ECE542D00EA3EE9 /* GifManager.swift in Sources */,
A955B3F52EC22EE900E1732D /* SearchView.swift in Sources */, A955B3F52EC22EE900E1732D /* SearchView.swift in Sources */,
A935437B2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */, A935437B2EB2A3C800BB80A4 /* FilterCategory.swift in Sources */,
A9CD6C352EDDE22800B7F421 /* EmojiPackView.swift in Sources */,
A9C172DD2EB8C9AC008A7885 /* Trie.swift in Sources */, A9C172DD2EB8C9AC008A7885 /* Trie.swift in Sources */,
A955B3F22EC22E9700E1732D /* BrowseView.swift in Sources */, A955B3F22EC22E9700E1732D /* BrowseView.swift in Sources */,
A9EB724F2EB94A6B00658CEB /* TrieTestingView.swift in Sources */, A9EB724F2EB94A6B00658CEB /* TrieTestingView.swift in Sources */,
@@ -518,6 +530,7 @@
files = ( files = (
A957C17B2ECE542D00EA3EE9 /* GifManager.swift in Sources */, A957C17B2ECE542D00EA3EE9 /* GifManager.swift in Sources */,
A986A6C32EB6598100B6E0FA /* FilterCategory.swift in Sources */, A986A6C32EB6598100B6E0FA /* FilterCategory.swift in Sources */,
A9CD6C3A2EDDE6B500B7F421 /* EmojiPack.swift in Sources */,
A9EB724B2EB94A5700658CEB /* Trie.swift in Sources */, A9EB724B2EB94A5700658CEB /* Trie.swift in Sources */,
A986A6CD2EB659E000B6E0FA /* MessagesViewController.swift in Sources */, A986A6CD2EB659E000B6E0FA /* MessagesViewController.swift in Sources */,
A986A6CE2EB659E000B6E0FA /* StickerBrowserDataSource.swift in Sources */, A986A6CE2EB659E000B6E0FA /* StickerBrowserDataSource.swift in Sources */,
@@ -538,6 +551,7 @@
A9B9A8302EB2CD0B004C9245 /* Emoji.swift in Sources */, A9B9A8302EB2CD0B004C9245 /* Emoji.swift in Sources */,
A955B3F12EC22E9700E1732D /* BrowseView.swift in Sources */, A955B3F12EC22E9700E1732D /* BrowseView.swift in Sources */,
A9B9A82F2EB2CCED004C9245 /* EmojiHoarder.swift in Sources */, A9B9A82F2EB2CCED004C9245 /* EmojiHoarder.swift in Sources */,
A9CD6C3B2EDDE6B500B7F421 /* EmojiPack.swift in Sources */,
A921C2E32ED071C900E57B1A /* ListRow.swift in Sources */, A921C2E32ED071C900E57B1A /* ListRow.swift in Sources */,
A9EB724A2EB948E000658CEB /* EmojiCollectionView.swift in Sources */, A9EB724A2EB948E000658CEB /* EmojiCollectionView.swift in Sources */,
A9EB724D2EB94A6B00658CEB /* TrieTestingView.swift in Sources */, A9EB724D2EB94A6B00658CEB /* TrieTestingView.swift in Sources */,
@@ -545,7 +559,9 @@
A955B3ED2EC22C4A00E1732D /* DownloadedView.swift in Sources */, A955B3ED2EC22C4A00E1732D /* DownloadedView.swift in Sources */,
A9C172DC2EB8C9AC008A7885 /* Trie.swift in Sources */, A9C172DC2EB8C9AC008A7885 /* Trie.swift in Sources */,
A957C1752ECCE2CE00EA3EE9 /* SettingsView.swift in Sources */, A957C1752ECCE2CE00EA3EE9 /* SettingsView.swift in Sources */,
A9CD6C362EDDE22800B7F421 /* EmojiPackView.swift in Sources */,
A9EB72472EB948C400658CEB /* EmojiRow.swift in Sources */, A9EB72472EB948C400658CEB /* EmojiRow.swift in Sources */,
A9CD6C392EDDE37500B7F421 /* EmojiPackManager.swift in Sources */,
A955B3F62EC22EE900E1732D /* SearchView.swift in Sources */, A955B3F62EC22EE900E1732D /* SearchView.swift in Sources */,
A9B9A8322EB2CD29004C9245 /* SlackResponse.swift in Sources */, A9B9A8322EB2CD29004C9245 /* SlackResponse.swift in Sources */,
A957C1782ECD008E00EA3EE9 /* Bundle.swift in Sources */, A957C1782ECD008E00EA3EE9 /* Bundle.swift in Sources */,

View File

@@ -9,5 +9,25 @@ import Foundation
struct EmojiPack: Identifiable, Codable { struct EmojiPack: Identifiable, Codable {
var id: UUID var id: UUID
var name: String
var description: String
var emojiNames: [String] var emojiNames: [String]
static var test: EmojiPack {
EmojiPack(
id: UUID(),
name: "test pack",
description: "neon443's debug emoji pack",
emojiNames: [
"pf",
"heavysob",
"yay",
"skulk",
"loll",
"bleh",
"uhh",
"communist"
]
)
}
} }

View File

@@ -21,6 +21,7 @@ class EmojiHoarder: ObservableObject {
private let decoder = JSONDecoder() private let decoder = JSONDecoder()
@Published var emojis: [Emoji] = [] @Published var emojis: [Emoji] = []
@Published var emojiPacks: [EmojiPack] = []
@Published var trie: Trie = Trie() @Published var trie: Trie = Trie()
@Published var downloadedEmojis: Set<String> = [] @Published var downloadedEmojis: Set<String> = []

View File

@@ -0,0 +1,23 @@
//
// EmojiPackView.swift
// StickerSlack
//
// Created by neon443 on 01/12/2025.
//
import SwiftUI
struct EmojiPackView: View {
@State var pack: EmojiPack
var body: some View {
Text(pack.name)
.bold()
Text(pack.description)
.foregroundStyle(.gray)
}
}
#Preview {
EmojiPackView(pack: .test)
}