//
//  CelebratoryPopup.swift
//  lichunWebsocket
//
//  Celebratory modal for successful purchases
//

import SwiftUI
import SDWebImageSwiftUI

struct CelebratoryPopup: View {
    var itemName: String
    var imageURL: URL

    var body: some View {
        VStack(spacing: AppSpacing.lg) {
            Text("Congratulations!")
                .font(.appLargeTitle)
                .foregroundColor(AppColors.primaryText)

            WebImage(url: imageURL)
                .resizable()
                .scaledToFit()
                .frame(width: 200, height: 200)

            Text("You are now the proud owner of \(itemName).")
                .font(.appHeadline)
                .multilineTextAlignment(.center)
                .foregroundColor(AppColors.primaryText)
        }
        .padding(AppSpacing.lg)
        .background(AppColors.surfaceElevated)
        .cornerRadius(AppSpacing.largeCornerRadius)
        .shadow(radius: 20)
    }
}

// MARK: - Scale Transition Extension
extension AnyTransition {
    static func scale(scale: CGFloat, anchor: UnitPoint) -> AnyTransition {
        .modifier(
            active: ScaleModifier(scale: scale, anchor: anchor),
            identity: ScaleModifier(scale: 1.0, anchor: anchor)
        )
    }
}

struct ScaleModifier: ViewModifier {
    let scale: CGFloat
    let anchor: UnitPoint

    func body(content: Content) -> some View {
        content.scaleEffect(scale, anchor: anchor)
    }
}

// MARK: - Preview
#if DEBUG
struct CelebratoryPopup_Previews: PreviewProvider {
    static var previews: some View {
        ZStack {
            Color.black.opacity(0.5)
                .edgesIgnoringSafeArea(.all)

            CelebratoryPopup(
                itemName: "Golden Watch",
                imageURL: URL(string: "https://example.com/watch.svg")!
            )
        }
    }
}
#endif
