You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.4 KiB
TypeScript

// Copyright (C) 2020 Intel Corporation
//
// SPDX-License-Identifier: MIT
import './styles.scss';
import React from 'react';
import { RouteComponentProps } from 'react-router';
import { withRouter } from 'react-router-dom';
import { Row, Col } from 'antd/lib/grid';
import Spin from 'antd/lib/spin';
import Result from 'antd/lib/result';
import DetailsContainer from 'containers/task-page/details';
import JobListContainer from 'containers/task-page/job-list';
import ModelRunnerModal from 'components/model-runner-modal/model-runner-dialog';
import { Task } from 'reducers/interfaces';
import TopBarComponent from './top-bar';
interface TaskPageComponentProps {
task: Task | null | undefined;
fetching: boolean;
updating: boolean;
deleteActivity: boolean | null;
installedGit: boolean;
getTask: () => void;
}
type Props = TaskPageComponentProps & RouteComponentProps<{ id: string }>;
class TaskPageComponent extends React.PureComponent<Props> {
public componentDidMount(): void {
const { task, fetching, getTask } = this.props;
if (task === null && !fetching) {
getTask();
}
}
public componentDidUpdate(): void {
const { deleteActivity, history } = this.props;
if (deleteActivity) {
history.replace('/tasks');
}
}
public render(): JSX.Element {
const { task, updating } = this.props;
if (task === null || updating) {
return <Spin size='large' className='cvat-spinner' />;
}
if (typeof task === 'undefined') {
return (
<Result
className='cvat-not-found'
status='404'
title='Sorry, but this task was not found'
subTitle='Please, be sure information you tried to get exist and you have access'
/>
);
}
return (
<>
<Row type='flex' justify='center' align='top' className='cvat-task-details-wrapper'>
<Col md={22} lg={18} xl={16} xxl={14}>
<TopBarComponent taskInstance={(task as Task).instance} />
<DetailsContainer task={task as Task} />
<JobListContainer task={task as Task} />
</Col>
</Row>
<ModelRunnerModal />
</>
);
}
}
export default withRouter(TaskPageComponent);