Fix: truncate pills if they are too long

This commit is contained in:
Nicolas Mauri
2023-03-23 12:25:51 +01:00
parent 760888b8ed
commit 2fdb811a1c
5 changed files with 22 additions and 7 deletions
@@ -72,6 +72,8 @@ struct PillTextAttachmentData: Codable {
var alpha: CGFloat
/// Font for the display name
var font: UIFont
/// Max width
var maxWidth: CGFloat
/// Helper for preferred text to display.
var displayText: String {
@@ -93,12 +95,14 @@ struct PillTextAttachmentData: Codable {
items: [PillTextAttachmentItem],
isHighlighted: Bool,
alpha: CGFloat,
font: UIFont) {
font: UIFont,
maxWidth: CGFloat = CGFloat.greatestFiniteMagnitude) {
self.pillType = pillType
self.items = items
self.isHighlighted = isHighlighted
self.alpha = alpha
self.font = font
self.maxWidth = maxWidth
}
// MARK: - Codable
@@ -108,6 +112,7 @@ struct PillTextAttachmentData: Codable {
case isHighlighted
case alpha
case font
case maxWidth
}
enum PillTextAttachmentDataError: Error {
@@ -126,6 +131,7 @@ struct PillTextAttachmentData: Codable {
} else {
throw PillTextAttachmentDataError.noFontData
}
maxWidth = try container.decode(CGFloat.self, forKey: .maxWidth)
}
func encode(to encoder: Encoder) throws {
@@ -136,6 +142,7 @@ struct PillTextAttachmentData: Codable {
try container.encode(alpha, forKey: .alpha)
let fontData = try NSKeyedArchiver.archivedData(withRootObject: font, requiringSecureCoding: false)
try container.encode(fontData, forKey: .font)
try container.encode(maxWidth, forKey: .maxWidth)
}
// MARK: - Pill representations