import Adamantium
import SwiftUI

public struct WarpedGridViewComponent: View {
    private let id: String
    private let timeScale: Float
    private let colorA: SIMD3<Float>
    private let colorB: SIMD3<Float>
    private let vortexRadius: Float
    private let vortexStrength: Float
    private let frameRate: Int
    private let isPaused: Bool

    public init(
        id: String,
        timeScale: Float = 1.0,
        colorA: SIMD3<Float> = SIMD3<Float>(1.0, 0.3, 0.5),
        colorB: SIMD3<Float> = SIMD3<Float>(1.0, 0.45, 0.4),
        vortexRadius: Float = 4.0,
        vortexStrength: Float = -0.4,
        frameRate: Int = 60,
        isPaused: Bool = false
    ) {
        self.id = id
        self.timeScale = timeScale
        self.colorA = colorA
        self.colorB = colorB
        self.vortexRadius = vortexRadius
        self.vortexStrength = vortexStrength
        self.frameRate = frameRate
        self.isPaused = isPaused
    }

    public var body: some View {
        #if targetEnvironment(simulator)
            Color.black
        #else
            WarpedGridView(
                id: id,
                timeScale: timeScale,
                colorA: colorA,
                colorB: colorB,
                vortexRadius: vortexRadius,
                vortexStrength: vortexStrength,
                frameRate: frameRate,
                isPaused: isPaused
            )
        #endif
    }
}
