Skip to content

Commit f0cb82b

Browse files
Merge pull request #15719 from vikram-raj/console-4709-console-app
CONSOLE-4709: Remove kebab factory uses from console-app plugin
2 parents 1fe9940 + bcade04 commit f0cb82b

File tree

8 files changed

+57
-22
lines changed

8 files changed

+57
-22
lines changed

frontend/packages/console-app/console-extensions.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,6 +1316,28 @@
13161316
},
13171317
"flags": { "required": ["OPENSHIFT_BUILD"] }
13181318
},
1319+
{
1320+
"type": "console.action/resource-provider",
1321+
"properties": {
1322+
"model": {
1323+
"group": "config.openshift.io",
1324+
"version": "v1",
1325+
"kind": "OAuth"
1326+
},
1327+
"provider": { "$codeRef": "defaultProvider.useDefaultActionsProvider" }
1328+
}
1329+
},
1330+
{
1331+
"type": "console.action/resource-provider",
1332+
"properties": {
1333+
"model": {
1334+
"group": "snapshot.storage.k8s.io",
1335+
"version": "v1",
1336+
"kind": "VolumeSnapshotContent"
1337+
},
1338+
"provider": { "$codeRef": "defaultProvider.useDefaultActionsProvider" }
1339+
}
1340+
},
13191341
{
13201342
"type": "console.navigation/resource-ns",
13211343
"properties": {

frontend/packages/console-app/locales/en/console-app.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211
"Edit Pod count": "Edit Pod count",
212212
"Edit Pod selector": "Edit Pod selector",
213213
"Edit tolerations": "Edit tolerations",
214+
"Edit taints": "Edit taints",
214215
"Add storage": "Add storage",
215216
"Edit update strategy": "Edit update strategy",
216217
"Resume rollouts": "Resume rollouts",

frontend/packages/console-app/src/actions/hooks/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export enum CommonActionCreator {
1212
ModifyCount = 'ModifyCount',
1313
ModifyPodSelector = 'ModifyPodSelector',
1414
ModifyTolerations = 'ModifyTolerations',
15+
ModifyTaints = 'ModifyTaints',
1516
AddStorage = 'AddStorage',
1617
}
1718

frontend/packages/console-app/src/actions/hooks/useCommonActions.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
deleteModal,
88
labelsModalLauncher,
99
podSelectorModal,
10+
taintsModal,
1011
tolerationsModal,
1112
} from '@console/internal/components/modals';
1213
import { useConfigureCountModal } from '@console/internal/components/modals/configure-count-modal';
@@ -146,6 +147,16 @@ export const useCommonActions = <T extends readonly CommonActionCreator[]>(
146147
}),
147148
accessReview: asAccessReview(kind as K8sModel, resource as K8sResourceKind, 'patch'),
148149
}),
150+
[CommonActionCreator.ModifyTaints]: (): Action => ({
151+
id: 'edit-taints',
152+
label: t('console-app~Edit taints'),
153+
cta: () =>
154+
taintsModal({
155+
resourceKind: kind,
156+
resource,
157+
}),
158+
accessReview: asAccessReview(kind as K8sModel, resource as K8sResourceKind, 'patch'),
159+
}),
149160
[CommonActionCreator.AddStorage]: (): Action => ({
150161
id: 'add-storage',
151162
label: t('console-app~Add storage'),

frontend/packages/console-app/src/components/nodes/NodeDetailsOverview.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import {
1717
} from '@console/internal/components/utils/cloud-provider';
1818
import { DetailsItem } from '@console/internal/components/utils/details-item';
1919
import { SectionHeading } from '@console/internal/components/utils/headings';
20-
import { Kebab } from '@console/internal/components/utils/kebab';
2120
import { LabelList } from '@console/internal/components/utils/label-list';
2221
import { useAccessReview } from '@console/internal/components/utils/rbac';
2322
import { ResourceLink } from '@console/internal/components/utils/resource-link';
@@ -30,6 +29,8 @@ import {
3029
getNodeMachineNameAndNamespace,
3130
getNodeAddresses,
3231
} from '@console/shared/src/selectors/node';
32+
import { CommonActionCreator } from '../../actions/hooks/types';
33+
import { useCommonActions } from '../../actions/hooks/useCommonActions';
3334
import NodeUptime from './node-dashboard/NodeUptime';
3435
import NodeIPList from './NodeIPList';
3536
import NodeStatus from './NodeStatus';
@@ -49,6 +50,10 @@ const NodeDetailsOverview: React.FC<NodeDetailsOverviewProps> = ({ node }) => {
4950
namespace: node.metadata.namespace,
5051
});
5152
const { t } = useTranslation();
53+
const [modifyTaints] = useCommonActions(NodeModel, node, [CommonActionCreator.ModifyTaints]);
54+
const [modifyAnnotations] = useCommonActions(NodeModel, node, [
55+
CommonActionCreator.ModifyAnnotations,
56+
]);
5257

5358
return (
5459
<PaneBody>
@@ -104,7 +109,12 @@ const NodeDetailsOverview: React.FC<NodeDetailsOverviewProps> = ({ node }) => {
104109
variant="link"
105110
type="button"
106111
isInline
107-
onClick={Kebab.factory.ModifyTaints(NodeModel, node).callback}
112+
onClick={() => {
113+
const action = modifyTaints[CommonActionCreator.ModifyTaints]?.cta;
114+
if (typeof action === 'function') {
115+
action();
116+
}
117+
}}
108118
>
109119
{_.size(node.spec.taints)}{' '}
110120
{t('console-app~Taint', { count: _.size(node.spec.taints) })}
@@ -127,7 +137,12 @@ const NodeDetailsOverview: React.FC<NodeDetailsOverviewProps> = ({ node }) => {
127137
variant="link"
128138
type="button"
129139
isInline
130-
onClick={Kebab.factory.ModifyAnnotations(NodeModel, node).callback}
140+
onClick={() => {
141+
const action = modifyAnnotations[CommonActionCreator.ModifyAnnotations]?.cta;
142+
if (typeof action === 'function') {
143+
action();
144+
}
145+
}}
131146
>
132147
{_.size(node.metadata.annotations)}{' '}
133148
{t('console-app~Annotation', { count: _.size(node.metadata.annotations) })}

frontend/packages/console-app/src/components/oauth-config/OAuthConfigDetailsPage.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
import * as React from 'react';
22
import { DetailsPage } from '@console/internal/components/factory';
33
import { navFactory } from '@console/internal/components/utils/horizontal-nav';
4-
import { Kebab } from '@console/internal/components/utils/kebab';
54
import { OAuthModel } from '@console/internal/models';
65
import { referenceForModel } from '@console/internal/module/k8s';
76
import { OAuthConfigDetails } from './OAuthConfigDetails';
87

9-
const { common } = Kebab.factory;
10-
const menuActions = [...common];
118
const oAuthReference = referenceForModel(OAuthModel);
129

1310
const OAuthConfigDetailsPage: React.FC<React.ComponentProps<typeof DetailsPage>> = (props) => (
1411
<DetailsPage
1512
{...props}
1613
kind={oAuthReference}
17-
menuActions={menuActions}
1814
pages={[navFactory.details(OAuthConfigDetails), navFactory.editYaml()]}
1915
/>
2016
);

frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content-details.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { DetailsPage, DetailsPageProps } from '@console/internal/components/fact
1313
import { ResourceSummary } from '@console/internal/components/utils/details-page';
1414
import { SectionHeading } from '@console/internal/components/utils/headings';
1515
import { navFactory } from '@console/internal/components/utils/horizontal-nav';
16-
import { Kebab } from '@console/internal/components/utils/kebab';
1716
import { ResourceLink } from '@console/internal/components/utils/resource-link';
1817
import { humanizeBinaryBytes } from '@console/internal/components/utils/units';
1918
import { VolumeSnapshotClassModel, VolumeSnapshotModel } from '@console/internal/models';
@@ -112,14 +111,7 @@ const VolumeSnapshotContentDetailsPage: React.FC<DetailsPageProps> = (props) =>
112111
editYaml(),
113112
events(ResourceEventStream),
114113
];
115-
return (
116-
<DetailsPage
117-
{...props}
118-
getResourceStatus={volumeSnapshotStatus}
119-
menuActions={Kebab.factory.common}
120-
pages={pages}
121-
/>
122-
);
114+
return <DetailsPage {...props} getResourceStatus={volumeSnapshotStatus} pages={pages} />;
123115
};
124116

125117
type DetailsProps = {

frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { TableData } from '@console/internal/components/factory';
1616
import { useActiveColumns } from '@console/internal/components/factory/Table/active-columns-hook';
1717
import type { PageComponentProps } from '@console/internal/components/utils/horizontal-nav';
1818
import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watch-hook';
19-
import { Kebab, ResourceKebab } from '@console/internal/components/utils/kebab';
19+
import { Kebab } from '@console/internal/components/utils/kebab';
2020
import { ResourceLink } from '@console/internal/components/utils/resource-link';
2121
import { humanizeBinaryBytes } from '@console/internal/components/utils/units';
2222
import {
@@ -25,6 +25,7 @@ import {
2525
VolumeSnapshotContentModel,
2626
} from '@console/internal/models';
2727
import { referenceForModel, VolumeSnapshotContentKind } from '@console/internal/module/k8s';
28+
import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMenu';
2829
import { Timestamp } from '@console/shared/src/components/datetime/Timestamp';
2930
import { Status } from '@console/shared/src/components/status/Status';
3031
import { snapshotStatusFilters, volumeSnapshotStatus } from '../../status';
@@ -73,11 +74,7 @@ const Row: React.FC<RowProps<VolumeSnapshotContentKind>> = ({ obj }) => {
7374
<Timestamp timestamp={creationTimestamp} />
7475
</TableData>
7576
<TableData {...tableColumnInfo[6]}>
76-
<ResourceKebab
77-
kind={referenceForModel(VolumeSnapshotContentModel)}
78-
resource={obj}
79-
actions={Kebab.factory.common}
80-
/>
77+
<LazyActionMenu context={{ [referenceForModel(VolumeSnapshotContentModel)]: obj }} />
8178
</TableData>
8279
</>
8380
);

0 commit comments

Comments
 (0)