import { FilterBar } from '@/components/page-tools'; import useTableFetch from '@/hooks/use-table-fetch'; import { queryClusterList } from '@/pages/cluster-management/apis'; import { MODEL_INSTANCE_API, queryModelsInstances } from '@/pages/llmodels/apis'; import { InstanceStatusMap } from '@/pages/llmodels/config'; import { ModelInstanceListItem } from '@/pages/llmodels/config/types'; import { useIntl } from '@umijs/max'; import { ConfigProvider, Empty, Table } from 'antd'; import React, { useEffect, useState } from 'react'; import useInstanceColumns from '../hooks/use-instances-columns'; const statusList = Object.entries(InstanceStatusMap).map(([key, value]) => ({ label: key, value: value })); const WorkerDetailContent: React.FC<{ worker_id: number | undefined }> = ({ worker_id }) => { const { dataSource, queryParams, handlePageChange, handleTableChange, handleSearch, handleQueryChange, handleNameChange } = useTableFetch({ fetchAPI: queryModelsInstances, polling: false, API: MODEL_INSTANCE_API, defaultQueryParams: { worker_id } }); const intl = useIntl(); const [clusterList, setClusterList] = useState[]>( [] ); const getClusterList = async () => { try { const res = await queryClusterList({ page: -1 }); const list = res.items?.map((item) => ({ label: item.name, value: item.id })); setClusterList(list || []); } catch (error) { setClusterList([]); } }; const renderEmpty = (type?: string) => { if (type !== 'Table') return; if ( !dataSource.loading && dataSource.loadend && !dataSource.dataList.length ) { return ; } return
; }; const handleSelectChange = (value: string) => { handleQueryChange({ state: value }); }; const columns = useInstanceColumns({ clusterList }); useEffect(() => { console.log('columns changed!'); }, [columns]); useEffect(() => { getClusterList(); }, []); return ( <>
); }; export default WorkerDetailContent;