/* * 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 { ParentBuild } from "@drill4j/types-admin"; import tw, { styled } from "twin.macro"; import { BuildMethodsCard } from "components"; import { ActiveScopeInfo } from "modules"; import { Methods } from "types/methods"; import { BuildCoverage } from "types/build-coverage"; import { useActiveBuild, useActiveScope, useAgentRouteParams, useFilteredData, usePreviousBuildCoverage, useTestToCodeData, } from "hooks"; import { BUILD_STATUS } from "common/constants"; import { PreviousBuildInfo } from "./previous-build-info-types"; import { BuildCoverageInfo } from "./build-coverage-info"; import { ActiveBuildCoverageInfo } from "./active-build-coverage-info"; import { MethodsTable } from "../../methods-table"; const Info = styled.div` ${tw`grid gap-8`} grid-template-columns: 1fr 320px; @media screen and (min-width: 1024px) { grid-template-columns: auto max-content; } `; const Cards = styled.div<{isShowActiveScopeInfo?: boolean}>` ${tw`grid gap-2 col-start-1 grid-flow-row lg:grid-cols-3`} ${({ isShowActiveScopeInfo }) => !isShowActiveScopeInfo && tw`col-span-2 grid-cols-3`} `; const ActiveBuildTestsBar = styled.div<{isShowActiveScopeInfo?: boolean}>` ${tw`col-start-1 col-span-2 lg:col-span-1`} ${({ isShowActiveScopeInfo }) => !isShowActiveScopeInfo && tw`col-span-2 lg:col-span-2`} `; export const BuildMethodsInfo = () => { const { agentId = "" } = useAgentRouteParams(); const scope = useActiveScope(); const { all, new: newMethods, modified, deleted, risks, } = useFilteredData("/build/methods") || {}; const { version: previousBuildVersion = "" } = useTestToCodeData("/data/parent") || {}; const buildCoverage = useFilteredData("/build/coverage") || {}; const { percentage: previousBuildCodeCoverage = 0, } = usePreviousBuildCoverage(previousBuildVersion) || {}; const { buildStatus } = useActiveBuild(agentId) || {}; const { percentage: buildCodeCoverage = 0 } = buildCoverage; const isShowActiveScopeInfo = scope?.active && buildStatus === BUILD_STATUS.ONLINE; const previousBuildInfo: PreviousBuildInfo = { previousBuildVersion, previousBuildCodeCoverage }; return ( <> {(scope?.active && buildStatus === BUILD_STATUS.ONLINE) ? ( ) : ( )} {deleted?.total} deleted {Boolean(risks?.new) && ( {risks?.new} risks )} {Boolean(risks?.modified) && ( {risks?.modified} risks )} {isShowActiveScopeInfo && (
)}
); };