import IconFont from '@/components/icon-font'; import { FilterBar } from '@/components/page-tools'; import useTableFetch from '@/hooks/use-table-fetch'; import NoResult from '@/pages/_components/no-result'; import PageBox from '@/pages/_components/page-box'; import { queryClusterList } from '@/pages/cluster-management/apis'; import { useIntl } from '@umijs/max'; import { ConfigProvider, Table } from 'antd'; import React, { useEffect, useState } from 'react'; import { GPU_DEVICES_API, queryGpuDevicesList } from '../apis'; import { GPUDeviceItem } from '../config/types'; import useGPUColumns from '../hooks/use-gpu-columns'; const GPUList: React.FC = () => { const { dataSource, queryParams, extraStatus, handlePageChange, handleTableChange, handleQueryChange, handleSearch, handleNameChange } = useTableFetch({ fetchAPI: queryGpuDevicesList, polling: true, API: GPU_DEVICES_API }); 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 handleClusterChange = (value: number) => { handleQueryChange({ page: 1, cluster_id: value }); }; const renderEmpty = (type?: string) => { if (type !== 'Table') return; return ( } filters={queryParams} noFoundText={intl.formatMessage({ id: 'noresult.gpus.nofound' })} title={intl.formatMessage({ id: 'noresult.gpus.title' })} subTitle={intl.formatMessage({ id: 'noresult.gpus.subTitle' })} > ); }; const columns = useGPUColumns({ clusterList, loadend: dataSource.loadend, firstLoad: extraStatus.firstLoad }); useEffect(() => { console.log('columns changed!'); }, [columns]); useEffect(() => { getClusterList(); }, []); return ( <>
); }; export default GPUList;