Skip to content

Commit dc8329e

Browse files
committed
fix(KFLUXUI-194): update usage of build trigger
Add a tooltip for build trigger details page. Remove two columns from the component activity page.
1 parent 8041520 commit dc8329e

File tree

6 files changed

+45
-66
lines changed

6 files changed

+45
-66
lines changed

src/components/Components/ComponentBuildTrigger.tsx

-34
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { PACState } from '../../../../hooks/usePACState';
2+
import { getHelpPopoverText, getBuildTriggerText } from '../tabs/ComponentBuildSettings';
3+
4+
describe('getHelpPopoverText', () => {
5+
it('renders the correct help popover text for enabled PACState', () => {
6+
expect(getHelpPopoverText(PACState.ready)).toBe(
7+
'A new build pipeline run is automatically triggered with every commit to the source code.',
8+
);
9+
});
10+
11+
it('renders the correct help popover text for disabled PACState', () => {
12+
expect(getHelpPopoverText(PACState.disabled)).toBe(
13+
'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.',
14+
);
15+
});
16+
});
17+
18+
describe('getBuildTriggerText', () => {
19+
it('renders the correct build trigger text based on PACState value', () => {
20+
expect(getBuildTriggerText(PACState.disabled)).toBe('Manual');
21+
expect(getBuildTriggerText(PACState.ready)).toBe('Automatic');
22+
});
23+
});

src/components/Components/ComponentDetails/tabs/ComponentBuildSettings.tsx

+18-6
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,31 @@ import {
77
Flex,
88
FlexItem,
99
} from '@patternfly/react-core';
10-
import usePACState from '../../../../hooks/usePACState';
10+
import HelpPopover from '../../../../../src/components/HelpPopover';
11+
import usePACState, { PACState } from '../../../../hooks/usePACState';
1112
import { ComponentKind } from '../../../../types';
1213
import ComponentPACStateLabel from '../../../CustomizedPipeline/ComponentPACStateLabel';
13-
import ComponentBuildTrigger from '../../ComponentBuildTrigger';
1414

1515
type ComponentBuildSettingsProps = {
1616
component: ComponentKind;
1717
};
1818

19+
export const getHelpPopoverText = (pacState) => {
20+
return pacState === PACState.disabled
21+
? '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.'
22+
: 'A new build pipeline run is automatically triggered with every commit to the source code.';
23+
};
24+
25+
export const getBuildTriggerText = (pacState) => {
26+
return pacState === PACState.disabled ? 'Manual' : 'Automatic';
27+
};
28+
1929
const ComponentBuildSettings: React.FC<React.PropsWithChildren<ComponentBuildSettingsProps>> = ({
2030
component,
2131
}) => {
2232
const pacState = usePACState(component);
33+
const helpPopoverText = getHelpPopoverText(pacState);
34+
const buildTriggerText = getBuildTriggerText(pacState);
2335

2436
return (
2537
<>
@@ -45,10 +57,10 @@ const ComponentBuildSettings: React.FC<React.PropsWithChildren<ComponentBuildSet
4557
}}
4658
>
4759
<DescriptionListGroup>
48-
<DescriptionListTerm>Build trigger</DescriptionListTerm>
49-
<DescriptionListDescription>
50-
<ComponentBuildTrigger pacState={pacState} />
51-
</DescriptionListDescription>
60+
<DescriptionListTerm>
61+
Build trigger <HelpPopover bodyContent={helpPopoverText} />
62+
</DescriptionListTerm>
63+
<DescriptionListDescription>{buildTriggerText}</DescriptionListDescription>
5264
</DescriptionListGroup>
5365
</DescriptionList>
5466
</FlexItem>

src/components/Components/ComponentsListView/ComponentListView.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,6 @@ const ComponentListView: React.FC<React.PropsWithChildren<ComponentListViewProps
252252
Header={ComponentsListHeader}
253253
Row={ComponentsListRow}
254254
loaded={componentsLoaded && pipelineRunsLoaded}
255-
customData={{ componentPACStates }}
256255
getRowProps={(obj: ComponentKind) => ({
257256
id: `${obj.metadata.name}-component-list-item`,
258257
'aria-label': obj.metadata.name,

src/components/Components/ComponentsListView/ComponentsListHeader.tsx

+3-13
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
export const componentsTableColumnClasses = {
2-
component: 'pf-m-width-30 wrap-column',
3-
buildPipeline: 'pf-m-width-15',
4-
buildTrigger: 'pf-m-width-15',
5-
latestBuild: 'pf-m-width-30',
6-
kebab: 'pf-m-width-10 component-list-view__actions',
2+
component: 'pf-m-width-40 wrap-column',
3+
latestBuild: 'pf-m-width-40',
4+
kebab: 'pf-m-width-20 component-list-view__actions',
75
};
86

97
const ComponentsListHeader = () => {
@@ -12,14 +10,6 @@ const ComponentsListHeader = () => {
1210
title: 'Component',
1311
props: { className: componentsTableColumnClasses.component },
1412
},
15-
{
16-
title: 'Build pipeline plan',
17-
props: { className: componentsTableColumnClasses.buildPipeline },
18-
},
19-
{
20-
title: 'Build trigger',
21-
props: { className: componentsTableColumnClasses.buildTrigger },
22-
},
2313
{
2414
title: 'Latest build',
2515
props: { className: componentsTableColumnClasses.latestBuild },

src/components/Components/ComponentsListView/ComponentsListRow.tsx

+1-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react';
22
import { Link } from 'react-router-dom';
33
import { Button, Flex, FlexItem } from '@patternfly/react-core';
4-
import { PACState } from '../../../hooks/usePACState';
54
import { PacStatesForComponents } from '../../../hooks/usePACStatesForComponents';
65
import { RowFunctionArgs, TableData } from '../../../shared';
76
import ActionMenu from '../../../shared/components/action-menu/ActionMenu';
@@ -10,13 +9,11 @@ import { ComponentKind, PipelineRunKind } from '../../../types';
109
import { getCommitsFromPLRs } from '../../../utils/commits-utils';
1110
import CommitLabel from '../../Commits/commit-label/CommitLabel';
1211
import { ComponentRelationStatusIcon } from '../../ComponentRelation/details-page/ComponentRelationStatusIcon';
13-
import ComponentPACStateLabel from '../../CustomizedPipeline/ComponentPACStateLabel';
1412
import GitRepoLink from '../../GitLink/GitRepoLink';
1513
import { useBuildLogViewerModal } from '../../LogViewer/BuildLogViewer';
1614
import PipelineRunStatus from '../../PipelineRun/PipelineRunStatus';
1715
import { useWorkspaceInfo } from '../../Workspace/useWorkspaceInfo';
1816
import { useComponentActions } from '../component-actions';
19-
import ComponentBuildTrigger from '../ComponentBuildTrigger';
2017
import { componentsTableColumnClasses } from './ComponentsListHeader';
2118

2219
type ComponentWithLatestBuildPipeline = ComponentKind & {
@@ -30,14 +27,12 @@ export const getContainerImageLink = (url: string) => {
3027

3128
const ComponentsListRow: React.FC<
3229
RowFunctionArgs<ComponentWithLatestBuildPipeline, PacStatesForComponents>
33-
> = ({ obj: component, customData }) => {
30+
> = ({ obj: component }) => {
3431
const { workspace } = useWorkspaceInfo();
3532
const applicationName = component.spec.application;
3633
const name = component.metadata.name;
3734
const actions = useComponentActions(component, name);
38-
const { componentPACStates } = customData;
3935
const buildLogsModal = useBuildLogViewerModal(component);
40-
const pacState = componentPACStates[name] ?? PACState.loading;
4136

4237
const commit = React.useMemo(
4338
() =>
@@ -84,12 +79,6 @@ const ComponentsListRow: React.FC<
8479
)}
8580
</Flex>
8681
</TableData>
87-
<TableData className={componentsTableColumnClasses.buildPipeline}>
88-
<ComponentPACStateLabel component={component} pacState={pacState} enableAction />
89-
</TableData>
90-
<TableData className={componentsTableColumnClasses.buildTrigger}>
91-
<ComponentBuildTrigger pacState={pacState} />
92-
</TableData>
9382
<TableData className={componentsTableColumnClasses.latestBuild}>
9483
<div className="component-list-view__build-completion">
9584
<PipelineRunStatus pipelineRun={component.latestBuildPipelineRun} />

0 commit comments

Comments
 (0)