diff --git a/src/components/Components/ComponentBuildTrigger.tsx b/src/components/Components/ComponentBuildTrigger.tsx deleted file mode 100644 index 1ba41d12..00000000 --- a/src/components/Components/ComponentBuildTrigger.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import * as React from 'react'; -import { Button, ButtonVariant, Tooltip } from '@patternfly/react-core'; -import { PACState } from '../../hooks/usePACState'; - -type Props = { - pacState: PACState; -}; - -const ComponentBuildTrigger: React.FC> = ({ pacState }) => { - if (pacState === PACState.disabled) { - return ( - - - - ); - } - return ( - - - - ); -}; - -export default ComponentBuildTrigger; diff --git a/src/components/Components/ComponentDetails/__tests__/ComponentBuildSettings.spec.tsx b/src/components/Components/ComponentDetails/__tests__/ComponentBuildSettings.spec.tsx new file mode 100644 index 00000000..9c50735a --- /dev/null +++ b/src/components/Components/ComponentDetails/__tests__/ComponentBuildSettings.spec.tsx @@ -0,0 +1,23 @@ +import { PACState } from '../../../../hooks/usePACState'; +import { getHelpPopoverText, getBuildTriggerText } from '../tabs/ComponentBuildSettings'; + +describe('getHelpPopoverText', () => { + it('renders the correct help popover text for enabled PACState', () => { + expect(getHelpPopoverText(PACState.ready)).toBe( + 'A new build pipeline run is automatically triggered with every commit to the source code.', + ); + }); + + it('renders the correct help popover text for disabled PACState', () => { + expect(getHelpPopoverText(PACState.disabled)).toBe( + 'Trigger a new build manually from the component’s action menu. To enable an automatic trigger with every commit, upgrade to the Custom build pipeline plan.', + ); + }); +}); + +describe('getBuildTriggerText', () => { + it('renders the correct build trigger text based on PACState value', () => { + expect(getBuildTriggerText(PACState.disabled)).toBe('Manual'); + expect(getBuildTriggerText(PACState.ready)).toBe('Automatic'); + }); +}); diff --git a/src/components/Components/ComponentDetails/tabs/ComponentBuildSettings.tsx b/src/components/Components/ComponentDetails/tabs/ComponentBuildSettings.tsx index eb1cce6c..1396fca0 100644 --- a/src/components/Components/ComponentDetails/tabs/ComponentBuildSettings.tsx +++ b/src/components/Components/ComponentDetails/tabs/ComponentBuildSettings.tsx @@ -7,19 +7,31 @@ import { Flex, FlexItem, } from '@patternfly/react-core'; -import usePACState from '../../../../hooks/usePACState'; +import HelpPopover from '../../../../../src/components/HelpPopover'; +import usePACState, { PACState } from '../../../../hooks/usePACState'; import { ComponentKind } from '../../../../types'; import ComponentPACStateLabel from '../../../CustomizedPipeline/ComponentPACStateLabel'; -import ComponentBuildTrigger from '../../ComponentBuildTrigger'; type ComponentBuildSettingsProps = { component: ComponentKind; }; +export const getHelpPopoverText = (pacState) => { + return pacState === PACState.disabled + ? 'Trigger a new build manually from the component’s action menu. To enable an automatic trigger with every commit, upgrade to the Custom build pipeline plan.' + : 'A new build pipeline run is automatically triggered with every commit to the source code.'; +}; + +export const getBuildTriggerText = (pacState) => { + return pacState === PACState.disabled ? 'Manual' : 'Automatic'; +}; + const ComponentBuildSettings: React.FC> = ({ component, }) => { const pacState = usePACState(component); + const helpPopoverText = getHelpPopoverText(pacState); + const buildTriggerText = getBuildTriggerText(pacState); return ( <> @@ -45,10 +57,10 @@ const ComponentBuildSettings: React.FC - Build trigger - - - + + Build trigger + + {buildTriggerText} diff --git a/src/components/Components/ComponentsListView/ComponentsListHeader.tsx b/src/components/Components/ComponentsListView/ComponentsListHeader.tsx index 16d1e330..465da8d7 100644 --- a/src/components/Components/ComponentsListView/ComponentsListHeader.tsx +++ b/src/components/Components/ComponentsListView/ComponentsListHeader.tsx @@ -1,9 +1,7 @@ export const componentsTableColumnClasses = { - component: 'pf-m-width-30 wrap-column', - buildPipeline: 'pf-m-width-15', - buildTrigger: 'pf-m-width-15', - latestBuild: 'pf-m-width-30', - kebab: 'pf-m-width-10 component-list-view__actions', + component: 'pf-m-width-40 wrap-column', + latestBuild: 'pf-m-width-40', + kebab: 'pf-m-width-20 component-list-view__actions', }; const ComponentsListHeader = () => { @@ -12,14 +10,6 @@ const ComponentsListHeader = () => { title: 'Component', props: { className: componentsTableColumnClasses.component }, }, - { - title: 'Build pipeline plan', - props: { className: componentsTableColumnClasses.buildPipeline }, - }, - { - title: 'Build trigger', - props: { className: componentsTableColumnClasses.buildTrigger }, - }, { title: 'Latest build', props: { className: componentsTableColumnClasses.latestBuild }, diff --git a/src/components/Components/ComponentsListView/ComponentsListRow.tsx b/src/components/Components/ComponentsListView/ComponentsListRow.tsx index 6dbcfdc7..0926cc2d 100644 --- a/src/components/Components/ComponentsListView/ComponentsListRow.tsx +++ b/src/components/Components/ComponentsListView/ComponentsListRow.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { Link } from 'react-router-dom'; import { Button, Flex, FlexItem } from '@patternfly/react-core'; -import { PACState } from '../../../hooks/usePACState'; import { PacStatesForComponents } from '../../../hooks/usePACStatesForComponents'; import { RowFunctionArgs, TableData } from '../../../shared'; import ActionMenu from '../../../shared/components/action-menu/ActionMenu'; @@ -10,13 +9,11 @@ import { ComponentKind, PipelineRunKind } from '../../../types'; import { getCommitsFromPLRs } from '../../../utils/commits-utils'; import CommitLabel from '../../Commits/commit-label/CommitLabel'; import { ComponentRelationStatusIcon } from '../../ComponentRelation/details-page/ComponentRelationStatusIcon'; -import ComponentPACStateLabel from '../../CustomizedPipeline/ComponentPACStateLabel'; import GitRepoLink from '../../GitLink/GitRepoLink'; import { useBuildLogViewerModal } from '../../LogViewer/BuildLogViewer'; import PipelineRunStatus from '../../PipelineRun/PipelineRunStatus'; import { useWorkspaceInfo } from '../../Workspace/useWorkspaceInfo'; import { useComponentActions } from '../component-actions'; -import ComponentBuildTrigger from '../ComponentBuildTrigger'; import { componentsTableColumnClasses } from './ComponentsListHeader'; type ComponentWithLatestBuildPipeline = ComponentKind & { @@ -30,14 +27,12 @@ export const getContainerImageLink = (url: string) => { const ComponentsListRow: React.FC< RowFunctionArgs -> = ({ obj: component, customData }) => { +> = ({ obj: component }) => { const { workspace } = useWorkspaceInfo(); const applicationName = component.spec.application; const name = component.metadata.name; const actions = useComponentActions(component, name); - const { componentPACStates } = customData; const buildLogsModal = useBuildLogViewerModal(component); - const pacState = componentPACStates[name] ?? PACState.loading; const commit = React.useMemo( () => @@ -84,12 +79,6 @@ const ComponentsListRow: React.FC< )} - - - - - -