fix app invite share link code

This commit is contained in:
170-carry 2026-04-27 20:02:49 +08:00
parent c27a8acd8f
commit f80bb2481a

View File

@ -580,8 +580,39 @@ function formatSignedReward(value) {
return `+${formatMetric(raw)}`;
}
function buildInviteShareURL(inviteLink, inviteCode) {
const rawURL = trimValue(inviteLink);
const code = trimValue(inviteCode);
if (!rawURL || !code) {
return rawURL;
}
try {
const url = new URL(rawURL, window.location.href);
if (url.hostname.includes("play.google.com")) {
const referrer = new URLSearchParams(url.searchParams.get("referrer") || "");
setPlayInstallReferrer(referrer, code);
removeTopLevelInviteCodeParams(url.searchParams);
url.searchParams.set("referrer", referrer.toString());
return url.toString();
}
setInviteCodeParams(url.searchParams, code);
return url.toString();
} catch {
const separator = rawURL.includes("?") ? "&" : "?";
const params = new URLSearchParams();
setInviteCodeParams(params, code);
return `${rawURL}${separator}${params.toString()}`;
}
}
function currentInviteShareURL() {
return buildInviteShareURL(state.inviteLink, state.inviteCode);
}
function renderStats() {
els.inviteLinkText.textContent = trimValue(state.inviteLink) || "--";
els.inviteLinkText.textContent = trimValue(currentInviteShareURL()) || "--";
els.inviteCodeText.textContent = trimValue(state.inviteCode) || "--";
els.statInvitees.textContent = formatMetric(state.invitees);
els.statEligible.textContent = formatMetric(state.eligibleVoters);
@ -1131,7 +1162,7 @@ function bindEvents() {
els.copyButtons.forEach((button) => {
button.addEventListener("click", async () => {
const target = button.getAttribute("data-copy-target");
const value = target === "invite-code" ? state.inviteCode : state.inviteLink;
const value = target === "invite-code" ? state.inviteCode : currentInviteShareURL();
try {
await copyText(trimValue(value));