Handle particular cases in simple family tree
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
c84fb50087
commit
c6c984c34c
@ -254,6 +254,7 @@ function NodeArea(p: {
|
|||||||
let pers2 = p.node.spouse?.member;
|
let pers2 = p.node.spouse?.member;
|
||||||
let didSwap = false;
|
let didSwap = false;
|
||||||
|
|
||||||
|
// Show male of the left (all the time)
|
||||||
if (pers2?.sex === "M") {
|
if (pers2?.sex === "M") {
|
||||||
let s = pers1;
|
let s = pers1;
|
||||||
pers1 = pers2;
|
pers1 = pers2;
|
||||||
@ -293,10 +294,37 @@ function NodeArea(p: {
|
|||||||
let childrenLinkX: number;
|
let childrenLinkX: number;
|
||||||
let childrenLinkY: number;
|
let childrenLinkY: number;
|
||||||
|
|
||||||
if (p.node.spouse) {
|
// If the father is the father of all the children, while the
|
||||||
|
// mother is not the mother of any of the children
|
||||||
|
if (
|
||||||
|
pers2 &&
|
||||||
|
p.node.down.every(
|
||||||
|
(n) => n.member.father === pers1.id && n.member.mother !== pers2!.id
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
childrenLinkX = parent_x_offset + Math.floor(memberCardWidth(pers1) / 2);
|
||||||
|
childrenLinkY = p.y + CARD_HEIGHT + 2;
|
||||||
|
}
|
||||||
|
// If the mother is the mother of all the children, while the
|
||||||
|
// father is not the father of any of the children
|
||||||
|
if (
|
||||||
|
pers2 &&
|
||||||
|
p.node.down.every(
|
||||||
|
(n) => n.member.father !== pers1.id && n.member.mother === pers2!.id
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
childrenLinkX = beginSecondFaceX! + Math.floor(memberCardWidth(pers2) / 2);
|
||||||
|
childrenLinkY = p.y + CARD_HEIGHT + 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Normal couple
|
||||||
|
else if (p.node.spouse) {
|
||||||
childrenLinkX = Math.floor((endFirstFaceX + beginSecondFaceX!) / 2);
|
childrenLinkX = Math.floor((endFirstFaceX + beginSecondFaceX!) / 2);
|
||||||
childrenLinkY = middleParentFaceY;
|
childrenLinkY = middleParentFaceY;
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
// Single person
|
||||||
|
else {
|
||||||
childrenLinkX = parent_x_offset + Math.floor(memberCardWidth(pers1) / 2);
|
childrenLinkX = parent_x_offset + Math.floor(memberCardWidth(pers1) / 2);
|
||||||
childrenLinkY = p.y + CARD_HEIGHT + 2;
|
childrenLinkY = p.y + CARD_HEIGHT + 2;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user