diff --git a/geneit_app/src/api/MemberApi.ts b/geneit_app/src/api/MemberApi.ts index 3959cf6..b9a873f 100644 --- a/geneit_app/src/api/MemberApi.ts +++ b/geneit_app/src/api/MemberApi.ts @@ -195,6 +195,16 @@ export class MembersList { children(id: number): Member[] { return this.list.filter((m) => m.mother === id || m.father === id); } + + siblings(id: number): Member[] { + const p = this.get(id); + return this.list.filter( + (m) => + m.id !== p?.id && + ((m.mother && m.mother === p?.mother) || + (m.father && m.father === p?.father)) + ); + } } export class MemberApi { diff --git a/geneit_app/src/routes/family/FamilyMemberRoute.tsx b/geneit_app/src/routes/family/FamilyMemberRoute.tsx index a951eec..e5d792d 100644 --- a/geneit_app/src/routes/family/FamilyMemberRoute.tsx +++ b/geneit_app/src/routes/family/FamilyMemberRoute.tsx @@ -128,6 +128,7 @@ export function FamilyMemberRoute(): React.ReactElement { void; onSave?: (m: Member) => void; onRequestEdit?: () => void; @@ -628,6 +630,26 @@ export function MemberPage(p: { )} + + {/* Siblings */} + {p.siblings && ( + + + {p.siblings.length === 0 ? ( + <>Aucun frère ou sœur + ) : ( + p.siblings.map((c) => ( + + + + )) + )} + + + )} );