@@ -286,7 +286,10 @@ public struct AnimatedImage : PlatformViewRepresentable {
286286 return view
287287 }
288288
289- private func updateViewForName( _ name: String , view: AnimatedImageViewWrapper , context: Context ) {
289+ private func updateViewForName( _ name: String ? , view: AnimatedImageViewWrapper , context: Context ) {
290+ guard let name = name, name != context. coordinator. imageLoading. imageName else {
291+ return
292+ }
290293 var image : PlatformImage ?
291294 #if os(macOS)
292295 image = SDAnimatedImage ( named: name, in: imageModel. bundle)
@@ -306,7 +309,10 @@ public struct AnimatedImage : PlatformViewRepresentable {
306309 view. wrapped. image = image
307310 }
308311
309- private func updateViewForData( _ data: Data , view: AnimatedImageViewWrapper , context: Context ) {
312+ private func updateViewForData( _ data: Data ? , view: AnimatedImageViewWrapper , context: Context ) {
313+ guard let data = data, data != context. coordinator. imageLoading. imageData else {
314+ return
315+ }
310316 var image : PlatformImage ? = SDAnimatedImage ( data: data, scale: imageModel. scale)
311317 if image == nil {
312318 // For static image, use UIImage as defaults
@@ -344,14 +350,15 @@ public struct AnimatedImage : PlatformViewRepresentable {
344350 // Refresh image, imageModel is the Source of Truth, switch the type
345351 // Although we have Source of Truth, we can check the previous value, to avoid re-generate SDAnimatedImage, which is performance-cost.
346352 let kind = imageModel. kind
347- if kind == . name, let name = imageModel. name, name != context. coordinator. imageLoading. imageName {
348- updateViewForName ( name, view: view, context: context)
349- } else if kind == . data, let data = imageModel. data, data != context. coordinator. imageLoading. imageData {
350- updateViewForData ( data, view: view, context: context)
351- } else if kind == . url {
353+ switch kind {
354+ case . name:
355+ updateViewForName ( imageModel. name, view: view, context: context)
356+ case . data:
357+ updateViewForData ( imageModel. data, view: view, context: context)
358+ case . url:
352359 updateViewForURL ( imageModel. url, view: view, context: context)
353- } else {
354- fatalError ( " Unsupported model kind: \( kind ) " )
360+ case . unknown :
361+ break // impossible
355362 }
356363
357364 #if os(macOS)
0 commit comments