35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
export const MATCH_RETURN_SNAPSHOT_KEY = "match-return-snapshot";
|
|
|
|
function getMatchId(battleInfo) {
|
|
return battleInfo?.matchId || battleInfo?.id || "";
|
|
}
|
|
|
|
function getBattlePageUrl(battleInfo, matchId) {
|
|
const page =
|
|
Number(battleInfo?.mode) <= 3
|
|
? "/pages/team-battle/index"
|
|
: "/pages/melee-battle";
|
|
return `${page}?fromReturn=1&battleId=${encodeURIComponent(String(matchId))}`;
|
|
}
|
|
|
|
export function takeMatchReturnSnapshot() {
|
|
const snapshot = uni.getStorageSync(MATCH_RETURN_SNAPSHOT_KEY);
|
|
if (snapshot) uni.removeStorageSync(MATCH_RETURN_SNAPSHOT_KEY);
|
|
return snapshot && typeof snapshot === "object" ? snapshot : null;
|
|
}
|
|
|
|
export async function returnToBattle(battleInfo, navigate) {
|
|
const matchId = getMatchId(battleInfo);
|
|
if (!battleInfo || !matchId || !battleInfo.serverAddr) {
|
|
uni.showToast({
|
|
title: "比赛连接信息异常",
|
|
icon: "none",
|
|
});
|
|
return false;
|
|
}
|
|
|
|
uni.setStorageSync(MATCH_RETURN_SNAPSHOT_KEY, battleInfo);
|
|
await navigate(getBattlePageUrl(battleInfo, matchId));
|
|
return true;
|
|
}
|