//
//  WildPhotographerReportSharedViews.swift
//  suixinkan
//
//  Created by Codex on 2026/7/1.
//

import SwiftUI

/// 举报模块通用区块标题。
struct WildReportSectionHeader: View {
    let icon: String
    let title: String
    let subtitle: String

    var body: some View {
        HStack(spacing: 12) {
            Image(systemName: icon)
                .font(.system(size: 22, weight: .semibold))
                .foregroundStyle(AppDesign.primary)
                .frame(width: 46, height: 46)
                .background(AppDesign.primarySoft, in: RoundedRectangle(cornerRadius: 12))

            VStack(alignment: .leading, spacing: 4) {
                Text(title)
                    .font(.system(size: 20, weight: .bold))
                    .foregroundStyle(AppDesign.textPrimary)
                    .lineLimit(1)
                    .minimumScaleFactor(0.78)
                Text(subtitle)
                    .font(.system(size: 13))
                    .foregroundStyle(AppDesign.textSecondary)
                    .lineLimit(2)
            }
            Spacer()
        }
        .padding(16)
        .background(.white, in: RoundedRectangle(cornerRadius: 14))
    }
}

/// 举报首页主视觉插画。
struct WildReportHeroIllustration: View {
    var body: some View {
        ZStack {
            Circle()
                .fill(AppDesign.primary.opacity(0.10))
                .frame(width: 104, height: 104)

            RoundedRectangle(cornerRadius: 26)
                .fill(.white.opacity(0.88))
                .frame(width: 78, height: 78)
                .shadow(color: Color(hex: 0x0F172A).opacity(0.06), radius: 10, y: 4)

            Image(systemName: "exclamationmark.shield.fill")
                .font(.system(size: 42, weight: .semibold))
                .foregroundStyle(AppDesign.primary)

            Image(systemName: "camera.fill")
                .font(.system(size: 18, weight: .semibold))
                .foregroundStyle(Color(hex: 0x1D4D89))
                .frame(width: 34, height: 34)
                .background(Color(hex: 0xEAF3FF), in: Circle())
                .offset(x: 36, y: 36)
        }
    }
}

#if DEBUG
/// Debug 工具栏，用于切换页面加载/空态/异常态。
struct WildReportStateToolbar: ToolbarContent {
    @Binding var selection: WildReportPageState

    var body: some ToolbarContent {
        ToolbarItem(placement: .navigationBarTrailing) {
            Menu {
                ForEach(WildReportPageState.allCases) { state in
                    Button(state.title) {
                        selection = state
                    }
                }
            } label: {
                Image(systemName: "ellipsis.circle")
                    .font(.system(size: 18, weight: .semibold))
                    .foregroundStyle(AppDesign.primary)
            }
            .accessibilityLabel("切换页面状态")
        }
    }
}
#endif
