Skip to content

Commit 0b1ca98

Browse files
author
Christian Elies
committed
refactor(): created remote image service protocol
1 parent ac4207e commit 0b1ca98

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//
2+
// RemoteImageServiceProtocol.swift
3+
// RemoteImage
4+
//
5+
// Created by Christian Elies on 15.12.19.
6+
//
7+
8+
import Combine
9+
10+
protocol RemoteImageServiceProtocol where Self: ObservableObject {
11+
static var cache: RemoteImageCache { get set }
12+
static var cacheKeyProvider: RemoteImageCacheKeyProvider { get set }
13+
14+
var state: RemoteImageState { get set }
15+
func fetchImage(ofType type: RemoteImageType)
16+
}

Sources/RemoteImage/public/Services/RemoteImageService.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import Combine
1010
import Foundation
1111

12-
public final class RemoteImageService: NSObject, ObservableObject {
13-
public typealias RemoteImageCacheKeyProvider = (RemoteImageType) -> AnyObject
12+
public typealias RemoteImageCacheKeyProvider = (RemoteImageType) -> AnyObject
1413

14+
public final class RemoteImageService: NSObject, ObservableObject, RemoteImageServiceProtocol {
1515
private let dependencies: RemoteImageServiceDependenciesProtocol
1616
private var cancellable: AnyCancellable?
1717

Sources/RemoteImage/public/Views/RemoteImage.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ public struct RemoteImage<ErrorView: View, ImageView: View, LoadingView: View>:
1414
private let errorView: (Error) -> ErrorView
1515
private let imageView: (Image) -> ImageView
1616
private let loadingView: () -> LoadingView
17-
17+
1818
@ObservedObject private var service = RemoteImageServiceFactory.makeRemoteImageService()
19-
19+
2020
public var body: AnyView {
2121
switch service.state {
2222
case .error(let error):
@@ -46,7 +46,7 @@ public struct RemoteImage<ErrorView: View, ImageView: View, LoadingView: View>:
4646
)
4747
}
4848
}
49-
49+
5050
public init(type: RemoteImageType, @ViewBuilder errorView: @escaping (Error) -> ErrorView, @ViewBuilder imageView: @escaping (Image) -> ImageView, @ViewBuilder loadingView: @escaping () -> LoadingView) {
5151
self.type = type
5252
self.errorView = errorView

0 commit comments

Comments
 (0)