Sposta il contatore delle notifiche in un pallino sull'avatar del profilo
Tolta la campanella in alto a destra: il numero delle non lette è ora un pallino rosso sull'angolo dell'avatar. Il tap sull'avatar porta sempre al profilo, quello sul pallino apre l'elenco delle notifiche (lettura ed eliminazione). Con tutte le notifiche lette il pallino resta neutro col totale, così restano eliminabili. Logica del pallino in pallinoNotifiche(), coperta da test; documentazione allineata. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
c6437a605c
commit
33ed2398ab
10 files changed
+119
-82
No files matched your search
@@ -1,6 +1,11 @@
|
||||
/** Check delle notifiche in-app (M17): `bun test/unit/notifiche-utente.test.ts`. */
|
||||
import assert from "node:assert/strict";
|
||||
import { contatoreBadge, daRiga, type RigaNotifica } from "@/lib/notifiche-utente";
|
||||
import {
|
||||
contatoreBadge,
|
||||
daRiga,
|
||||
pallinoNotifiche,
|
||||
type RigaNotifica,
|
||||
} from "@/lib/notifiche-utente";
|
||||
|
||||
// --- daRiga: conversione database -> modello applicativo ---------------------
|
||||
const riga: RigaNotifica = {
|
||||
@@ -36,4 +41,11 @@ assert.equal(contatoreBadge(9), "9");
|
||||
assert.equal(contatoreBadge(10), "9+");
|
||||
assert.equal(contatoreBadge(42), "9+");
|
||||
|
||||
// --- pallinoNotifiche: rosso con le non lette, neutro col totale, assente se vuoto ---
|
||||
assert.equal(pallinoNotifiche(0, 0), null);
|
||||
assert.deepEqual(pallinoNotifiche(5, 2), { testo: "2", daLeggere: true });
|
||||
assert.deepEqual(pallinoNotifiche(30, 12), { testo: "9+", daLeggere: true });
|
||||
// Tutte lette: il pallino resta per poterle ancora aprire ed eliminare.
|
||||
assert.deepEqual(pallinoNotifiche(3, 0), { testo: "3", daLeggere: false });
|
||||
|
||||
console.log("notifiche-utente: ok");
|
||||
Reference in new issue
Block a user