diff --git a/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift b/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift index 7ccf401c4..aec906743 100644 --- a/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift +++ b/ElementX/Sources/Other/Pills/PillAttachmentViewProvider.swift @@ -42,20 +42,17 @@ final class PillAttachmentViewProvider: NSTextAttachmentViewProvider, NSSecureCo } let context: PillContext - let mediaProvider: MediaProviderProtocol? if ProcessInfo.isXcodePreview || ProcessInfo.isRunningTests { // The mock viewModel simulates the loading logic for testing purposes context = PillContext.mock(viewState: .mention(isOwnMention: false, displayText: "Alice"), delay: .seconds(2)) - mediaProvider = MediaProviderMock(configuration: .init()) } else if let timelineContext = delegate?.timelineContext { context = PillContext(timelineContext: timelineContext, data: pillData) - mediaProvider = timelineContext.mediaProvider } else { MXLog.failure("Missing room context") return } - let view = PillView(mediaProvider: mediaProvider, context: context) { [weak self] in + let view = PillView(context: context) { [weak self] in self?.delegate?.invalidateTextAttachmentsDisplay() } let controller = UIHostingController(rootView: view) diff --git a/ElementX/Sources/Other/Pills/PillView.swift b/ElementX/Sources/Other/Pills/PillView.swift index 995f46821..3c0dac2e6 100644 --- a/ElementX/Sources/Other/Pills/PillView.swift +++ b/ElementX/Sources/Other/Pills/PillView.swift @@ -9,7 +9,6 @@ import Compound import SwiftUI struct PillView: View { - let mediaProvider: MediaProviderProtocol? @ObservedObject var context: PillContext /// callback triggerd by changes in the display text let didChangeText: () -> Void @@ -46,44 +45,36 @@ struct PillView_Previews: PreviewProvider, TestablePreview { static let mockMediaProvider = MediaProviderMock(configuration: .init()) static var previews: some View { - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .mention(isOwnMention: false, + PillView(context: PillContext.mock(viewState: .mention(isOwnMention: false, displayText: PillUtilities.userPillDisplayText(username: "User", userID: "@alice:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("User") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .mention(isOwnMention: false, + PillView(context: PillContext.mock(viewState: .mention(isOwnMention: false, displayText: PillUtilities.userPillDisplayText(username: "Alice but with a very long name", userID: "@alice:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("User with a long name") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .mention(isOwnMention: false, + PillView(context: PillContext.mock(viewState: .mention(isOwnMention: false, displayText: PillUtilities.userPillDisplayText(username: nil, userID: "@alice:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("User with missing name") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .mention(isOwnMention: true, + PillView(context: PillContext.mock(viewState: .mention(isOwnMention: true, displayText: PillUtilities.userPillDisplayText(username: "Alice", userID: "@alice:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("Own user") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .reference(displayText: PillUtilities.roomPillDisplayText(roomName: "Room", + PillView(context: PillContext.mock(viewState: .reference(displayText: PillUtilities.roomPillDisplayText(roomName: "Room", rawRoomText: "#room:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("Room") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .reference(displayText: PillUtilities.roomPillDisplayText(roomName: nil, + PillView(context: PillContext.mock(viewState: .reference(displayText: PillUtilities.roomPillDisplayText(roomName: nil, rawRoomText: "#room:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("Room without name") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .reference(displayText: PillUtilities.eventPillDisplayText(roomName: "Room", rawRoomText: "#room:matrix.org")))) { } + PillView(context: PillContext.mock(viewState: .reference(displayText: PillUtilities.eventPillDisplayText(roomName: "Room", rawRoomText: "#room:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("Message link") - PillView(mediaProvider: mockMediaProvider, - context: PillContext.mock(viewState: .reference(displayText: PillUtilities.eventPillDisplayText(roomName: nil, rawRoomText: "#room:matrix.org")))) { } + PillView(context: PillContext.mock(viewState: .reference(displayText: PillUtilities.eventPillDisplayText(roomName: nil, rawRoomText: "#room:matrix.org")))) { } .frame(maxWidth: PillUtilities.mockMaxWidth) .previewDisplayName("Message link without room name") } diff --git a/ElementX/Sources/Other/Pills/PillViewOnBubblePreviews.swift b/ElementX/Sources/Other/Pills/PillViewOnBubblePreviews.swift index 695c78a76..69093edf5 100644 --- a/ElementX/Sources/Other/Pills/PillViewOnBubblePreviews.swift +++ b/ElementX/Sources/Other/Pills/PillViewOnBubblePreviews.swift @@ -10,7 +10,6 @@ import SwiftUI /// A very simple mock layout of some pills within messages bubbles and the composer. struct PillViewOnBubble_Previews: PreviewProvider, TestablePreview { - static let mockMediaProvider = MediaProviderMock(configuration: .init()) static let mentionContext = PillContext.mock(viewState: makeViewState(isOwnMention: false)) static let ownMentionContext = PillContext.mock(viewState: makeViewState(isOwnMention: true)) @@ -40,8 +39,8 @@ struct PillViewOnBubble_Previews: PreviewProvider, TestablePreview { static var mockMessage: some View { HStack(spacing: 4) { Text("Hello").foregroundStyle(.compound.textPrimary) - PillView(mediaProvider: mockMediaProvider, context: mentionContext) { } - PillView(mediaProvider: mockMediaProvider, context: ownMentionContext) { } + PillView(context: mentionContext) { } + PillView(context: ownMentionContext) { } } }