diff --git a/Sources/AsyncMultiplexImage/AsyncMultiplexImage.swift b/Sources/AsyncMultiplexImage/AsyncMultiplexImage.swift index 215baba..8dedf5e 100644 --- a/Sources/AsyncMultiplexImage/AsyncMultiplexImage.swift +++ b/Sources/AsyncMultiplexImage/AsyncMultiplexImage.swift @@ -95,7 +95,30 @@ public struct MultiplexImage: Hashable { } public struct AsyncMultiplexImage: View { - + + private let multiplexImage: MultiplexImage + + private let backing: _AsyncMultiplexImage + + public init( + multiplexImage: MultiplexImage, + downloader: Downloader, + @ViewBuilder content: @escaping (AsyncMultiplexImagePhase) -> Content + ) { + + self.multiplexImage = multiplexImage + self.backing = _AsyncMultiplexImage(multiplexImage: multiplexImage, downloader: downloader, content: content) + } + + public var body: some View { + backing + .id(multiplexImage) + } + +} + +private struct _AsyncMultiplexImage: View { + @State private var candidates: [AsyncMultiplexImageCandidate] = [] @State private var internalView: _internal_AsyncMultiplexImage?