import wx from "weixin-js-sdk";

export function useWxSDK() {
    /**
     * 初始化设置
     */
    function initConfig(config) {
        return new Promise((resolve) => {
            wx.config({
                debug: config.debug,
                appId: config.appId,
                timestamp: config.timestamp,
                nonceStr: config.nonceStr,
                signature: config.signature,
                jsApiList: [
                    "chooseImage",
                    "uploadImage",
                    "previewImage",
                    "updateTimelineShareData",
                    "updateAppMessageShareData",
                    "chooseWXPay",
                ],
                openTagList: [],
            });
            wx.ready(() => {
                console.log("wx.ready called");
                resolve(true);
            });
        });
    }

    /** 设置微信分享 */
    function setShareInfo(
        shareInfo,
        onSuccess = () => { },
        onCancel = () => { }
    ) {
        console.log("setShareInfo called", shareInfo);
        wx.updateTimelineShareData({
            title: shareInfo.title, // 分享标题
            link: shareInfo.link, // 分享链接，可以不是当前页面，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: shareInfo.imgUrl,
            success: function (e) {
                console.log("分享朋友圈成功", e);
                // 用户确认分享后执行的回调函数
                onSuccess();
            },
            cancel: function (e) {
                console.log("分享朋友圈取消", e);
                onCancel();
                // 用户取消分享后执行的回调函数
            },
        });
        wx.updateAppMessageShareData({
            title: shareInfo.title, // 分享标题
            desc: shareInfo.desc,
            link: shareInfo.link, // 分享链接，可以不是当前页面，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: shareInfo.imgUrl,
            type: "link", // 分享类型,music、video或link，不填默认为link
            success: function (e) {
                // 用户确认分享后执行的回调函数
                console.log("分享成功", e);
                onSuccess();
            },
            cancel: function (e) {
                // 用户取消分享后执行的回调函数
                console.log("分享取消", e);
                onCancel();
            },
        });
    }

    /** 是否是ios微信 */
    function isiOSWechat() {
        return window.__wxjs_is_wkwebview;
    }

    return {
        initConfig,
        setShareInfo,
        isiOSWechat,
    };
}