import {
  ColumnChooser,
  TableColumnVisibility,
  Toolbar
} from '@devexpress/dx-react-grid-material-ui'
import Utils from '../Utils/Utils.coffee'

export default withColumnVisivility = (WrappedComponent) =>
  observer class WithColumnVisivility extends Component
    render: =>
      filteredColumns = @props.columns.filter (column) =>
        if not column.isMain
          true

        else
          false

      hiddenColumnNames = filteredColumns.map (filteredColumn) =>
        filteredColumn.name

      <WrappedComponent
        {...@props}
        tableColumnVisibilityComponent={<TableColumnVisibility defaultHiddenColumnNames={if Utils.isMobile() then hiddenColumnNames else []} />}
        toolbarComponent={<Toolbar />}
        columnChooserComponent={if Utils.isMobile() then null else <ColumnChooser />}
      />
