import SwiftUI

struct AvatarBoxView: View {
    @Environment(\.dismiss) private var dismiss
    @EnvironmentObject private var router: Router
    @State private var isAnimating = false
    
    var body: some View {
        ZStack {
            // Background color
            Color.white
                .ignoresSafeArea()
            
            VStack(spacing: 0) {
                // Navigation Bar
                HStack {
                    Button(action: {
                        dismiss()
                    }) {
                        Image(systemName: "chevron.left")
                            .font(.system(size: 17, weight: .medium))
                            .foregroundColor(.black)
                            .padding()
                    }
                    
                    Spacer()
                    
                    Text("动画页面")
                        .font(.headline)
                        .foregroundColor(.black)
                    
                    Spacer()
                    
                    // Invisible spacer to center the title
                    Color.clear
                        .frame(width: 44, height: 44)
                }
                .frame(height: 44)
                .background(Color.white)
                
                Spacer()
                
                // Animated Content
                ZStack {
                    // Pulsing circle animation
                    Circle()
                        .fill(Color.blue.opacity(0.2))
                        .frame(width: 200, height: 200)
                        .scaleEffect(isAnimating ? 1.5 : 1.0)
                        .opacity(isAnimating ? 0.5 : 1.0)
                        .animation(
                            Animation.easeInOut(duration: 1.5)
                                .repeatForever(autoreverses: true),
                            value: isAnimating
                        )
                    
                    // Center icon
                    Image(systemName: "sparkles")
                        .font(.system(size: 60))
                        .foregroundColor(.blue)
                        .rotationEffect(.degrees(isAnimating ? 360 : 0))
                        .animation(
                            Animation.linear(duration: 8)
                                .repeatForever(autoreverses: false),
                            value: isAnimating
                        )
                }
                .frame(maxWidth: .infinity, maxHeight: .infinity)
                
                Spacer()
                
                // Bottom Button
                Button(action: {
                    router.navigate(to: .feedbackView)
                }) {
                    Text("Continue")
                        .font(.headline)
                        .foregroundColor(.themeTextMessageMain)
                        .frame(maxWidth: .infinity)
                        .frame(height: 56)
                        .background(Color.themePrimary)
                        .cornerRadius(25)
                        .padding(.horizontal, 24)
                }
            }
            .frame(maxWidth: .infinity, maxHeight: .infinity)
        }
        .navigationBarBackButtonHidden(true)
        .navigationBarHidden(true)
        .onAppear {
            isAnimating = true
        }
    }
}

// MARK: - Preview
struct AvatarBoxView_Previews: PreviewProvider {
    static var previews: some View {
        NavigationView {
            AvatarBoxView()
                .environmentObject(Router.shared)
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}
