IceCubesApp/Packages/MediaUI/Sources/MediaUI/MediaUITransferableImage.swift
Thomas Ricouard 3e3c69c41c format
2023-11-01 18:58:44 +01:00

21 lines
521 B
Swift

import CoreTransferable
import SwiftUI
import UIKit
struct MediaUIImageTransferable: Codable, Transferable {
let url: URL
func fetchAsImage() async -> Image {
let data = try? await URLSession.shared.data(from: url).0
guard let data, let uiimage = UIImage(data: data) else {
return Image(systemName: "photo")
}
return Image(uiImage: uiimage)
}
static var transferRepresentation: some TransferRepresentation {
ProxyRepresentation { media in
await media.fetchAsImage()
}
}
}