Put tapbacks in an enum

This commit is contained in:
Garth Vander Houwen 2022-11-04 10:21:31 -07:00
parent 6c0c7d026b
commit c27d97062d
3 changed files with 67 additions and 87 deletions

View file

@ -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"
}
}
}
}

View file

@ -18,7 +18,6 @@ struct Contacts: View {
animation: .default)
private var users: FetchedResults<UserEntity>
private var prefferedNode: NodeInfoEntity?
@FetchRequest(

View file

@ -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: {