/**
 * @file Thead component
 * @author liangxiaojun(liangxiaojun@derbysoft.com)
 */

import React, {Component} from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';

import TableHeader from '../_TableHeader';

class Thead extends Component {

    constructor(props, ...restArgs) {
        super(props, ...restArgs);
    }

    render() {

        const {className, style, columns, sort, sortAscIconCls, sortDescIconCls, hidden, onSort} = this.props,

            theadClassName = classNames('thead', {
                hidden: hidden,
                [className]: className
            });

        return (
            <thead className={theadClassName}
                   style={style}>
                <tr>
                    {
                        columns && columns.map((item, index) => {

                            const headerClassName = (item.sortable ? 'sortable ' : '')
                                + (item.headerClassName ? ' ' + item.headerClassName : '');

                            return (
                                <TableHeader key={index}
                                             className={headerClassName}
                                             style={item.headerStyle}
                                             header={item.header}
                                             colIndex={index}
                                             sortable={item.sortable}
                                             sortProp={item.sortProp}
                                             sort={sort}
                                             sortAscIconCls={sortAscIconCls}
                                             sortDescIconCls={sortDescIconCls}
                                             hidden={hidden}
                                             onSort={() => {
                                                 onSort(item);
                                             }}/>
                            );

                        })
                    }
                </tr>
            </thead>
        );

    }
}

Thead.propTypes = {

    className: PropTypes.string,
    style: PropTypes.object,

    columns: PropTypes.array,
    sort: PropTypes.object,
    sortAscIconCls: PropTypes.string,
    sortDescIconCls: PropTypes.string,
    hidden: PropTypes.bool,

    onSort: PropTypes.func

};

Thead.defaultProps = {
    columns: [],
    hidden: false
};

export default Thead;
@@ -201,26 +201,24 @@
 import T
-ableHeader
+headItem
  from '.
@@ -221,26 +221,24 @@
 m '../_T
-ableHeader
+headItem
 ';%0A%0Aclas
@@ -471,17 +471,17 @@
 is.props
-,
+;
 %0A%0A      
@@ -486,26 +486,45 @@
     
-    
+return (%0A            %3C
 thead
-C
+ c
 lassName
  = c
@@ -519,19 +519,18 @@
 lassName
- = 
+=%7B
 classNam
@@ -632,72 +632,8 @@
   %7D)
-;%0A%0A        return (%0A            %3Cthead className=%7BtheadClassName
 %7D%0A  
@@ -775,272 +775,53 @@
  =%3E 
-%7B%0A%0A                            const headerClassName = (item.sortable ? 'sortable ' : '')%0A                                + (item.headerClassName ? ' ' + item.headerClassName : '');%0A%0A                            return (%0A                                %3CTableHeader
+item ?%0A                            %3CTheadItem
  key
@@ -868,22 +868,16 @@
         
-    
-  
 classNam
@@ -879,16 +879,21 @@
 ssName=%7B
+item.
 headerCl
@@ -901,22 +901,16 @@
 ssName%7D%0A
-      
         
@@ -1008,18 +1008,14 @@
     
-  
-    head
+render
 er=%7B
@@ -1025,24 +1025,26 @@
 m.header
-%7D%0A      
+Renderer%7D%0A
         
@@ -1083,38 +1083,32 @@
 olIndex=%7Bindex%7D%0A
-      
                 
@@ -1190,30 +1190,24 @@
             
-      
 sortProp=%7Bit
@@ -1254,30 +1254,24 @@
             
-      
 sort=%7Bsort%7D%0A
@@ -1305,30 +1305,24 @@
             
-    
-  
 sortAscIconC
@@ -1333,38 +1333,32 @@
 sortAscIconCls%7D%0A
-      
                 
@@ -1449,30 +1449,24 @@
             
-      
 hidden=%7Bhidd
@@ -1504,30 +1504,24 @@
             
- 
-     
 onSort=%7B() =
@@ -1525,59 +1525,8 @@
 ) =%3E
- %7B%0A                                                
  onS
@@ -1534,17 +1534,19 @@
 rt(item)
-;
+%7D/%3E
 %0A       
@@ -1570,29 +1570,9 @@
     
-                 %7D%7D/%3E
+:
 %0A   
@@ -1592,27 +1592,28 @@
             
-);%0A
+null
 %0A           
@@ -1625,17 +1625,16 @@
         
-%7D
 )%0A      
@@ -2076,8 +2076,9 @@
 t Thead;
+%0A

update Thead