From d55ea6ce4aecdb309afe9658f160d859f1e7c19b Mon Sep 17 00:00:00 2001 From: IliesAllali Date: Wed, 21 Oct 2026 15:38:00 +0200 Subject: [PATCH] =?UTF-8?q?fix(arbre):=20=C2=AB=20+=20photo=20=C2=BB=20seu?= =?UTF-8?q?lement=20en=20modification=20(issue=20#124)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Depuis la 1.2.0, chez le propriétaire, un clic sur un portrait vide ouvrait le sélecteur de fichiers même en simple lecture, sur chaque personne sans photo. En lecture, le clic ouvre maintenant la fiche, comme pour les autres portraits ; l'invite « + photo » au survol et le sélecteur direct ne restent qu'en mode modification. L'ajout de photo depuis la fiche ne change pas. Co-Authored-By: Claude Opus 5.5 --- frontend/src/App.jsx | 5 +++-- frontend/src/components/galaxy/renderers.js | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index f8c5e7c..07759af 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -3244,8 +3244,9 @@ function App() { zoomApiRef={galaxyZoomApiRef} focusPersonId={tree.treeContext.rootPersonId} assetRevision={tree.assetRevision} - photoHint={tree.canEditCurrentTree} - onPhotoPlaceholderClick={tree.canEditCurrentTree ? handlePhotoPlaceholderClick : null} + // « + photo » seulement en modification : en lecture, un clic sur un portrait vide ouvre la fiche (issue #124) + photoHint={tree.canEditCurrentTree && editMode.isActive} + onPhotoPlaceholderClick={tree.canEditCurrentTree && editMode.isActive ? handlePhotoPlaceholderClick : null} reorderEnabled={canReorderSiblings} onReorderSiblings={handleReorderSiblings} familyTabs={familyTabs} diff --git a/frontend/src/components/galaxy/renderers.js b/frontend/src/components/galaxy/renderers.js index 79a81cd..19ade18 100644 --- a/frontend/src/components/galaxy/renderers.js +++ b/frontend/src/components/galaxy/renderers.js @@ -203,7 +203,7 @@ export function drawCoupleLinks(ctx, coupleBarMeta, posMap, nodeMap, nodeRandomD export const renvoiHitAreas = [] // Badges « Famille X » sous les conjoints dont la famille est un onglet : { x0, y0, x1, y1, anchorId } export const familyHitAreas = [] -// Zones « + photo » : portraits vides, chez le propriétaire (cercle du nœud, rempli au dessin) +// Zones « + photo » : portraits vides, chez le propriétaire en modification (cercle du nœud, rempli au dessin) export const photoPlaceholderHitAreas = [] const renvoiPills = [] const familyPills = [] // badges « Famille X » : { text, cx, cy, anchorId, tabKey, alpha } @@ -1022,7 +1022,7 @@ function drawPersonImage(ctx, img, person, x, y, w, h, hint = 0) { ctx.fillRect(x, y, w, h) ctx.textAlign = 'center' ctx.textBaseline = 'middle' - // Au survol, chez le propriétaire, les initiales cèdent la place à « + photo » + // Au survol, chez le propriétaire en modification, les initiales cèdent la place à « + photo » const baseAlpha = ctx.globalAlpha if (hint > 0.01) { ctx.fillStyle = `rgba(248, 228, 219, ${hint})`