Profile completeness
Barre de progression user "70 % complet — ajoute ta bio" pour booster l'activation.
Card affichée sur /account (page d'accueil user). Disparaît
automatiquement quand le user atteint 100 %.
Critères par défaut
5 checks dans lib/profile-completeness.ts :
- Nom renseigné (≥ 2 caractères)
- Avatar uploadé
- Username choisi (autre que le cuid de placeholder)
- Email vérifié
- 2FA activée
Le percent est Math.round((done / total) * 100).
Pure function
import { profileCompleteness } from "@/lib/profile-completeness";
const { percent, checks } = profileCompleteness({
name: user.name,
username: user.username,
image: user.image,
emailVerified: user.emailVerified,
twoFactorEnabled: user.twoFactorEnabled,
});Pure (pas de Prisma) → testable et utilisable côté serveur ou client.
La card React appelle /api/user/profile puis passe la réponse à ce
helper.
Étendre
Édite profileCompleteness() pour ajouter / retirer un check :
{
key: "bio",
label: "Ajouter ta bio",
done: !!u.bio && u.bio.length >= 20,
href: "/account/settings",
},L'UI s'auto-render : icône check / cercle vide selon done, lien vers
href quand on clique sur "Continuer".
Quand l'afficher
Par défaut sur /account/page.tsx. Tu peux la mettre ailleurs (dashboard
landing, modal d'onboarding, etc.) — c'est juste un composant client.