// Copyright (C) 2020 Intel Corporation
//
// SPDX-License-Identifier: MIT
import React from 'react';
import { Row, Col } from 'antd/lib/grid';
import Tooltip from 'antd/lib/tooltip';
import Table from 'antd/lib/table';
import Modal from 'antd/lib/modal';
import Spin from 'antd/lib/spin';
import Icon from 'antd/lib/icon';
import Text from 'antd/lib/typography/Text';
interface Props {
collecting: boolean;
data: any;
visible: boolean;
assignee: string;
reviewer: string;
startFrame: number;
stopFrame: number;
bugTracker: string;
jobStatus: string;
savingJobStatus: boolean;
closeStatistics(): void;
}
export default function StatisticsModalComponent(props: Props): JSX.Element {
const {
collecting, data, visible, assignee, reviewer, startFrame, stopFrame, bugTracker, closeStatistics,
} = props;
const baseProps = {
cancelButtonProps: { style: { display: 'none' } },
okButtonProps: { style: { width: 100 } },
onOk: closeStatistics,
width: 1000,
visible,
closable: false,
};
if (collecting || !data) {
return (
);
}
const rows = Object.keys(data.label).map((key: string) => ({
key,
label: key,
rectangle: `${data.label[key].rectangle.shape} / ${data.label[key].rectangle.track}`,
polygon: `${data.label[key].polygon.shape} / ${data.label[key].polygon.track}`,
polyline: `${data.label[key].polyline.shape} / ${data.label[key].polyline.track}`,
points: `${data.label[key].points.shape} / ${data.label[key].points.track}`,
tags: data.label[key].tags,
manually: data.label[key].manually,
interpolated: data.label[key].interpolated,
total: data.label[key].total,
}));
rows.push({
key: '___total',
label: 'Total',
rectangle: `${data.total.rectangle.shape} / ${data.total.rectangle.track}`,
polygon: `${data.total.polygon.shape} / ${data.total.polygon.track}`,
polyline: `${data.total.polyline.shape} / ${data.total.polyline.track}`,
points: `${data.total.points.shape} / ${data.total.points.track}`,
tags: data.total.tags,
manually: data.total.manually,
interpolated: data.total.interpolated,
total: data.total.total,
});
const makeShapesTracksTitle = (title: string): JSX.Element => (
{title}
);
const columns = [
{
title: Label ,
dataIndex: 'label',
key: 'label',
},
{
title: makeShapesTracksTitle('Rectangle'),
dataIndex: 'rectangle',
key: 'rectangle',
},
{
title: makeShapesTracksTitle('Polygon'),
dataIndex: 'polygon',
key: 'polygon',
},
{
title: makeShapesTracksTitle('Polyline'),
dataIndex: 'polyline',
key: 'polyline',
},
{
title: makeShapesTracksTitle('Points'),
dataIndex: 'points',
key: 'points',
},
{
title: Tags ,
dataIndex: 'tags',
key: 'tags',
},
{
title: Manually ,
dataIndex: 'manually',
key: 'manually',
},
{
title: Interpolated ,
dataIndex: 'interpolated',
key: 'interpolated',
},
{
title: Total ,
dataIndex: 'total',
key: 'total',
},
];
return (
Overview
Assignee
{assignee}
Reviewer
{reviewer}
Start frame
{startFrame}
Stop frame
{stopFrame}
Frames
{stopFrame - startFrame + 1}
{!!bugTracker && (
Bug tracker
{bugTracker}
)}
Annotations statistics
);
}