Show user statuses in mention pills.

This commit is contained in:
Doug
2026-07-10 13:13:50 +01:00
committed by Doug
parent 01b946926f
commit 6199ab596f
7 changed files with 73 additions and 31 deletions
+19 -10
View File
@@ -26,7 +26,7 @@ extension PillContext {
// This is just for previews so the internal data doesn't really matter
let viewModel = PillContext(timelineContext: TimelineViewModel.mock.context, data: PillTextAttachmentData(type: .allUsers, font: .preferredFont(forTextStyle: .body)))
if let delay {
viewModel.viewState = .mention(isOwnMention: false, displayText: "placeholder")
viewModel.viewState = .mention(isOwnMention: false, displayText: "placeholder", statusEmoji: nil)
Task {
try? await Task.sleep(for: delay)
viewModel.viewState = viewState
@@ -39,34 +39,43 @@ extension PillContext {
}
enum PillViewState: Equatable {
case mention(isOwnMention: Bool, displayText: String)
case mention(isOwnMention: Bool, displayText: String, statusEmoji: Character?)
case reference(displayText: String)
case undefined
var isOwnMention: Bool {
switch self {
case .mention(let isOwnMention, _):
return isOwnMention
case .mention(let isOwnMention, _, _):
isOwnMention
default:
return false
false
}
}
var displayText: String {
switch self {
case .mention(_, let displayText), .reference(let displayText):
return displayText
case .mention(_, let displayText, _), .reference(let displayText):
displayText
case .undefined:
return ""
""
}
}
var statusEmoji: Character? {
switch self {
case .mention(_, _, let statusEmoji):
statusEmoji
default:
nil
}
}
var isUndefined: Bool {
switch self {
case .undefined:
return true
true
default:
return false
false
}
}
}