import SwiftUI

struct SplashView: View {
    @State private var isAnimating = false
    @State private var showLogin = false
    @EnvironmentObject private var authState: AuthState
    
    var body: some View {
        NavigationView {
            ZStack {
                // 背景渐变
               LinearGradient(
                    gradient: Gradient(colors: [
                        Theme.Colors.primary,    // Primary color with some transparency
                        Theme.Colors.primaryDark,             // Darker shade of the primary color
                    ]),
                    startPoint: .topLeading,
                    endPoint: .bottomTrailing
                )
                .edgesIgnoringSafeArea(.all)
                VStack(spacing: 50) {
                    Spacer()
                    // 欢迎文字动画
                    Text("Welcome")
                        .font(.system(size: 40, weight: .bold, design: .rounded))
                        .foregroundColor(.primary)
                        .scaleEffect(isAnimating ? 1.1 : 0.9)
                        .opacity(isAnimating ? 1 : 0.3)
                        .animation(
                            .easeInOut(duration: 1.5)
                            .repeatForever(autoreverses: true),
                            value: isAnimating
                        )
                    
                    // 动画图标
                    Image(systemName: "moon.stars.fill")
                        .font(.system(size: 120))
                        .foregroundColor(.accentColor)
                        .rotationEffect(.degrees(isAnimating ? 360 : 0))
                        .scaleEffect(isAnimating ? 1.2 : 0.8)
                        .animation(
                            .easeInOut(duration: 2)
                            .repeatForever(autoreverses: true),
                            value: isAnimating
                        )
                    
                    Spacer()
                    
                    // 圆形按钮
                    Button(action: {
                        withAnimation {
                            showLogin = true
                        }
                    }) {
                        Image(systemName: "arrow.right")
                            .font(.title)
                            .foregroundColor(.white)
                            .frame(width: 140, height: 140)
                            .background(
                                Circle()
                                    .fill(Color.accentColor.opacity(0.7))  // 80% opacity
                                    .shadow(radius: 10)
                            )   
                    }
                    .padding(.bottom, 40)
                    .background(
                        NavigationLink(destination: LoginView().environmentObject(authState), isActive: $showLogin) {
                            EmptyView()
                        }
                        .hidden()
                    )
                    Spacer()
                }
                .padding()
            }
            .onAppear {
                isAnimating = true
            }
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}

// 预览
#if DEBUG
struct SplashView_Previews: PreviewProvider {
    static var previews: some View {
        SplashView()
            .environmentObject(AuthState.shared)
    }
}
#endif