//
//  ShareCenter.swift
//  ylgamehall
//
//  H5 friendsShare 调用入口的协调中心，按 msext gameController.m:575-597 行为：
//    - sharefriend == "1"（好友/私聊）→ 弹 SharePanel 三选一（微信/QQ/抖音）
//    - sharefriend == "2"（朋友圈）   → 直接 WechatShare（朋友圈 timeline 场景）
//
//  与 Design §8.2 ShareKit 一致：策略模式 + SharePlatform 协议。
//

import Foundation

@MainActor
public enum ShareCenter {

    /// 统一分发入口。由 FriendsShareHandler 在 handler 闭包内调用。
    /// completion 在分享结果回来后触发；UI 期间 await 暂停闭包但 cb 已先返回（msext 行为）。
    public static func dispatch(_ content: ShareContent, completion: @escaping (ShareResult) -> Void) {
        switch content.sharefriend {
        case "1":
            // 好友/私聊 → SharePanel 三选一
            SharePanel.show(content: content, completion: completion)

        case "2":
            // 朋友圈 → 直接 WechatShare（timeline 场景）
            Task { @MainActor in
                let result = await WechatShare.shared.share(content, scene: .timeline)
                completion(result)
            }

        default:
            // 未知 sharefriend：msext 沿用第二条分支兜底（朋友圈微信）
            Task { @MainActor in
                let result = await WechatShare.shared.share(content, scene: .timeline)
                completion(result)
            }
        }
    }
}
