//
//  InterestTag.swift
//  lichunWebsocket
//
//  Small pill-shaped tags for interests
//

import SwiftUI

struct InterestTag: View {
    let interest: String
    let isShared: Bool
    let icon: String?

    init(interest: String, isShared: Bool = false, icon: String? = nil) {
        self.interest = interest
        self.isShared = isShared
        self.icon = icon
    }

    var body: some View {
        HStack(spacing: AppSpacing.xs) {
            if let icon = icon {
                Image(systemName: icon)
                    .font(.appCaption)
            }

            Text(interest.capitalized)
                .font(.appCaption)
        }
        .padding(.horizontal, AppSpacing.sm)
        .padding(.vertical, AppSpacing.xs)
        .background(
            ZStack {
                if isShared {
                    LinearGradient(
                        colors: [
                            AppColors.primary.opacity(0.2),
                            AppColors.primary.opacity(0.15)
                        ],
                        startPoint: .topLeading,
                        endPoint: .bottomTrailing
                    )
                } else {
                    AppColors.cardBackground
                }
            }
        )
        .foregroundColor(isShared ? AppColors.primary : AppColors.primaryText)
        .cornerRadius(AppSpacing.smallCornerRadius)
        .overlay(
            RoundedRectangle(cornerRadius: AppSpacing.smallCornerRadius)
                .stroke(
                    isShared ? AppColors.primary.opacity(0.4) : AppColors.secondaryText.opacity(0.15),
                    lineWidth: 1
                )
        )
        .shadow(
            color: isShared ? AppColors.primary.opacity(0.15) : Color.clear,
            radius: 4,
            x: 0,
            y: 2
        )
    }
}

// MARK: - Preview
#if DEBUG
struct InterestTag_Previews: PreviewProvider {
    static var previews: some View {
        VStack(spacing: AppSpacing.md) {
            // Regular interests
            HStack(spacing: AppSpacing.sm) {
                InterestTag(interest: "music", icon: "music.note")
                InterestTag(interest: "sports", icon: "sportscourt")
                InterestTag(interest: "reading", icon: "book.fill")
            }

            // Shared interests
            HStack(spacing: AppSpacing.sm) {
                InterestTag(interest: "music", isShared: true, icon: "music.note")
                InterestTag(interest: "travel", isShared: true, icon: "airplane")
                InterestTag(interest: "cooking", isShared: true, icon: "flame.fill")
            }

            // Without icons
            HStack(spacing: AppSpacing.sm) {
                InterestTag(interest: "hiking")
                InterestTag(interest: "photography")
                InterestTag(interest: "yoga")
            }
        }
        .padding()
        .background(AppColors.primaryBackground)
    }
}
#endif
