2020-09-23 03:00:56 +02:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import Combine
|
|
|
|
import Foundation
|
|
|
|
import Mastodon
|
|
|
|
import ServiceLayer
|
|
|
|
|
|
|
|
public class AccountViewModel: ObservableObject {
|
2020-09-25 07:39:06 +02:00
|
|
|
public let events: AnyPublisher<AnyPublisher<CollectionItemEvent, Error>, Never>
|
|
|
|
|
2020-09-23 03:00:56 +02:00
|
|
|
private let accountService: AccountService
|
2020-09-25 07:39:06 +02:00
|
|
|
private let eventsSubject = PassthroughSubject<AnyPublisher<CollectionItemEvent, Error>, Never>()
|
2020-09-23 03:00:56 +02:00
|
|
|
|
|
|
|
init(accountService: AccountService) {
|
|
|
|
self.accountService = accountService
|
2020-09-25 07:39:06 +02:00
|
|
|
events = eventsSubject.eraseToAnyPublisher()
|
2020-09-23 03:00:56 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public extension AccountViewModel {
|
2020-09-26 02:52:59 +02:00
|
|
|
var avatarURL: URL { accountService.account.avatar }
|
2020-09-23 03:00:56 +02:00
|
|
|
|
2020-09-26 02:52:59 +02:00
|
|
|
var displayName: String { accountService.account.displayName }
|
|
|
|
|
|
|
|
var accountName: String { "@".appending(accountService.account.acct) }
|
|
|
|
|
|
|
|
var note: NSAttributedString { accountService.account.note.attributed }
|
|
|
|
|
|
|
|
var emoji: [Emoji] { accountService.account.emojis }
|
2020-09-23 03:00:56 +02:00
|
|
|
}
|