// columns.ts import AutoTooltip from '@/components/auto-tooltip'; import { tableSorter } from '@/config/settings'; import { useIntl } from '@umijs/max'; import { useMemo } from 'react'; import { BreakdownItem as ListItem } from '../config/types'; interface ColumnsHookProps { sortOrder: string[]; } const useModelsColumns = (): Array<{ title: string; dataIndex: string; key: string; }> => { const intl = useIntl(); return useMemo(() => { return [ { title: intl.formatMessage({ id: 'common.table.name' }), dataIndex: 'model_name', key: 'model_name', sorter: tableSorter(1), render: (text: string, record: ListItem) => ( {text} ) }, { title: 'Provider', dataIndex: 'provider', key: 'provider', render: (text: string, record: ListItem) => ( {text || '-'} ) }, { title: 'Cluster', dataIndex: 'cluster_name', key: 'cluster_name', sorter: tableSorter(2), render: (text: string, record: ListItem) => ( {text || '-'} ) }, { title: 'Input Tokens', dataIndex: 'input_tokens', key: 'input_tokens', render: (text: string[], record: ListItem) => ( {text} ) }, { title: 'Output Tokens', dataIndex: 'output_tokens', key: 'output_tokens', render: (text: string[], record: ListItem) => ( {text} ) }, { title: 'Total Tokens', dataIndex: 'total_tokens', key: 'total_tokens', sorter: tableSorter(3), ellipsis: { showTitle: false }, render: (text: number) => {text} }, { title: 'API Requests', dataIndex: 'api_requests', key: 'api_requests', sorter: tableSorter(3), ellipsis: { showTitle: false }, render: (text: number) => {text} }, { title: 'Last Active', dataIndex: 'last_active', key: 'last_active', sorter: tableSorter(3), ellipsis: { showTitle: false }, render: (text: number) => {text} } ]; }, [intl]); }; export default useModelsColumns;