1 // Copyright 2022-present 650 Industries. All rights reserved. 2 3 import ExpoModulesCore 4 import SDWebImage 5 6 public final class ImageModule: Module { 7 lazy var prefetcher = SDWebImagePrefetcher.shared 8 9 public func definition() -> ModuleDefinition { 10 Name("ExpoImage") 11 12 View(ImageView.self) { 13 Events( 14 "onLoadStart", 15 "onProgress", 16 "onError", 17 "onLoad" 18 ) 19 20 Prop("source") { (view, source: ImageSource) in 21 view.source = source 22 } 23 24 Prop("resizeMode") { (view, resizeMode: ImageResizeMode) in 25 view.resizeMode = resizeMode 26 } 27 28 Prop("transition") { (view, transition: ImageTransition?) in 29 view.transition = transition 30 } 31 } 32 33 Function("clearMemoryCache") { 34 SDImageCache.shared.clearMemory() 35 } 36 37 Function("clearDiskCache") { 38 SDImageCache.shared.clearDisk() 39 } 40 } 41 } 42