Rocket.Chat.ReactNative/ios/RocketChat Watch App/ViewModels/MessageViewModel.swift

50 lines
1.1 KiB
Swift

import SwiftUI
final class MessageViewModel: ObservableObject {
@Published private(set) var server: Server?
@Published private(set) var message: Message
@Published private(set) var previousMessage: Message?
private let messageFormatter: MessageFormatter
init(message: Message, previousMessage: Message? = nil, server: Server?, lastOpen: Date?) {
self.message = message
self.previousMessage = previousMessage
self.messageFormatter = MessageFormatter(
message: message,
previousMessage: previousMessage,
lastOpen: lastOpen
)
self.server = server
}
var sender: String? {
server?.useRealName == true ? message.user?.name : message.user?.username
}
var date: String? {
messageFormatter.date()
}
var time: String? {
messageFormatter.time()
}
var info: LocalizedStringKey? {
messageFormatter.info()
}
var hasDateSeparator: Bool {
messageFormatter.hasDateSeparator()
}
var hasUnreadSeparator: Bool {
messageFormatter.hasUnreadSeparator()
}
var isHeader: Bool {
messageFormatter.isHeader() && !messageHaveAuthorName(message.t ?? "")
}
}