Skip to content

Commit fd486dd

Browse files
committed
Remove NetworkImage, add Nuke to display images
1 parent 2443543 commit fd486dd

File tree

76 files changed

+26
-2489
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+26
-2489
lines changed

Package.resolved

Lines changed: 4 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,17 @@ let package = Package(
1717
)
1818
],
1919
dependencies: [
20-
.package(url: "https://github.com/gonzalezreal/NetworkImage", from: "6.0.0"),
21-
.package(url: "https://github.com/pointfreeco/swift-snapshot-testing", from: "1.10.0"),
20+
.package(url: "https://github.com/kean/Nuke", from: "12.0.0")
2221
],
2322
targets: [
2423
.target(name: "cmark-gfm"),
2524
.target(
2625
name: "MarkdownUI",
2726
dependencies: [
2827
"cmark-gfm",
29-
.product(name: "NetworkImage", package: "NetworkImage"),
28+
.product(name: "Nuke", package: "Nuke"),
29+
.product(name: "NukeUI", package: "Nuke"),
3030
]
31-
),
32-
.testTarget(
33-
name: "MarkdownUITests",
34-
dependencies: [
35-
"MarkdownUI",
36-
.product(name: "SnapshotTesting", package: "swift-snapshot-testing"),
37-
],
38-
exclude: ["__Snapshots__"]
39-
),
31+
)
4032
]
4133
)

Sources/MarkdownUI/Extensibility/DefaultImageProvider.swift

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1-
import NetworkImage
1+
import NukeUI
22
import SwiftUI
33

44
/// The default image provider, which loads images from the network.
55
public struct DefaultImageProvider: ImageProvider {
6-
public func makeImage(url: URL?) -> some View {
7-
NetworkImage(url: url) { state in
8-
switch state {
9-
case .empty, .failure:
10-
Color.clear
11-
.frame(width: 0, height: 0)
12-
case .success(let image, let idealSize):
13-
ResizeToFit(idealSize: idealSize) {
14-
image.resizable()
6+
@MainActor public func makeImage(url: URL?) -> some View {
7+
LazyImage(url: url) { state in
8+
if let image = state.image {
9+
image
10+
.resizable()
11+
.aspectRatio(contentMode: .fit)
12+
} else {
13+
Color
14+
.clear
15+
.frame(width: 0, height: 0)
16+
}
1517
}
16-
}
1718
}
18-
}
1919
}
2020

21+
2122
extension ImageProvider where Self == DefaultImageProvider {
2223
/// The default image provider, which loads images from the network.
2324
///

Sources/MarkdownUI/Extensibility/DefaultInlineImageProvider.swift

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
import NetworkImage
1+
import Nuke
22
import SwiftUI
33

44
/// The default inline image provider, which loads images from the network.
55
public struct DefaultInlineImageProvider: InlineImageProvider {
6-
public func image(with url: URL, label: String) async throws -> Image {
7-
try await Image(
8-
DefaultNetworkImageLoader.shared.image(from: url),
9-
scale: 1,
10-
label: Text(label)
11-
)
12-
}
6+
@MainActor public func image(with url: URL, label: String) async throws -> Image {
7+
guard let cgImage = try await ImagePipeline.shared.image(for: url).cgImage else { return .init(uiImage: .init()) }
8+
return Image(cgImage, scale: 1, label: Text(label))
9+
}
1310
}
1411

1512
extension InlineImageProvider where Self == DefaultInlineImageProvider {

Tests/MarkdownUITests/FontPropertiesTests.swift

Lines changed: 0 additions & 91 deletions
This file was deleted.

Tests/MarkdownUITests/HTMLTagTests.swift

Lines changed: 0 additions & 40 deletions
This file was deleted.

Tests/MarkdownUITests/InlineContentBuilderTests.swift

Lines changed: 0 additions & 148 deletions
This file was deleted.

0 commit comments

Comments
 (0)