From 8f1f219b1bdd6c596856cf7c53ac2bec4a95ff05 Mon Sep 17 00:00:00 2001 From: David Goss Date: Fri, 2 May 2025 09:38:57 +0100 Subject: [PATCH 1/5] WIP redesign of report header --- package-lock.json | 9 +- src/ciCommitLink.spec.ts | 2 +- src/ciCommitLink.ts | 6 +- src/components/app/CICommitLink.tsx | 28 +-- src/components/app/CIJobLink.tsx | 29 +-- src/components/app/CopyButton.module.scss | 14 ++ src/components/app/CopyButton.spec.tsx | 35 ++++ src/components/app/CopyButton.tsx | 34 ++++ .../app/ExecutionSummary.module.scss | 57 +----- src/components/app/ExecutionSummary.spec.tsx | 67 ++++++- src/components/app/ExecutionSummary.tsx | 171 ++++++++++-------- .../app/FilteredResults.module.scss | 4 - src/components/app/FilteredResults.spec.tsx | 6 +- src/components/app/FilteredResults.tsx | 2 - src/components/app/Header.module.scss | 47 +++++ src/components/app/Header.tsx | 15 ++ src/components/app/HealthChart.module.scss | 9 + src/components/app/HealthChart.stories.tsx | 31 ++++ src/components/app/HealthChart.tsx | 48 +++++ src/components/app/ImplementationIcon.tsx | 12 ++ src/components/app/OSIcon.tsx | 11 +- src/components/app/RuntimeIcon.tsx | 11 +- src/components/app/SearchBar.module.scss | 106 ++++++----- src/components/app/SearchBar.spec.tsx | 16 +- src/components/app/SearchBar.tsx | 106 +++++------ .../app/StatusesSummary.module.scss | 9 +- src/components/app/StatusesSummary.spec.tsx | 2 +- src/components/app/StatusesSummary.tsx | 2 +- src/components/app/icons/CucumberLogo.tsx | 6 +- src/components/app/icons/Jvm.tsx | 6 +- src/components/app/icons/Linux.tsx | 6 +- src/components/app/icons/MacOS.tsx | 6 +- src/components/app/icons/NodeJs.tsx | 81 +-------- src/components/app/icons/Ruby.tsx | 6 +- src/components/app/icons/Windows.tsx | 6 +- src/components/app/makeSetupString.spec.ts | 31 ++++ src/components/app/makeSetupString.ts | 27 +++ src/components/app/statuses.ts | 12 -- src/countScenariosByStatuses.spec.ts | 4 +- src/countScenariosByStatuses.ts | 23 ++- src/hooks/useFilteredDocuments.ts | 4 +- src/statuses.ts | 12 ++ src/styles/statuses.scss | 8 + 43 files changed, 687 insertions(+), 440 deletions(-) create mode 100644 src/components/app/CopyButton.module.scss create mode 100644 src/components/app/CopyButton.spec.tsx create mode 100644 src/components/app/CopyButton.tsx create mode 100644 src/components/app/Header.module.scss create mode 100644 src/components/app/Header.tsx create mode 100644 src/components/app/HealthChart.module.scss create mode 100644 src/components/app/HealthChart.stories.tsx create mode 100644 src/components/app/HealthChart.tsx create mode 100644 src/components/app/ImplementationIcon.tsx create mode 100644 src/components/app/makeSetupString.spec.ts create mode 100644 src/components/app/makeSetupString.ts delete mode 100644 src/components/app/statuses.ts create mode 100644 src/statuses.ts create mode 100644 src/styles/statuses.scss diff --git a/package-lock.json b/package-lock.json index b0f55ab9..d72f0d9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4609,10 +4609,11 @@ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" }, "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==", - "dev": true + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "dev": true, + "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", diff --git a/src/ciCommitLink.spec.ts b/src/ciCommitLink.spec.ts index bdbf432b..a1d266da 100644 --- a/src/ciCommitLink.spec.ts +++ b/src/ciCommitLink.spec.ts @@ -40,7 +40,7 @@ describe('ciCommitLink(ci)', () => { name: 'SuperCI', } - expect(ciCommitLink(ci)).to.eq(null) + expect(ciCommitLink(ci)).to.eq(undefined) }) }) }) diff --git a/src/ciCommitLink.ts b/src/ciCommitLink.ts index 9cb9df07..2217eb55 100644 --- a/src/ciCommitLink.ts +++ b/src/ciCommitLink.ts @@ -1,8 +1,9 @@ -import * as messages from '@cucumber/messages' +import { Ci } from '@cucumber/messages' import toRepositoryId from './toRepositoryId.js' -export default function ciCommitLink(ci: messages.Ci): string | null { +// TODO move upstream to create-meta +export default function ciCommitLink(ci: Ci): string | undefined { if (ci.git && ci.git.remote) { const repositoryId = toRepositoryId(ci.git.remote) const github = repositoryId.startsWith('github.com') || ci.name === 'GitHub Actions' @@ -10,5 +11,4 @@ export default function ciCommitLink(ci: messages.Ci): string | null { return `https://${repositoryId}/commit/${ci.git.revision}` } } - return null } diff --git a/src/components/app/CICommitLink.tsx b/src/components/app/CICommitLink.tsx index ae83cad6..558c1c12 100644 --- a/src/components/app/CICommitLink.tsx +++ b/src/components/app/CICommitLink.tsx @@ -1,28 +1,34 @@ -import * as messages from '@cucumber/messages' -import { faLink } from '@fortawesome/free-solid-svg-icons' +import { Ci } from '@cucumber/messages' +import { faCodeCommit } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import React from 'react' +import React, { FC } from 'react' import ciCommitLink from '../../ciCommitLink.js' -interface IProps { - ci: messages.Ci -} +export const CICommitLink: FC<{ + ci: Ci +}> = ({ ci }) => { + if (!ci.git) { + return null + } -export const CICommitLink: React.FunctionComponent = ({ ci: ci }) => { + const shortHash = ci.git.revision.substring(0, 7) const commitLink = ciCommitLink(ci) - if (commitLink && ci.git?.remote) { + if (commitLink) { return ( <> - - Git Ref {ci.git.revision.substring(0, 7)} +