Private
Public Access
1
0

App icon, group member annotations, variable spacing

This commit is contained in:
2025-08-29 21:47:51 -06:00
parent 5f37f82a33
commit 7992c03fb6
7 changed files with 116 additions and 31 deletions

View File

@@ -23,6 +23,10 @@ enum Display
else { return participants.joined(separator: ", ") }
}
var isGroupChat: Bool {
participants.count > 1
}
init(from c: Serialized.Conversation) {
self.id = c.guid
self.name = c.displayName
@@ -62,7 +66,7 @@ enum Display
}
self.attachments = m.attachments.map { attachment in
ImageAttachment(from: attachment, sender: sender)
ImageAttachment(from: attachment, dateSent: m.date, sender: sender)
}
self.sender = sender
@@ -89,6 +93,7 @@ enum Display
{
let id: String
let sender: Sender
let dateSent: Date
let data: Serialized.Attachment
var size: CGSize? {
@@ -107,21 +112,37 @@ enum Display
data.previewPath
}
init(from serialized: Serialized.Attachment, sender: Sender) {
init(from serialized: Serialized.Attachment, dateSent: Date, sender: Sender) {
self.id = serialized.guid
self.sender = sender
self.data = serialized
self.dateSent = dateSent
}
}
enum Sender
enum Sender: Identifiable, Equatable
{
case me
case counterpart(String)
var id: String { displayName }
var isMe: Bool {
if case .me = self { true } else { false }
}
var displayName: String {
switch self {
case .me:
"Me"
case .counterpart(let string):
string
}
}
static func ==(lhs: Sender, rhs: Sender) -> Bool {
return lhs.displayName == rhs.displayName
}
}
}