diff --git a/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift b/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift index ff93030..62cd684 100644 --- a/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift +++ b/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift @@ -6,10 +6,9 @@ import Mastodon import ServiceLayer public final class StatusViewModel: AttachmentsRenderingViewModel, ObservableObject { + public let accountViewModel: AccountViewModel public let content: NSAttributedString public let contentEmojis: [Emoji] - public let displayName: String - public let displayNameEmojis: [Emoji] public let spoilerText: String public let isReblog: Bool public let rebloggedByDisplayName: String @@ -29,12 +28,13 @@ public final class StatusViewModel: AttachmentsRenderingViewModel, ObservableObj self.statusService = statusService self.identityContext = identityContext self.eventsSubject = eventsSubject + accountViewModel = AccountViewModel( + accountService: statusService.navigationService + .accountService(account: statusService.status.displayStatus.account), + identityContext: identityContext, + eventsSubject: eventsSubject) content = statusService.status.displayStatus.content.attributed contentEmojis = statusService.status.displayStatus.emojis - displayName = statusService.status.displayStatus.account.displayName.isEmpty - ? statusService.status.displayStatus.account.username - : statusService.status.displayStatus.account.displayName - displayNameEmojis = statusService.status.displayStatus.account.emojis spoilerText = statusService.status.displayStatus.spoilerText isReblog = statusService.status.reblog != nil rebloggedByDisplayName = statusService.status.account.displayName.isEmpty diff --git a/Views/UIKit/Content Views/StatusView.swift b/Views/UIKit/Content Views/StatusView.swift index 72b11de..3894647 100644 --- a/Views/UIKit/Content Views/StatusView.swift +++ b/Views/UIKit/Content Views/StatusView.swift @@ -341,7 +341,7 @@ private extension StatusView { func applyStatusConfiguration() { let viewModel = statusConfiguration.viewModel let isContextParent = viewModel.configuration.isContextParent - let mutableDisplayName = NSMutableAttributedString(string: viewModel.displayName) + let mutableDisplayName = NSMutableAttributedString(string: viewModel.accountViewModel.displayName) let isAuthenticated = viewModel.identityContext.identity.authenticated && !viewModel.identityContext.identity.pending @@ -350,7 +350,7 @@ private extension StatusView { avatarImageView.kf.setImage(with: viewModel.avatarURL) avatarButton.accessibilityLabel = String.localizedStringWithFormat( NSLocalizedString("account.avatar.accessibility-label-%@", comment: ""), - viewModel.displayName) + viewModel.accountViewModel.displayName) sideStackView.isHidden = isContextParent avatarImageView.removeFromSuperview() @@ -406,7 +406,7 @@ private extension StatusView { infoIcon.isHidden = true } - mutableDisplayName.insert(emojis: viewModel.displayNameEmojis, view: displayNameLabel) + mutableDisplayName.insert(emojis: viewModel.accountViewModel.emojis, view: displayNameLabel) mutableDisplayName.resizeAttachments(toLineHeight: displayNameLabel.font.lineHeight) displayNameLabel.attributedText = mutableDisplayName