useTitleColumns.js 698 B

123456789101112131415161718
  1. import * as React from 'react';
  2. import { renderColumnTitle } from '../util';
  3. const fillTitle = (columns, columnTitleProps) => {
  4. const finalColumns = columns.map(column => {
  5. const cloneColumn = Object.assign({}, column);
  6. cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);
  7. if ('children' in cloneColumn) {
  8. cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);
  9. }
  10. return cloneColumn;
  11. });
  12. return finalColumns;
  13. };
  14. const useTitleColumns = columnTitleProps => {
  15. const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);
  16. return [filledColumns];
  17. };
  18. export default useTitleColumns;