Migliora overlay basket Android, regia e catalogo sport senza timer.
Fix crash e race su +3, layout tabellone con squadre ai lati, safe area in diretta e rimozione overlay cronometro; backend con sync punteggio periodo, link diretta in regia e init score_state basket. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -173,10 +173,22 @@
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.regia-share-group {
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.regia-share-label {
|
||||
margin: 0 0 6px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
color: var(--regia-muted);
|
||||
}
|
||||
|
||||
.regia-share {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.regia-share .regia-btn { flex: 1; font-size: 0.9rem; padding: 12px; }
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
hlsUrl: root.dataset.hlsUrl,
|
||||
homeName: root.dataset.homeName,
|
||||
awayName: root.dataset.awayName,
|
||||
shareUrl: root.dataset.shareUrl,
|
||||
shareTitle: root.dataset.shareTitle,
|
||||
regiaShareUrl: root.dataset.regiaShareUrl,
|
||||
regiaShareTitle: root.dataset.regiaShareTitle,
|
||||
liveShareUrl: root.dataset.liveShareUrl,
|
||||
liveShareTitle: root.dataset.liveShareTitle,
|
||||
streamClosed: root.dataset.streamClosed === "true"
|
||||
};
|
||||
|
||||
@@ -360,12 +362,12 @@
|
||||
els.btnPause?.addEventListener("click", () => togglePauseStream().catch((e) => toast(e.message)));
|
||||
document.getElementById("btn-stop")?.addEventListener("click", () => stopStream().catch((e) => toast(e.message)));
|
||||
|
||||
async function shareLink() {
|
||||
const payload = {
|
||||
title: cfg.shareTitle,
|
||||
text: "Apri questo link per gestire il punteggio della diretta:",
|
||||
url: cfg.shareUrl
|
||||
};
|
||||
async function shareLink(url, title, text) {
|
||||
if (!url) {
|
||||
toast("Link non disponibile");
|
||||
return;
|
||||
}
|
||||
const payload = { title, text, url };
|
||||
if (navigator.share) {
|
||||
try {
|
||||
await navigator.share(payload);
|
||||
@@ -374,20 +376,38 @@
|
||||
if (err.name === "AbortError") return;
|
||||
}
|
||||
}
|
||||
await copyLink();
|
||||
await copyLink(url);
|
||||
}
|
||||
|
||||
async function copyLink() {
|
||||
async function copyLink(url) {
|
||||
if (!url) {
|
||||
toast("Link non disponibile");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await navigator.clipboard.writeText(cfg.shareUrl);
|
||||
await navigator.clipboard.writeText(url);
|
||||
toast("Link copiato");
|
||||
} catch (_) {
|
||||
prompt("Copia il link:", cfg.shareUrl);
|
||||
prompt("Copia il link:", url);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("btn-share")?.addEventListener("click", () => shareLink());
|
||||
document.getElementById("btn-copy")?.addEventListener("click", () => copyLink());
|
||||
document.getElementById("btn-share-regia")?.addEventListener("click", () =>
|
||||
shareLink(
|
||||
cfg.regiaShareUrl,
|
||||
cfg.regiaShareTitle,
|
||||
"Apri questo link per gestire il punteggio della diretta:"
|
||||
)
|
||||
);
|
||||
document.getElementById("btn-copy-regia")?.addEventListener("click", () => copyLink(cfg.regiaShareUrl));
|
||||
document.getElementById("btn-share-live")?.addEventListener("click", () =>
|
||||
shareLink(
|
||||
cfg.liveShareUrl,
|
||||
cfg.liveShareTitle,
|
||||
"Guarda la diretta su Match Live TV:"
|
||||
)
|
||||
);
|
||||
document.getElementById("btn-copy-live")?.addEventListener("click", () => copyLink(cfg.liveShareUrl));
|
||||
|
||||
function bindPreviewStallRecovery() {
|
||||
if (!els.preview) return;
|
||||
|
||||
Reference in New Issue
Block a user