theforeman/foreman

View on GitHub
webpack/assets/javascripts/react_app/components/common/table/formatters/sortableHeaderFormatter.js

Summary

Maintainability
A
25 mins
Test Coverage
import React from 'react';
import SortableHeader from '../components/SortableHeader';

const sortableHeaderFormatter = sortController => (label, { property }) => {
  const isSorter = property === sortController.property;
  const currentOrder = isSorter ? sortController.order : '';
  const nextOrder = currentOrder === 'ASC' ? 'DESC' : 'ASC';

  return (
    <SortableHeader
      onClick={() => {
        sortController.apply(property, nextOrder);
      }}
      sortOrder={isSorter ? sortController.order.toLowerCase() : null}
    >{` ${label}`}</SortableHeader>
  );
};

export default sortableHeaderFormatter;