import './styles.scss'; import React from 'react'; import { Spin, } from 'antd'; import TopBarComponent from './top-bar'; import UploadedModelsList from './uploaded-models-list'; import BuiltModelsList from './built-models-list'; import EmptyListComponent from './empty-list'; import FeedbackComponent from '../feedback/feedback'; import { Model } from '../../reducers/interfaces'; interface Props { installedAutoAnnotation: boolean; installedTFSegmentation: boolean; installedTFAnnotation: boolean; modelsInitialized: boolean; modelsFetching: boolean; registeredUsers: any[]; models: Model[]; getModels(): void; deleteModel(id: number): void; } export default function ModelsPageComponent(props: Props): JSX.Element { const { installedAutoAnnotation, installedTFSegmentation, installedTFAnnotation, modelsInitialized, modelsFetching, registeredUsers, models, deleteModel, } = props; if (!modelsInitialized) { if (!modelsFetching) { props.getModels(); } return ( ); } const uploadedModels = models.filter((model): boolean => model.id !== null); const integratedModels = models.filter((model): boolean => model.id === null); return (
{ !!integratedModels.length && } { !!uploadedModels.length && ( )} { installedAutoAnnotation && !uploadedModels.length && !installedTFAnnotation && !installedTFSegmentation && }
); }