import ProviderLogo from '@/pages/maas-provider/components/provider-logo'; import { DeleteOutlined } from '@ant-design/icons'; import { AutoTooltip, DropdownButtons, RowChildren, StatusTag } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { Col, Row, Tag } from 'antd'; import dayjs from 'dayjs'; import React from 'react'; import styled from 'styled-components'; import { TargetStatus, TargetStatusLabelMap } from '../config'; import { RouteTarget } from '../config/types'; const CellContent = styled.div` display: flex; align-items: center; height: 100%; `; const FilesTag = styled(Tag)` cursor: pointer; display: flex; align-items: center; margin-inline: 4px 0; transform: scale(0.9); border-radius: 12px; `; interface ProviderModelProps { dataList: RouteTarget[]; onSelect: (val: any, record: any) => void; sourceModels: any[]; modelList?: Global.BaseOption[]; } interface TargetItemProps { onSelect: (val: any, record: any) => void; data: any; sourceModels: any[]; modelList?: Global.BaseOption[]; } export const childActionList = [ { key: 'delete', label: 'common.button.delete', icon: , props: { danger: true } } ]; const RouteItem: React.FC = ({ onSelect, data, sourceModels, modelList }) => { const intl = useIntl(); const renderProviderSource = () => { const model = sourceModels.find((item: any) => { if (data.model_id) { return item.value === 'deployments'; } return item.value === data.provider_id; }); if (!model) { return '-'; } return ( {data.model_id ? modelList?.find((m) => m.value === data.model_id)?.label : data.overridden_model_name} ); }; return (
{data.name} {!!data.overridden_model_name && !!data.model_id && ( LoRA )} {renderProviderSource()} {data.fallback_status_codes && data.fallback_status_codes?.length > 0 ? ( <> {data.weight > 0 && ( / )} {intl.formatMessage({ id: 'routes.table.label.fallback' })} ) : ( {intl.formatMessage({ id: 'routes.form.target.weight' })}:{' '} {data.weight || 0} )} {dayjs(data.created_at).format('YYYY-MM-DD HH:mm:ss')} onSelect(val, data)} >
); }; const RouteTargets: React.FC = ({ dataList, onSelect, modelList, sourceModels }) => { return (
{dataList.map((item, index) => ( ))}
); }; export default RouteTargets;