diff --git a/web/src/components/deployment-trace-page/deployment-trace-item/deployment-item.tsx b/web/src/components/deployment-trace-page/deployment-trace-item/deployment-item.tsx index f9545b164c..97133227ce 100644 --- a/web/src/components/deployment-trace-page/deployment-trace-item/deployment-item.tsx +++ b/web/src/components/deployment-trace-page/deployment-trace-item/deployment-item.tsx @@ -17,15 +17,25 @@ const useStyles = makeStyles((theme) => ({ padding: theme.spacing(2), display: "flex", alignItems: "center", - // backgroundColor: theme.palette.background.paper, + overflow: "hidden", + columnGap: theme.spacing(2), + [theme.breakpoints.down("sm")]: { + flexDirection: "column", + alignItems: "flex-start", + }, }, - info: { - marginLeft: theme.spacing(1), + titleWrap: { + display: "flex", + alignItems: "baseline", + flexWrap: "wrap", + columnGap: theme.spacing(1), + [theme.breakpoints.down("sm")]: { + flexDirection: "column", + }, }, statusText: { marginLeft: theme.spacing(1), lineHeight: "1.5rem", - // Fix width to prevent misalignment of application name. width: "100px", }, description: { @@ -66,22 +76,12 @@ const DeploymentItem: FC = ({ deployment }) => { {DEPLOYMENT_STATE_TEXT[deployment.status]} - - + + {deployment.applicationName} - + {pipedVersion === PipedVersion.V0 && APPLICATION_KIND_TEXT[deployment.kind]} {pipedVersion === PipedVersion.V1 && "APPLICATION"} diff --git a/web/src/components/deployment-trace-page/deployment-trace-item/index.test.tsx b/web/src/components/deployment-trace-page/deployment-trace-item/index.test.tsx index faec98bd09..d19d2f5546 100644 --- a/web/src/components/deployment-trace-page/deployment-trace-item/index.test.tsx +++ b/web/src/components/deployment-trace-page/deployment-trace-item/index.test.tsx @@ -26,12 +26,15 @@ describe("DeploymentTraceItem", () => { expect( screen.getByText(expectedValues.author + " authored") ).toBeInTheDocument(); - expect(screen.getByText(expectedValues.commitMessage)).toBeInTheDocument(); expect(screen.getByText(expectedValues.commitHash)).toBeInTheDocument(); expect(screen.getByRole("link")).toHaveAttribute( "href", expectedValues.commitUrl ); + fireEvent.click( + screen.getByRole("button", { name: /btn-commit-message/i }) + ); + expect(screen.getByText(expectedValues.commitMessage)).toBeInTheDocument(); }); it("should render deployment items", () => { diff --git a/web/src/components/deployment-trace-page/deployment-trace-item/index.tsx b/web/src/components/deployment-trace-page/deployment-trace-item/index.tsx index 9db18e95bf..b54ffc8286 100644 --- a/web/src/components/deployment-trace-page/deployment-trace-item/index.tsx +++ b/web/src/components/deployment-trace-page/deployment-trace-item/index.tsx @@ -8,39 +8,58 @@ import { Typography, } from "@material-ui/core"; import dayjs from "dayjs"; -import React, { FC, useEffect, useMemo, useState } from "react"; +import React, { FC, useMemo, useState } from "react"; import { ListDeploymentTracesResponse } from "~~/api_client/service_pb"; import MoreHorizIcon from "@material-ui/icons/MoreHoriz"; import { ArrowDropDown } from "@material-ui/icons"; import DeploymentItem from "./deployment-item"; import { Link as RouterLink } from "react-router-dom"; import { PAGE_PATH_DEPLOYMENTS } from "~/constants/path"; +import clsx from "clsx"; const useStyles = makeStyles((theme) => ({ - btnActive: { + title: { + display: "inline", + }, + btnMore: { + display: "inline-flex", + padding: "0 1px", + borderRadius: 5, + marginLeft: 5, + marginBottom: 4, + }, + btnMoreActive: { backgroundColor: theme.palette.grey[300], }, btnRotate: { transform: "rotate(180deg)", }, - list: { - listStyle: "none", - padding: theme.spacing(3), - paddingTop: 0, - margin: 0, - flex: 1, - overflowY: "scroll", - }, - listItem: { - borderColor: theme.palette.grey[300], + traceItem: { + padding: theme.spacing(2), + paddingRight: theme.spacing(0), + borderBottom: `1px solid ${theme.palette.grey[300]}`, + backgroundColor: theme.palette.background.paper, + "&:hover": { + backgroundColor: theme.palette.grey[100], + }, }, traceStickyTop: { position: "sticky", top: 0, zIndex: 50, - backgroundColor: theme.palette.background.paper, paddingBottom: theme.spacing(1), - borderBottom: `1px solid ${theme.palette.grey[300]}`, + }, + commitMessageWrap: { + maxHeight: "20svh", + overflow: "hidden auto", + borderLeft: `0.5px solid ${theme.palette.grey[500]}`, + paddingLeft: theme.spacing(1), + paddingTop: theme.spacing(1), + marginBottom: theme.spacing(1), + marginLeft: theme.spacing(1), + }, + commitMessage: { + whiteSpace: "pre-wrap", }, })); @@ -54,12 +73,6 @@ const DeploymentTraceItem: FC = ({ trace, deploymentList }) => { const [visibleMessage, setVisibleMessage] = useState(false); const [visibleDeployments, setVisibleDeployments] = useState(false); - useEffect(() => { - if (visibleDeployments) { - setVisibleMessage(false); - } - }, [visibleDeployments]); - const onViewCommitMessage = ( e: React.MouseEvent ): void => { @@ -84,73 +97,85 @@ const DeploymentTraceItem: FC = ({ trace, deploymentList }) => { }, [trace?.commitTimestamp]); return ( - + - - -
- {trace?.title} - - - {trace?.commitHash} - - -
- - + + + + + {trace?.title} + + + + + + {trace?.commitHash} + + + - setVisibleDeployments(!visibleDeployments)} > - - {trace?.commitMessage} - - + + + - - - {trace?.author} authored - + {visibleMessage && ( + - {timeStampCommit} + {trace?.commitMessage} + )} + + + + {trace?.author} authored + + + {timeStampCommit} + - setVisibleDeployments(!visibleDeployments)} - > - - - + {deploymentList.map((deployment) => ( ({ flex: 1, overflowY: "scroll", }, - listItem: { - backgroundColor: theme.palette.background.paper, - }, listDeployment: { backgroundColor: theme.palette.background.paper, }, @@ -145,27 +140,19 @@ const DeploymentTracePage: FC = () => { )} {dates.map((date) => ( - + {date} - + {deploymentTracesMap[date].map(({ trace, deploymentsList }) => ( - - - + trace={trace} + deploymentList={deploymentsList} + /> ))} - + ))} {status === "succeeded" &&
} diff --git a/web/src/components/header/index.tsx b/web/src/components/header/index.tsx index d513043fca..11694c80f2 100644 --- a/web/src/components/header/index.tsx +++ b/web/src/components/header/index.tsx @@ -62,6 +62,7 @@ const useStyles = makeStyles((theme) => ({ }, right: { height: "100%", + overflow: "hidden", "&:hover": { color: theme.palette.grey[400], }, @@ -183,7 +184,7 @@ export const Header: FC = memo(function Header() { color="inherit" to={PAGE_PATH_DEPLOYMENT_TRACE} > - Deployment Traces + Traces