File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed
packages/react-data-grid/src Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -83,13 +83,26 @@ const HeaderRow = createReactClass({
8383 } ,
8484
8585 getSortableHeaderCell ( column ) {
86- let sortDirection = ( this . props . sortColumn === column . key ) ? this . props . sortDirection : SortableHeaderCell . DEFINE_SORT . NONE ;
87- return < SortableHeaderCell columnKey = { column . key } onSort = { this .props . onSort } sortDirection = { sortDirection} / > ;
86+ let SortableRenderer = SortableHeaderCell ;
87+ if ( column . headerRenderer !== undefined ) {
88+ SortableRenderer = column . headerRenderer ;
89+ }
90+ const sortDirection = ( this . props . sortColumn === column . key ) ? this . props . sortDirection : SortableHeaderCell . DEFINE_SORT . NONE ;
91+ const props = { columnKey : column . key , onSort : this . props . onSort , sortDirection : sortDirection } ;
92+
93+ if ( React . isValidElement ( SortableRenderer ) ) {
94+ // a string means it's an HTML element and props we want to pass are not valid, return it as is
95+ if ( typeof SortableRenderer . type === 'string' ) {
96+ return SortableRenderer ;
97+ }
98+ return React . cloneElement ( SortableRenderer , props ) ;
99+ }
100+ return React . createElement ( SortableRenderer , props ) ;
88101 } ,
89102
90103 getHeaderRenderer ( column ) {
91104 let renderer ;
92- if ( column . headerRenderer && ! this . props . filterable ) {
105+ if ( column . headerRenderer && ! this . props . filterable && ! column . sortable ) {
93106 renderer = column . headerRenderer ;
94107 } else {
95108 let headerCellType = this . getHeaderCellType ( column ) ;
You can’t perform that action at this time.
0 commit comments