ant-design/components/table/hooks/useTitleColumns.ts
lijianan 5d3381334c
chore: remove useless tsx support (#39934)
* chore: remove useless tsx support

* add

* revert

* add

* fix

* fix

* add test case

* fix
2022-12-31 22:12:30 +08:00

32 lines
913 B
TypeScript

import * as React from 'react';
import type { ColumnsType, ColumnTitleProps, TransformColumns } from '../interface';
import { renderColumnTitle } from '../util';
function fillTitle<RecordType>(
columns: ColumnsType<RecordType>,
columnTitleProps: ColumnTitleProps<RecordType>,
) {
return columns.map((column) => {
const cloneColumn = { ...column };
cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);
if ('children' in cloneColumn) {
cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);
}
return cloneColumn;
});
}
export default function useTitleColumns<RecordType>(
columnTitleProps: ColumnTitleProps<RecordType>,
): [TransformColumns<RecordType>] {
const filledColumns = React.useCallback(
(columns: ColumnsType<RecordType>) => fillTitle(columns, columnTitleProps),
[columnTitleProps],
);
return [filledColumns];
}