/* * Copyright 2020 EPAM Systems * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import React from "react"; import { Legend, ProgressBarLegends } from "@drill4j/ui-kit"; import { percentFormatter } from "@drill4j/common-utils"; import { BuildStatus } from "@drill4j/types-admin"; import "twin.macro"; import { ActiveScope } from "types/active-scope"; import { BuildCoverage } from "types/build-coverage"; import { DATA_VISUALIZATION_COLORS } from "common/constants"; import { MultiProgressBar } from "./multi-progress-bar"; import { PreviousBuildInfo } from "../previous-build-info-types"; interface Props { buildCoverage: BuildCoverage; previousBuildInfo?: PreviousBuildInfo; scope?: ActiveScope | null; status?: BuildStatus; } export const ActiveBuildCoverageInfo = ({ buildCoverage, previousBuildInfo: { previousBuildVersion = "", previousBuildCodeCoverage = 0 } = {}, scope, status = "BUSY", }: Props) => { const { coverage: { percentage: coveragePercentage = 0, overlap: { percentage: overlapPercentage = 0 } = {}, } = {}, } = scope || {}; const { percentage: buildCodeCoverage = 0, finishedScopesCount = 0, } = buildCoverage; const uniqueCodeCoverage = percentFormatter(coveragePercentage) - percentFormatter(overlapPercentage); const buildDiff = percentFormatter(buildCodeCoverage) - percentFormatter(previousBuildCodeCoverage); return (