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:
		@@ -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;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user