import SwiftUI

struct WorkspacesHeader: View {
    let onBackTap: () -> Void
    let onUploadTap: () -> Void
    let onSearchTap: () -> Void
    let onWorkspacesTap: (() -> Void)?
    let selectedWorkspace: LibraryWorkspace?
    
    init(
        onBackTap: @escaping () -> Void = {},
        onUploadTap: @escaping () -> Void = {},
        onSearchTap: @escaping () -> Void = {},
        onWorkspacesTap: (() -> Void)? = nil,
        selectedWorkspace: LibraryWorkspace? = nil
    ) {
        self.onBackTap = onBackTap
        self.onUploadTap = onUploadTap
        self.onSearchTap = onSearchTap
        self.onWorkspacesTap = onWorkspacesTap
        self.selectedWorkspace = selectedWorkspace
    }
    
    
    var body: some View {
        HStack {
            // Left side - Back button and title
            HStack(spacing: 12) {
                Button(action: onBackTap) {
                    Image("Icon/chevron-left")
                        .resizable()
                        .frame(width: 24, height: 24)
                        .foregroundColor(Constants.Colors.Foreground.primary)
                }
                .buttonStyle(PlainButtonStyle())
                
                if let selectedWorkspace = selectedWorkspace {
                    // Breadcrumb: Workspaces > Workspace Title (matching Figma design)
                    HStack(spacing: 4) {
                        Button(action: onWorkspacesTap ?? {}) {
                            Text("Workspaces")
                                .font(.custom("PP Neue Montreal", size: 16))
                                .fontWeight(.medium)
                                .foregroundColor(Constants.Colors.Foreground.primary)
                                .tracking(0.32)
                        }
                        .buttonStyle(PlainButtonStyle())
                        
                        Image("Icon/chevron-right")
                            .resizable()
                            .frame(width: 8, height: 8)
                            .foregroundColor(Constants.Colors.Foreground.primary)
                        
                        Text(selectedWorkspace.name)
                            .font(.custom("PP Neue Montreal", size: 16))
                            .fontWeight(.regular)
                            .foregroundColor(Constants.Colors.Foreground.inactive)
                            .tracking(0.32)
                    }
                } else {
                    // Default: Just Workspaces
                    Text("Workspaces")
                        .font(.custom("PP Neue Montreal", size: 16))
                        .fontWeight(.medium)
                        .foregroundColor(Constants.Colors.Foreground.primary)
                        .tracking(0.32)
                }
            }
            
            Spacer()
            
            // Right side - Search button (matching Figma design)
            HStack(spacing: 12) {
                Button(action: onSearchTap) {
                    ZStack {
                        RoundedRectangle(cornerRadius: 100)
                            .fill(Constants.Colors.Background.Fog.thin)
                            .frame(width: 40, height: 40)
                        
                        Image("Icon/search")
                            .resizable()
                            .frame(width: 16, height: 16)
                            .foregroundColor(Constants.Colors.Foreground.primary)
                    }
                }
                .buttonStyle(PlainButtonStyle())
            }
        }
        .padding(.horizontal, 16)
        .padding(.vertical, 12)
        .background(
            Constants.Colors.Background.primary
        )
    }
}


#Preview {
    WorkspacesHeader(
        onBackTap: { print("Back tapped") },
        onUploadTap: { print("Upload tapped") },
        onSearchTap: { print("Search tapped") }
    )
    .background(Constants.Colors.Background.primary)
    .preferredColorScheme(.dark)
}
