Files
2026-05-03 21:58:59 +02:00

20 lines
1.8 KiB
Markdown

# TODO — Le Juste Poids
## Avatar / Photo de profil
### 1. Modifier la couleur de fond sans changer la photo
- **Problème** : Dans le modal "Modifier la photo", changer la couleur de fond ne met à jour que la preview de crop local — mais si aucune nouvelle image n'est sélectionnée, le bouton "Enregistrer" ne fait rien (la condition `if (!file && !selectedDefault) return` bloque).
- **Solution** : Permettre la sauvegarde de la `bgColor` seule via `PATCH /users/me/avatar` (ou un endpoint dédié). Si l'utilisateur n'a pas sélectionné de nouvelle image, envoyer uniquement la couleur + `avatarUrl` actuel.
- La preview dans le modal devrait aussi afficher la photo actuelle avec la nouvelle couleur en arrière-plan pour que ce soit live.
### 2. Recadrer la photo existante
- **Question** : Actuellement, à chaque "Enregistrer", un nouveau fichier PNG est généré par le canvas et uploadé. La position/zoom de crop n'est **pas** sauvegardée en base — seule l'image résultante l'est.
- **Conséquence** : Pour recadrer différemment, il faudrait soit :
- (A) Re-uploader le fichier original depuis le client (le navigateur ne peut pas relire un fichier déjà uploadé)
- (B) Stocker l'image originale côté serveur (dans un champ `profileImageOriginalUrl`) et laisser le client la recharger pour recadrer
- **(Recommandé) Option B** : À l'upload, sauvegarder aussi l'original non-croppé. En mode "recadrage", charger l'original dans le canvas et permettre de repositionner/zoomer → sauvegarder un nouveau crop sans supprimer/re-uploader.
- **À implémenter** :
- API : champ `profileImageOriginalUrl` dans le schéma Prisma
- API : stocker l'original à l'upload (`POST /users/me/photo`)
- Frontend : bouton "Recadrer" → charge l'original dans le modal en mode crop directement