metatext-app-ios-iphone-ipad/ViewModels/Sources/ViewModels/View Models/ConversationViewModel.swift

40 lines
1.3 KiB
Swift
Raw Normal View History

2020-10-29 07:03:45 +01:00
// Copyright © 2020 Metabolist. All rights reserved.
import Combine
import Foundation
import Mastodon
import ServiceLayer
2021-02-04 23:24:27 +01:00
public final class ConversationViewModel: ObservableObject {
2020-10-29 07:03:45 +01:00
public let accountViewModels: [AccountViewModel]
public let statusViewModel: StatusViewModel?
public let identityContext: IdentityContext
2020-10-29 07:03:45 +01:00
private let conversationService: ConversationService
2021-01-26 01:06:35 +01:00
init(conversationService: ConversationService, identityContext: IdentityContext) {
2020-10-29 07:03:45 +01:00
accountViewModels = conversationService.conversation.accounts.map {
AccountViewModel(
accountService: conversationService.navigationService.accountService(account: $0),
2021-02-04 23:24:27 +01:00
identityContext: identityContext,
eventsSubject: .init())
2020-10-29 07:03:45 +01:00
}
if let status = conversationService.conversation.lastStatus {
statusViewModel = StatusViewModel(
statusService: conversationService.navigationService.statusService(status: status),
2021-02-04 23:24:27 +01:00
identityContext: identityContext,
eventsSubject: .init())
2020-10-29 07:03:45 +01:00
} else {
statusViewModel = nil
}
self.conversationService = conversationService
2021-01-26 01:06:35 +01:00
self.identityContext = identityContext
2020-10-29 07:03:45 +01:00
}
}
2021-02-20 02:42:45 +01:00
public extension ConversationViewModel {
var isUnread: Bool { conversationService.conversation.unread }
}