Tree cards: render unset-sex / redacted "Living person" in gray, not blue
The chart mapped gender as `=== "female" ? "F" : "M"`, so anything non-female — including null — became "M" (blue). On the public site, redacted living people (whose gender the privacy engine nulls) all showed blue regardless of real sex, and anywhere a person's sex was simply unset they also showed blue (misleading). Map male→"M", female→"F", and everything else→null, which family-chart renders as `card-genderless`. So living/redacted people render gray (and never imply a sex), and unset-sex people render gray instead of defaulting to male/blue. Applied to both the member tree (tree/page.tsx) and the public chart (public-tree-chart.tsx), which share chart.css. Also bumped the genderless color from the library's washed-out `lightgray` to a warm mid-gray that matches the muted male/female tones and the brand palette. Privacy note: `_redact` already nulls gender, so this is purely the client color mapping — no sex leak, just a correct neutral rendering. Signed-off-by: Justin Paul <justin@jpaul.me>
This commit is contained in:
@@ -120,7 +120,10 @@ export function PublicTreeChart({
|
||||
"first name": fn || "Unnamed",
|
||||
"last name": ln,
|
||||
birthday: years.get(pp.id) ?? "",
|
||||
gender: pp.gender === "female" ? "F" : "M",
|
||||
// male → blue, female → pink, unset/redacted → genderless (gray).
|
||||
// Redacted living people have null gender, so they render gray rather
|
||||
// than defaulting to male/blue (and never imply a real person's sex).
|
||||
gender: pp.gender === "male" ? "M" : pp.gender === "female" ? "F" : null,
|
||||
},
|
||||
rels: {
|
||||
spouses: ok(partnersOf(pp.id), pp.id),
|
||||
|
||||
Reference in New Issue
Block a user