diff --git a/Meshtastic/Enums/MessagingEnums.swift b/Meshtastic/Enums/MessagingEnums.swift index 637cfdc6..251fbb6f 100644 --- a/Meshtastic/Enums/MessagingEnums.swift +++ b/Meshtastic/Enums/MessagingEnums.swift @@ -9,3 +9,56 @@ enum BubblePosition { case left case right } + +enum Tapbacks: Int, CaseIterable, Identifiable { + + case heart = 0 + case thumbsUp = 1 + case thumbsDown = 2 + case haHa = 3 + case exclamation = 4 + case question = 5 + case poop = 6 + + var id: Int { self.rawValue } + var emojiString: String { + get { + switch self { + case .heart: + return "❤️" + case .thumbsUp: + return "👍" + case .thumbsDown: + return "👎" + case .haHa: + return "🤣" + case .exclamation: + return "‼️" + case .question: + return "❓" + case .poop: + return "💩" + } + } + } + var description: String { + get { + switch self { + case .heart: + return "Heart" + case .thumbsUp: + return "Thumbs Up" + case .thumbsDown: + return "Thumbs Down" + case .haHa: + return "HaHa" + case .exclamation: + return "Exclamation Mark" + case .question: + return "Question Mark" + case .poop: + return "Poop" + } + } + } +} diff --git a/Meshtastic/Views/Messages/Contacts.swift b/Meshtastic/Views/Messages/Contacts.swift index b80aa884..6f126c20 100644 --- a/Meshtastic/Views/Messages/Contacts.swift +++ b/Meshtastic/Views/Messages/Contacts.swift @@ -18,7 +18,6 @@ struct Contacts: View { animation: .default) private var users: FetchedResults - private var prefferedNode: NodeInfoEntity? @FetchRequest( diff --git a/Meshtastic/Views/Messages/MessageList.swift b/Meshtastic/Views/Messages/MessageList.swift index 6eab8a8e..b583aa8c 100644 --- a/Meshtastic/Views/Messages/MessageList.swift +++ b/Meshtastic/Views/Messages/MessageList.swift @@ -69,94 +69,22 @@ struct MessageList: View { .background(currentUser ? Color.blue : Color(.darkGray)) .cornerRadius(15) .contextMenu { + VStack{ + Text("Channel: \(message.channel)") + } Menu("Tapback response") { - - Button(action: { - if bleManager.sendMessage(message: "❤️", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - print("Sent ❤️ Tapback") - self.context.refresh(user, mergeChanges: true) - } else { print("❤️ Tapback Failed") } - - }) { - Text("Heart") - let image = "❤️".image() - Image(uiImage: image!) - } - Button(action: { - - if bleManager.sendMessage(message: "👍", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { + ForEach(Tapbacks.allCases) { tb in + Button(action: { + if bleManager.sendMessage(message: tb.description, toUserNum: user.num, isEmoji: true, replyID: message.messageId) { + print("Sent \(tb.description) Tapback") + self.context.refresh(user, mergeChanges: true) + } else { print("\(tb.description) Tapback Failed") } - print("Sent 👍 Tapback") - self.context.refresh(user, mergeChanges: true) - - } else { print("👍 Tapback Failed")} - - }) { - Text("Thumbs Up") - let image = "👍".image() - Image(uiImage: image!) - } - Button(action: { - - if bleManager.sendMessage(message: "👎", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - - print("Sent 👎 Tapback") - self.context.refresh(user, mergeChanges: true) - - } else { print("👎 Tapback Failed") } - - }) { - Text("Thumbs Down") - let image = "👎".image() - Image(uiImage: image!) - } - Button(action: { - - if bleManager.sendMessage(message: "🤣", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - - print("Sent 🤣 Tapback") - self.context.refresh(user, mergeChanges: true) - - } else { print("🤣 Tapback Failed") } - - }) { - Text("HaHa") - let image = "🤣".image() - Image(uiImage: image!) - } - Button(action: { - - if bleManager.sendMessage(message: "‼️", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - - print("Sent ‼️ Tapback") - self.context.refresh(user, mergeChanges: true) - - } else { print("‼️ Tapback Failed") } - - }) { - Text("Exclamation Mark") - let image = "‼️".image() - Image(uiImage: image!) - } - Button(action: { - if bleManager.sendMessage(message: "❓", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - self.context.refresh(user, mergeChanges: true) - print("Sent ❓ Tapback") - } else { print("❓ Tapback Failed") } - }) { - Text("Question Mark") - let image = "❓".image() - Image(uiImage: image!) - } - Button(action: { - if bleManager.sendMessage(message: "💩", toUserNum: user.num, isEmoji: true, replyID: message.messageId) { - self.context.refresh(user, mergeChanges: true) - print("Sent 💩 Tapback") - } else { print("💩 Tapback Failed") } - }) { - Text("Poop") - let image = "💩".image() - Image(uiImage: image!) + }) { + Text(tb.description) + let image = tb.emojiString.image() + Image(uiImage: image!) + } } } Button(action: {