import SwiftUI
import WebKit

public struct GifWebView: UIViewRepresentable {
    private let url: URL

    public init(url: URL) {
        self.url = url
    }

    public func makeUIView(context _: Context) -> WKWebView {
        let webView = WKWebView()

        let request = URLRequest(url: url, cachePolicy: .returnCacheDataElseLoad)
        webView.load(request)

        webView.scrollView.isScrollEnabled = false
        webView.isOpaque = false
        webView.backgroundColor = .clear
        webView.scrollView.backgroundColor = .clear

        return webView
    }

    public func updateUIView(_ uiView: WKWebView, context _: Context) {
        if uiView.url != url {
            uiView.reload()
        }
    }
}

#if DEBUG
    struct RemoteGifView_Previews: PreviewProvider {
        static var previews: some View {
            GifWebView(url: URL(string: "https://www.easygifanimator.net/images/samples/eglite.gif")!)
                .frame(width: 200, height: 120)
        }
    }
#endif
