import AVFoundation
import ComponentLibrary
import CoreMedia.CMTime
import SwiftUI

struct SavedAssetRenderCard: View {
    let cardSize: CGSize
    let videoURL: URL
    let isVisualInFocus: Bool
    let isPlaying: Bool
    let overrideTime: CMTime?
    let videoGravity: AVLayerVideoGravity = .resizeAspectFill

    var body: some View {
        Color.clear
            .background {
                LoopingVideoPlayer(
                    playableUrl: videoURL,
                    restartBeforePlaying: false,
                    isPlaying: Binding(
                        get: { isPlaying },
                        set: { _ in }
                    ),
                    overrideTime: overrideTime,
                    videoGravity: videoGravity,
                    fallbackView: {
                        Color.black
                    }
                )
            }
            .frame(width: cardSize.width, height: cardSize.height)
            .opacity(isVisualInFocus ? 1.0 : 0.5)
            .animation(.easeInOut(duration: 0.3), value: isVisualInFocus)
    }
}
