import type { WechatShareData } from '@dukang/weixin-sdk'; import { getWechatShareLink, toAppPath } from '@dukang/weixin-sdk'; import { isWechatEnv, weixinSdk } from './weixin'; export const DEFAULT_SHARE_TITLE = '你吃饭,杜康买单'; export const DEFAULT_SHARE_DESC = '杜康好客 · 买酒享权益,全城门店可用'; export const WECHAT_SHARE_HINT = '请点击右上角 ··· 分享给好友'; export function getDefaultShareImageUrl(): string { if (typeof window === 'undefined') return toAppPath('/logo.png'); return new URL(toAppPath('/logo.png'), window.location.origin).href; } export function buildDefaultShareData( overrides?: Partial, ): WechatShareData { return { title: overrides?.title ?? DEFAULT_SHARE_TITLE, desc: overrides?.desc ?? DEFAULT_SHARE_DESC, link: overrides?.link ?? getWechatShareLink(), imgUrl: overrides?.imgUrl ?? getDefaultShareImageUrl(), }; } export async function applyDefaultWechatShare( overrides?: Partial, ): Promise { if (!isWechatEnv()) return; await weixinSdk.setShare(buildDefaultShareData(overrides)); } export function handleShareButtonClick(onHint: (message: string) => void): void { const showHint = (message: string) => { onHint(message); if (message) { window.setTimeout(() => onHint(''), 2500); } }; if (!isWechatEnv()) { showHint('请在微信内打开后分享'); return; } void applyDefaultWechatShare() .then(() => showHint(WECHAT_SHARE_HINT)) .catch(() => showHint('分享配置失败,请刷新页面后重试')); }