2019-11-15 14:35:25 +08:00
|
|
|
/* eslint-disable import/prefer-default-export */
|
2022-05-07 14:31:54 +08:00
|
|
|
import type { ColumnType, ColumnTitle, ColumnTitleProps, Key } from './interface';
|
2019-11-15 14:35:25 +08:00
|
|
|
|
|
|
|
export function getColumnKey<RecordType>(column: ColumnType<RecordType>, defaultKey: string): Key {
|
2020-02-03 16:48:13 +08:00
|
|
|
if ('key' in column && column.key !== undefined && column.key !== null) {
|
2019-11-15 14:35:25 +08:00
|
|
|
return column.key;
|
|
|
|
}
|
|
|
|
if (column.dataIndex) {
|
2021-01-28 01:21:58 +08:00
|
|
|
return (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex) as Key;
|
2019-11-15 14:35:25 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
return defaultKey;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getColumnPos(index: number, pos?: string) {
|
|
|
|
return pos ? `${pos}-${index}` : `${index}`;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function renderColumnTitle<RecordType>(
|
|
|
|
title: ColumnTitle<RecordType>,
|
|
|
|
props: ColumnTitleProps<RecordType>,
|
|
|
|
) {
|
|
|
|
if (typeof title === 'function') {
|
|
|
|
return title(props);
|
|
|
|
}
|
|
|
|
|
|
|
|
return title;
|
|
|
|
}
|