feat(mini-user): configurable WeChat mini share scenes in system settings

Add HQ group for default and per-page share title/desc/image; expose via client-config and wire all mini-user share entry points.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-06 15:45:57 +08:00
parent a2abbb6169
commit 83b1b0e5f6
12 changed files with 526 additions and 106 deletions
@@ -27,9 +27,9 @@ import {
normalizeFulfillmentFlags,
} from '../../lib/product-fulfillment';
import {
DEFAULT_SHARE_DESC,
DEFAULT_SHARE_TITLE,
buildSceneSharePayload,
toWeappShareMessage,
toWeappShareTimeline,
} from '../../lib/wechat-share';
import iconHome from '../../assets/tabbar/home.png';
import { usePageView } from '../../lib/usePageView';
@@ -88,21 +88,20 @@ export default function ProductDetailPage() {
});
const sharePayload = useMemo(
() => ({
title: product?.name || DEFAULT_SHARE_TITLE,
desc: product?.subtitle || DEFAULT_SHARE_DESC,
path: `/pages/product-detail/index?id=${productId}`,
imgUrl: (product ? getProductMainImage(product) : '') || undefined,
}),
() =>
buildSceneSharePayload('productDetail', {
path: `/pages/product-detail/index?id=${productId}`,
dynamicTitle: product?.name,
dynamicDesc: product?.subtitle,
dynamicImageUrl: product ? getProductMainImage(product) : undefined,
}),
[product, productId],
);
useShareAppMessage(() => toWeappShareMessage(sharePayload));
useShareTimeline(() => ({
title: sharePayload.title || DEFAULT_SHARE_TITLE,
query: productId ? `id=${productId}` : '',
imageUrl: sharePayload.imgUrl,
}));
useShareTimeline(() =>
toWeappShareTimeline(sharePayload, productId ? `id=${productId}` : ''),
);
function goBack() {
const pages = Taro.getCurrentPages();