All files / src/components/DatatableCore/Header Header.js

100% Statements 9/9
100% Branches 2/2
100% Functions 3/3
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69                          8x             8x   8x 5x                               3x       8x       4x               4x 8x                        
import React, { Component } from "react";
import { connect } from "react-redux";
import { ScrollSyncPane } from "react-scroll-sync";
import {
  columnsOrderPropType,
  columnSizeMultiplierPropType,
  widthNumberPropType,
  CustomTableHeaderRowPropType,
  customPropsPropType
} from "../../../proptypes";
import HeaderRow from "./HeaderRow";
 
class Header extends Component {
  headerRowBuilder = () => {
    const {
      columnsOrder,
      CustomTableHeaderRow,
      columnSizeMultiplier,
      widthDatatable,
      customProps
    } = this.props;
 
    if (CustomTableHeaderRow !== null) {
      return (
        <div
          style={{
            width: widthDatatable - 17,
            overflow: "hidden",
            borderBottom: "1px solid #7e7e7e"
          }}
        >
          <CustomTableHeaderRow
            customProps={customProps}
            columnsOrder={columnsOrder}
            columnSizeMultiplier={columnSizeMultiplier}
          />
        </div>
      );
    }
    return <HeaderRow />;
  };
 
  render() {
    return <ScrollSyncPane>{this.headerRowBuilder()}</ScrollSyncPane>;
  }
}
 
Header.propTypes = {
  customProps: customPropsPropType,
  columnsOrder: columnsOrderPropType.isRequired,
  columnSizeMultiplier: columnSizeMultiplierPropType.isRequired,
  widthDatatable: widthNumberPropType.isRequired,
  CustomTableHeaderRow: CustomTableHeaderRowPropType
};
 
const mapStateToProps = state => {
  return {
    customProps: state.customComponentsReducer.customProps,
    columnsOrder:
      state.datatableReducer.features.userConfiguration.columnsOrder,
    widthDatatable: state.datatableReducer.dimensions.datatable.widthNumber,
    columnSizeMultiplier:
      state.datatableReducer.dimensions.columnSizeMultiplier,
    CustomTableHeaderRow: state.customComponentsReducer.CustomTableHeaderRow
  };
};
 
export default connect(mapStateToProps)(Header);