mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Show user statuses in mention pills.
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user