11import * as React from 'react' ;
2- import relTree , { hasHiddenRelatives , IFamilyNode } from 'relatives-tree' ;
2+ import relTree , { IFamilyNode , IFamilyExtNode } from 'relatives-tree' ;
33import Connector from './connector' ;
44
5- interface IRenderNodeOptions {
6- x : number ;
7- y : number ;
8- sub : boolean ;
9- }
10-
115interface Props {
126 nodes : IFamilyNode [ ] ;
137 rootId : string ;
148 width : number ;
159 height : number ;
1610 canvasClassName ?: string ;
17- renderNode : ( node : IFamilyNode , options : IRenderNodeOptions ) => void ;
11+ renderNode : ( node : IFamilyExtNode ) => void ;
1812}
1913
2014const ReactFamilyTree : React . FunctionComponent < Props > = ( props ) => {
@@ -40,33 +34,7 @@ const ReactFamilyTree: React.FunctionComponent<Props> = (props) => {
4034 height = { height }
4135 />
4236 ) ) }
43- { data . families . map ( family => {
44- const fX = family . left * width ;
45- const fY = family . top * height ;
46-
47- return (
48- < React . Fragment key = { family . id } >
49- { ( family . type === 'parent' || family . type === 'root' ) && (
50- family . pUnits . map ( ( unit ) => (
51- unit . nodes . map ( ( node , idx ) => props . renderNode ( node , {
52- x : fX + ( unit . shift * width ) + ( idx * ( width * 2 ) ) ,
53- y : fY ,
54- sub : hasHiddenRelatives ( family , node ) ,
55- } ) )
56- ) )
57- ) }
58- { ( family . type === 'child' || family . type === 'root' ) && (
59- family . cUnits . map ( ( unit ) => (
60- unit . nodes . map ( ( node , idx ) => props . renderNode ( node , {
61- x : fX + ( unit . shift * width ) + ( idx * ( width * 2 ) ) ,
62- y : fY + props . height ,
63- sub : hasHiddenRelatives ( family , node ) ,
64- } ) )
65- ) )
66- ) }
67- </ React . Fragment >
68- ) ;
69- } ) }
37+ { data . nodes . map ( props . renderNode ) }
7038 </ div >
7139 ) ;
7240} ;
0 commit comments