fix: debug 分享卡片生成问题
This commit is contained in:
@@ -28,6 +28,17 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
||||
const [shareImageUrl, setShareImageUrl] = useState("");
|
||||
const { fetchUserInfo } = useUserActions();
|
||||
|
||||
async function ensureUserInfo() {
|
||||
if (userInfo?.avatar_url && userInfo?.nickname) {
|
||||
return userInfo;
|
||||
}
|
||||
const fetchedUserInfo = await fetchUserInfo();
|
||||
return {
|
||||
avatar_url: fetchedUserInfo?.avatar_url || userInfo?.avatar_url || "",
|
||||
nickname: fetchedUserInfo?.nickname || userInfo?.nickname || "",
|
||||
};
|
||||
}
|
||||
|
||||
const publishFlag = from === "publish";
|
||||
// const posterRef = useRef();
|
||||
const { max_participants, participant_count } = detail || {};
|
||||
@@ -86,25 +97,34 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
||||
const endTime = dayjs(end_time);
|
||||
const dayofWeek = DayOfWeekMap.get(startTime.day());
|
||||
const gameLength = `${endTime.diff(startTime, "hour")}小时`;
|
||||
console.log(userInfo, "userInfo");
|
||||
const url = await generateShareImage({
|
||||
userAvatar: userInfo.avatar_url,
|
||||
userNickname: userInfo.nickname,
|
||||
gameType: play_type,
|
||||
skillLevel: `NTRP ${genNTRPRequirementText(
|
||||
skill_level_min,
|
||||
skill_level_max,
|
||||
)}`,
|
||||
gameDate: `${startTime.format("M月D日")} (${dayofWeek})`,
|
||||
gameTime: `${startTime.format("ah")}点 ${gameLength}`,
|
||||
venueName: location_name,
|
||||
venueImages: image_list ? image_list : [],
|
||||
});
|
||||
return url;
|
||||
const currentUserInfo = await ensureUserInfo();
|
||||
try {
|
||||
const url = await generateShareImage({
|
||||
userAvatar: currentUserInfo.avatar_url,
|
||||
userNickname: currentUserInfo.nickname,
|
||||
gameType: play_type,
|
||||
skillLevel: `NTRP ${genNTRPRequirementText(
|
||||
skill_level_min,
|
||||
skill_level_max,
|
||||
)}`,
|
||||
gameDate: `${startTime.format("M月D日")} (${dayofWeek})`,
|
||||
gameTime: `${startTime.format("ah")}点 ${gameLength}`,
|
||||
venueName: location_name,
|
||||
venueImages: image_list ? image_list : [],
|
||||
});
|
||||
if (!url) {
|
||||
throw new Error("生成分享图片失败,URL 为空");
|
||||
}
|
||||
return url;
|
||||
} catch (e) {
|
||||
console.error("生成分享卡片失败", e);
|
||||
return `${OSS_BASE}/system/game_dou_di_tu.png`;
|
||||
}
|
||||
}
|
||||
|
||||
useShareAppMessage(async (res) => {
|
||||
await changeMessageType();
|
||||
await ensureUserInfo();
|
||||
const url = await generateShareImageUrl();
|
||||
// console.log(res, "res");
|
||||
return {
|
||||
@@ -128,8 +148,8 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
||||
} = detail || {};
|
||||
// 先等待静默登录完成
|
||||
await waitForAuthInit();
|
||||
const userInfo = await fetchUserInfo();
|
||||
const { avatar_url, nickname } = userInfo;
|
||||
const currentUserInfo = await ensureUserInfo();
|
||||
const { avatar_url, nickname } = currentUserInfo;
|
||||
const startTime = dayjs(start_time);
|
||||
const endTime = dayjs(end_time);
|
||||
const dayofWeek = DayOfWeekMap.get(startTime.day());
|
||||
|
||||
Reference in New Issue
Block a user