Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions AsyncImageView/AsyncSwiftUIImageView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@
PlaceholderRenderer.Error == Never,
Renderer.RenderResult == PlaceholderRenderer.RenderResult {
private typealias ImageLoader = AsyncImageLoader<Data, ImageViewData, Renderer, PlaceholderRenderer>
private typealias RequestPipe = (signal: Signal<Data?, Never>, observer: Signal<Data?, Never>.Observer)

private let renderer: Renderer
private let placeholderRenderer: PlaceholderRenderer?
private let uiScheduler: ReactiveSwift.Scheduler
private let requestsSignal: Signal<Data?, Never>
private let requestsObserver: Signal<Data?, Never>.Observer

private let imageCreationScheduler: ReactiveSwift.Scheduler
@State private var requestPipe: RequestPipe = Signal.pipe()

Check failure on line 32 in AsyncImageView/AsyncSwiftUIImageView.swift

View workflow job for this annotation

GitHub Actions / test

generic parameter 'Error' could not be inferred

Check failure on line 32 in AsyncImageView/AsyncSwiftUIImageView.swift

View workflow job for this annotation

GitHub Actions / test

generic parameter 'Value' could not be inferred

Check failure on line 32 in AsyncImageView/AsyncSwiftUIImageView.swift

View workflow job for this annotation

GitHub Actions / test

cannot convert value of type '(output: Signal<Value, Error>, input: Signal<Value, Error>.Observer)' to specified type 'AsyncSwiftUIImageView<Data, ImageViewData, Renderer, PlaceholderRenderer>.RequestPipe' (aka '(signal: Signal<Optional<Data>, Never>, observer: Signal<Optional<Data>, Never>.Observer)')
private var requestsSignal: Signal<Data?, Never> { self.requestPipe.signal }

public init(
renderer: Renderer,
Expand All @@ -42,8 +42,6 @@
self.placeholderRenderer = placeholderRenderer
self.uiScheduler = uiScheduler
self.imageCreationScheduler = imageCreationScheduler

(self.requestsSignal, self.requestsObserver) = Signal.pipe()
}

@State private var renderResult: Renderer.RenderResult?
Expand Down Expand Up @@ -117,8 +115,9 @@
return
}

self.imageCreationScheduler.schedule { [data, size, weak observer = self.requestsObserver] in
observer?.send(value: data?.renderDataWithSize(size))
let renderData = self.data?.renderDataWithSize(self.size)
self.imageCreationScheduler.schedule { [renderData, weak observer = self.requestPipe.observer] in
observer?.send(value: renderData)
}
}
}
Expand Down
Loading