// 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 { 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 ; } if (typeof task === 'undefined') { return ( ); } return ( <> ); } } export default withRouter(TaskPageComponent);