diff --git a/DB/Sources/DB/Content/TimelineItemsInfo.swift b/DB/Sources/DB/Content/TimelineItemsInfo.swift index 833fd6a..d7f08ac 100644 --- a/DB/Sources/DB/Content/TimelineItemsInfo.swift +++ b/DB/Sources/DB/Content/TimelineItemsInfo.swift @@ -40,7 +40,8 @@ extension TimelineItemsInfo { CollectionItem.status( .init(info: $0), .init(showContentToggled: $0.showContentToggled, - showAttachmentsToggled: $0.showAttachmentsToggled), + showAttachmentsToggled: $0.showAttachmentsToggled, + isReplyOutOfContext: ($0.reblogRecord ?? $0.record).inReplyToId != nil), $0.reblogRelationship ?? $0.relationship) } @@ -67,7 +68,8 @@ extension TimelineItemsInfo { .init(info: $0), .init(showContentToggled: $0.showContentToggled, showAttachmentsToggled: $0.showAttachmentsToggled, - isPinned: true), + isPinned: true, + isReplyOutOfContext: ($0.reblogRecord ?? $0.record).inReplyToId != nil), $0.reblogRelationship ?? $0.relationship) }), .init(items: timelineItems)] diff --git a/DB/Sources/DB/Entities/CollectionItem.swift b/DB/Sources/DB/Entities/CollectionItem.swift index f85227a..6dbc44e 100644 --- a/DB/Sources/DB/Entities/CollectionItem.swift +++ b/DB/Sources/DB/Entities/CollectionItem.swift @@ -21,6 +21,7 @@ public extension CollectionItem { public let isContextParent: Bool public let isPinned: Bool public let isReplyInContext: Bool + public let isReplyOutOfContext: Bool public let hasReplyFollowing: Bool init(showContentToggled: Bool, @@ -28,12 +29,14 @@ public extension CollectionItem { isContextParent: Bool = false, isPinned: Bool = false, isReplyInContext: Bool = false, + isReplyOutOfContext: Bool = false, hasReplyFollowing: Bool = false) { self.showContentToggled = showContentToggled self.showAttachmentsToggled = showAttachmentsToggled self.isContextParent = isContextParent self.isPinned = isPinned self.isReplyInContext = isReplyInContext + self.isReplyOutOfContext = isReplyOutOfContext self.hasReplyFollowing = hasReplyFollowing } } diff --git a/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift b/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift index 55d5118..70bf877 100644 --- a/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift +++ b/ViewModels/Sources/ViewModels/View Models/StatusViewModel.swift @@ -77,10 +77,6 @@ public extension StatusViewModel { sensitive || identityContext.identity.preferences.readingExpandMedia == .hideAll } - var isReplyOutOfContext: Bool { - !configuration.isContextParent && statusService.status.displayStatus.inReplyToId != nil - } - var id: Status.Id { statusService.status.displayStatus.id } var accountName: String { "@".appending(statusService.status.displayStatus.account.acct) } diff --git a/Views/UIKit/Content Views/StatusView.swift b/Views/UIKit/Content Views/StatusView.swift index 35e092c..5a4aac6 100644 --- a/Views/UIKit/Content Views/StatusView.swift +++ b/Views/UIKit/Content Views/StatusView.swift @@ -110,7 +110,7 @@ extension StatusView { configuration: configuration) + .compactSpacing - if !configuration.isContextParent && status.inReplyToId != nil { + if configuration.isReplyOutOfContext { height += UIFont.preferredFont(forTextStyle: .callout).lineHeight + .compactSpacing } @@ -573,7 +573,7 @@ private extension StatusView { bodyView.viewModel = viewModel - showThreadIndicator.isHidden = !viewModel.isReplyOutOfContext + showThreadIndicator.isHidden = !viewModel.configuration.isReplyOutOfContext contextParentTimeLabel.text = viewModel.contextParentTime contextParentTimeLabel.accessibilityLabel = viewModel.accessibilityContextParentTime