2
2
mirror of https://github.com/mastodon/mastodon-ios synced 2025-04-11 22:58:02 +02:00

Only label notifications as “reply” if the post they are replying to was authored by the current user

Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
This commit is contained in:
shannon 2025-02-19 08:21:53 -05:00
parent 0b5528d1c5
commit 0e59d03d87
2 changed files with 6 additions and 4 deletions

View File

@ -1013,7 +1013,7 @@ extension Mastodon.Entity.Status {
public struct ViewModel {
public let content: AttributedString?
public let visibility: Mastodon.Entity.Status.Visibility?
public let isReply: Bool
public let isReplyToMe: Bool
public let isPinned: Bool
public let accountDisplayName: String?
public let accountFullName: String?
@ -1026,7 +1026,7 @@ extension Mastodon.Entity.Status {
}
public func viewModel(
myDomain: String, navigateToStatus: @escaping () -> Void
myAccountID: String, myDomain: String, navigateToStatus: @escaping () -> Void
) -> ViewModel {
let displayableContent: AttributedString
if let content {
@ -1055,7 +1055,7 @@ extension Mastodon.Entity.Status {
return ViewModel(
content: displayableContent, visibility: visibility,
isReply: inReplyToID != nil,
isReplyToMe: inReplyToAccountID == myAccountID,
isPinned: false,
accountDisplayName: account.displayName,
accountFullName: accountFullName,

View File

@ -94,7 +94,7 @@ class NotificationRowViewModel: ObservableObject {
if let statusViewModel =
notificationInfo.statusViewModel
{
actionSuperheader = NotificationRowViewModel.actionSuperheader(notificationInfo.groupedNotificationType, isReply: statusViewModel.isReply, isPrivateStatus: statusViewModel.visibility == .direct)
actionSuperheader = NotificationRowViewModel.actionSuperheader(notificationInfo.groupedNotificationType, isReply: statusViewModel.isReplyToMe, isPrivateStatus: statusViewModel.visibility == .direct)
headerTextComponents = [
.text(
notificationInfo.groupedNotificationType
@ -498,6 +498,7 @@ extension NotificationRowViewModel {
groupedNotificationType: type,
sourceAccounts: sourceAccounts,
statusViewModel: status?.viewModel(
myAccountID: myAccountID,
myDomain: myAccountDomain,
navigateToStatus: {
Task {
@ -554,6 +555,7 @@ extension NotificationRowViewModel {
accounts: [notification.account], totalActorCount: 1)
let statusViewModel = notification.status?.viewModel(
myAccountID: myAccountID,
myDomain: myAccountDomain,
navigateToStatus: {
Task {