import ComponentLibrary
import Foundation
import Localization
import SwiftUI

struct AudioCreateStyleButton: View {
    public enum Style: String, CaseIterable, Equatable {
        case cover
        case extend

        var description: String {
            switch self {
            case .cover: L10n.FeatureCreateClip.coverDescription
            case .extend: L10n.FeatureCreateClip.extendDescription
            }
        }
    }

    let style: Style
    let isSelected: Bool
    let action: () -> Void

    var body: some View {
        Button {
            action()
        } label: {
            HStack {
                Text(style.description)
                    .foregroundStyle(Color.SemanticV1.iconPrimary)
                    .typographyV1(.body1)

                Spacer()

                Image.Icon.chevronDown
                    .foregroundStyle(Color.SemanticV1.iconPrimary)
                    .rotationEffect(.degrees(isSelected ? -180 : 0))
            }
            .animation(.spring(), value: isSelected)
            .padding(.horizontal, 12)
            .padding(.vertical, 16)
            .background(
                UnevenRoundedRectangle(cornerRadii: .init(bottomLeading: 8, bottomTrailing: 8))
                    .fill(Color.SemanticV1.backgroundSecondary)
            )
        }
        .buttonStyle(ScaleButtonStyle(scaleAmount: 0.98))
    }
}
