11import React from 'react' ;
2- import { Renderer } from '/core/renderers' ;
2+ import { Array1DRenderer , Renderer } from '/core/renderers' ;
33import styles from './stylesheet.scss' ;
44import { classes } from '/common/util' ;
55
@@ -14,13 +14,35 @@ class Array2DRenderer extends Renderer {
1414 renderData ( ) {
1515 const { data } = this . props . data ;
1616
17+ const isArray1D = this instanceof Array1DRenderer ;
18+ let longestRow = data . reduce ( ( longestRow , row ) => longestRow . length < row . length ? row : longestRow , [ ] ) ;
19+
1720 return (
1821 < table className = { styles . array_2d }
1922 style = { { marginLeft : - this . centerX * 2 , marginTop : - this . centerY * 2 , fontSize : this . zoom } } >
2023 < tbody >
24+ < tr className = { styles . row } >
25+ {
26+ ! isArray1D &&
27+ < td className = { classes ( styles . col , styles . index ) } />
28+ }
29+ {
30+ longestRow . map ( ( _ , i ) => (
31+ < td className = { classes ( styles . col , styles . index ) } >
32+ < span className = { styles . value } > { i } </ span >
33+ </ td >
34+ ) )
35+ }
36+ </ tr >
2137 {
2238 data . map ( ( row , i ) => (
2339 < tr className = { styles . row } key = { i } >
40+ {
41+ ! isArray1D &&
42+ < td className = { classes ( styles . col , styles . index ) } >
43+ < span className = { styles . value } > { i } </ span >
44+ </ td >
45+ }
2446 {
2547 row . map ( ( col , j ) => (
2648 < td className = { classes ( styles . col , col . selected && styles . selected , col . patched && styles . patched ) }
0 commit comments