fix(arbre): « + photo » seulement en modification (issue #124)

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 <noreply@anthropic.com>
This commit is contained in:
IliesAllaliandClaude Opus 5.5 committed 2026-10-21 15:38:00 +02:00
1 parent 3b08fc1dce
commit d55ea6ce4a
2 files changed
+5 -4

No files matched your search

+3 -2
View File
@@ -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}
+2 -2
View File
@@ -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})`