Ritarda di 10 secondi la notifica di prova, per poter chiudere l'app.

Il pulsante si preme con l'app aperta, quindi la push arrivava sempre in primo
piano: l'unico caso che non serve provare. Ora la route aspetta `ritardoMs`
(10s di default, 25 al massimo) prima di inviare, e il toast dice di chiudere
l'app subito.

L'attesa tiene aperta la funzione, quindi il tetto e' la durata massima
concessa dall'hosting: annotato come ponytail nel codice.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-06 14:44:29 +02:00
co-authored by Claude Opus 5
parent 8047e58ae0
commit 78d41daf4f
3 changed files with 26 additions and 6 deletions
+8 -4
View File
@@ -84,10 +84,11 @@ export async function attivaNotifiche(giocatoreId: string): Promise<void> {
* Manda una push di prova a questo dispositivo e racconta com'è andata.
*
* Esiste perché "non arriva" è un sintomo cieco: senza, ogni prova richiede un admin, un
* evento nello stato giusto e una seconda persona. L'invio è immediato: per verificare
* l'arrivo ad app chiusa serve invece un invio da un altro dispositivo.
* evento nello stato giusto e una seconda persona. Il server aspetta `ritardoMs` prima di
* inviare: premendo il pulsante l'app è per forza aperta, e senza attesa si proverebbe
* solo il caso che già funziona.
*/
export async function notificaDiProva(): Promise<{
export async function notificaDiProva(ritardoMs?: number): Promise<{
nelDatabase: boolean;
stato: number;
corpo: string;
@@ -100,7 +101,10 @@ export async function notificaDiProva(): Promise<{
const res = await fetch("/api/public/push-prova", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ endpoint: sub.endpoint }),
body: JSON.stringify({
endpoint: sub.endpoint,
...(ritardoMs === undefined ? {} : { ritardoMs }),
}),
});
if (!res.ok) throw new Error("Prova non riuscita");
return (await res.json()) as { nelDatabase: boolean; stato: number; corpo: string };