import ComponentLibrary
import SwiftUI
import Utilities

public struct SelectedClipTimeView: View {
    public let startTime: Double
    public let endTime: Double
    public let maxDuration: Double
    public let timeSelectedText: String

    public init(
        startTime: Double,
        endTime: Double,
        maxDuration: Double,
        timeSelectedText: String
    ) {
        self.startTime = startTime
        self.endTime = endTime
        self.maxDuration = maxDuration
        self.timeSelectedText = timeSelectedText
    }

    public var body: some View {
        let start = startTime.formatTimeConditional
        let end = endTime.formatTimeConditional
        let selectedDuration = endTime - startTime
        let displayDuration = min(selectedDuration, maxDuration).rounded().formatDurationReadable

        VStack(spacing: 0) {
            Text("\(start) - \(end)")
                .typographyV1(.selectedTimeText)
                .foregroundColor(.SemanticV1.textPrimary)

            Text("\(displayDuration) \(timeSelectedText)")
                .typographyV1(.durationText)
                .foregroundColor(.SemanticV1.textSecondary)
        }
    }
}

private extension TypographyV1 {
    static let selectedTimeText: TypographyV1 = .init(
        name: "Selected Time Text",
        size: 12,
        style: .body,
        weight: .inputSans,
        kerning: 0.01,
        lineHeight: 14
    )

    static let durationText: TypographyV1 = .init(
        name: "Duration Text",
        size: 10,
        style: .footnote,
        weight: .inputSansRegular,
        kerning: 0.2,
        lineHeight: 12
    )
}
