Skip to content

Commit 3f438a0

Browse files
committed
Address review comments
1 parent d9d1b09 commit 3f438a0

File tree

9 files changed

+65
-51
lines changed

9 files changed

+65
-51
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,8 @@
582582
"Source": "Source",
583583
"VolumeSnapshotContent": "VolumeSnapshotContent",
584584
"Snapshot content": "Snapshot content",
585+
"Pending": "Pending",
586+
"Error": "Error",
585587
"Recommended": "Recommended",
586588
"Container name": "Container name",
587589
"VerticalPodAutoscalers": "VerticalPodAutoscalers",

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as React from 'react';
2+
import { TFunction } from 'i18next';
23
import { useTranslation } from 'react-i18next';
34
import {
45
actionsCellProps,
@@ -38,7 +39,10 @@ export const isDefaultSnapshotClass = (volumeSnapshotClass: VolumeSnapshotClassK
3839
defaultSnapshotClassAnnotation
3940
] === 'true';
4041

41-
const getDataViewRows: GetDataViewRows<VolumeSnapshotClassKind> = (data, columns) => {
42+
const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows<VolumeSnapshotClassKind> = (t) => (
43+
data,
44+
columns,
45+
) => {
4246
return data.map(({ obj }) => {
4347
const name = obj.metadata?.name || '';
4448
const { deletionPolicy, driver } = obj;
@@ -50,7 +54,7 @@ const getDataViewRows: GetDataViewRows<VolumeSnapshotClassKind> = (data, columns
5054
<ResourceLink name={name} kind={kind}>
5155
{isDefaultSnapshotClass(obj) && (
5256
<span className="pf-v6-u-font-size-xs pf-v6-u-text-color-subtle co-resource-item__help-text">
53-
&ndash; Default
57+
&ndash; {t('console-app~Default')}
5458
</span>
5559
)}
5660
</ResourceLink>
@@ -123,7 +127,9 @@ const VolumeSnapshotClassTable: React.FCC<VolumeSnapshotClassTableProps> = ({
123127
loaded,
124128
...props
125129
}) => {
130+
const { t } = useTranslation();
126131
const columns = useVolumeSnapshotClassColumns();
132+
const getDataViewRows = React.useMemo(() => getDataViewRowsCreator(t), [t]);
127133

128134
return (
129135
<React.Suspense fallback={<LoadingBox />}>

frontend/packages/container-security/src/components/image-manifest-vuln.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,6 @@ export type ImageManifestVulnDetailsProps = {
442442
obj: ImageManifestVuln;
443443
};
444444

445-
export type ImageManifestVulnListTableHeaderProps = {};
446-
447445
export type AffectedPodsProps = {
448446
obj: ImageManifestVuln;
449447
};

frontend/public/components/custom-resource-definition.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -355,9 +355,7 @@ export const CustomResourceDefinitionsList: React.FCC<CustomResourceDefinitionsL
355355
);
356356
};
357357

358-
export const CustomResourceDefinitionsPage: React.FC<CustomResourceDefinitionsPageProps> = (
359-
props,
360-
) => (
358+
export const CustomResourceDefinitionsPage: React.FC = (props) => (
361359
<ListPage
362360
{...props}
363361
ListComponent={CustomResourceDefinitionsList}
@@ -397,8 +395,6 @@ export type CustomResourceDefinitionsListProps = {
397395
loaded: boolean;
398396
};
399397

400-
export type CustomResourceDefinitionsPageProps = {};
401-
402398
type InstancesProps = {
403399
obj: CustomResourceDefinitionKind;
404400
namespace: string;

frontend/public/components/masthead/masthead-toolbar.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,11 @@ interface MastheadToolbarContentsProps {
139139
isMastheadStacked: boolean;
140140
}
141141

142+
// TODO remove this code, the plugin should use an appropriate extension
143+
const isTroubleshootingPanelPluginActive =
144+
Array.isArray(window.SERVER_FLAGS.consolePlugins) &&
145+
window.SERVER_FLAGS.consolePlugins.includes('troubleshooting-panel-console-plugin');
146+
142147
// TODO break this down into smaller components and hooks
143148
const MastheadToolbarContents: React.FCC<MastheadToolbarContentsProps> = ({
144149
consoleLinks,
@@ -243,9 +248,6 @@ const MastheadToolbarContents: React.FCC<MastheadToolbarContentsProps> = ({
243248
};
244249

245250
const getLaunchActions = () => {
246-
const isTroubleshootingPanelEnabled = Array.isArray(window.SERVER_FLAGS.consolePlugins)
247-
? window.SERVER_FLAGS.consolePlugins.includes('troubleshooting-panel-console-plugin')
248-
: false;
249251
const launcherItems = getAdditionalLinks(consoleLinks, 'ApplicationMenu');
250252

251253
const sections: MastheadSection[] = [];
@@ -287,7 +289,7 @@ const MastheadToolbarContents: React.FCC<MastheadToolbarContentsProps> = ({
287289
}
288290

289291
// This should be removed when the extension to add items to the masthead is implemented: https://issues.redhat.com/browse/OU-488
290-
if (isTroubleshootingPanelEnabled && activePerspective === 'admin') {
292+
if (isTroubleshootingPanelPluginActive && activePerspective === 'admin') {
291293
sections.push({
292294
name: t('public~Troubleshooting'),
293295
isSection: true,

frontend/public/components/persistent-volume-claim.tsx

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import * as _ from 'lodash-es';
21
import * as React from 'react';
3-
import i18next from 'i18next';
2+
import * as _ from 'lodash-es';
3+
import i18next, { TFunction } from 'i18next';
44
import { useTranslation } from 'react-i18next';
55
import { useDispatch, useSelector } from 'react-redux';
66
import {
@@ -48,7 +48,7 @@ import { useFlag } from '@console/shared/src/hooks/flag';
4848
import PaneBody from '@console/shared/src/components/layout/PaneBody';
4949
import { DASH } from '@console/shared/src/constants/ui';
5050
import { Conditions } from './conditions';
51-
import { DetailsPage } from './factory/details';
51+
import { DetailsPage, DetailsPageProps } from './factory/details';
5252
import { ListPage } from './factory/list-page';
5353
import { navFactory } from './utils/horizontal-nav';
5454
import { SectionHeading } from './utils/headings';
@@ -102,12 +102,10 @@ export const PVCStatusComponent: React.FCC<PVCStatusProps> = ({ pvc }) => {
102102
);
103103
};
104104

105-
const getDataViewRows: GetDataViewRows<PersistentVolumeClaimKind> = (data, columns) => {
106-
/* eslint-disable react-hooks/rules-of-hooks */
107-
const { t } = useTranslation();
108-
const pvcMetrics = useSelector<RootState, PVCMetrics>(({ UI }) => UI.getIn(['metrics', 'pvc']));
109-
/* eslint-enable react-hooks/rules-of-hooks */
110-
105+
const getDataViewRowsCreator: (
106+
t: TFunction,
107+
pvcMetrics: PVCMetrics,
108+
) => GetDataViewRows<PersistentVolumeClaimKind> = (t, pvcMetrics) => (data, columns) => {
111109
return data.map(({ obj }) => {
112110
const metrics = pvcMetrics?.usedCapacity?.[getNamespace(obj)]?.[getName(obj)];
113111
const [name, namespace] = [getName(obj), getNamespace(obj)];
@@ -424,6 +422,12 @@ export const PersistentVolumeClaimList: React.FCC<PersistentVolumeClaimListProps
424422
}) => {
425423
const { t } = useTranslation();
426424
const columns = usePersistentVolumeClaimColumns();
425+
const pvcMetrics = useSelector<RootState, PVCMetrics>(({ UI }) => UI.getIn(['metrics', 'pvc']));
426+
427+
const getDataViewRows = React.useMemo(() => getDataViewRowsCreator(t, pvcMetrics), [
428+
t,
429+
pvcMetrics,
430+
]);
427431

428432
const pvcStatusFilterOptions = React.useMemo<DataViewFilterOption[]>(
429433
() => [
@@ -561,8 +565,9 @@ export const PersistentVolumeClaimsPage: React.FCC<PersistentVolumeClaimsPagePro
561565
);
562566
};
563567

564-
export const PersistentVolumeClaimsDetailsPage = (props) => {
568+
export const PersistentVolumeClaimsDetailsPage: React.FCC<DetailsPageProps> = (props) => {
565569
const { t } = useTranslation();
570+
566571
const customActionMenu = (kindObj, obj) => {
567572
const resourceKind = referenceFor(kindObj);
568573
const context = { [resourceKind]: obj };

frontend/public/components/persistent-volume.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import * as _ from 'lodash-es';
21
import * as React from 'react';
2+
import * as _ from 'lodash-es';
3+
import { TFunction } from 'i18next';
34
import { useTranslation } from 'react-i18next';
45
import {
56
DescriptionList,
@@ -52,11 +53,10 @@ const PVStatus = ({ pv }: { pv: PersistentVolumeKind }) => (
5253
<Status status={pv.metadata.deletionTimestamp ? 'Terminating' : pv.status.phase} />
5354
);
5455

55-
const getDataViewRows: GetDataViewRows<PersistentVolumeKind> = (data, columns) => {
56-
/* eslint-disable react-hooks/rules-of-hooks */
57-
const { t } = useTranslation();
58-
/* eslint-enable react-hooks/rules-of-hooks */
59-
56+
const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows<PersistentVolumeKind> = (t) => (
57+
data,
58+
columns,
59+
) => {
6060
return data.map(({ obj }) => {
6161
const name = obj.metadata?.name || '';
6262
const namespace = obj.metadata?.namespace || '';
@@ -250,7 +250,9 @@ export const PersistentVolumeList: React.FCC<PersistentVolumeListProps> = ({
250250
loaded,
251251
...props
252252
}) => {
253+
const { t } = useTranslation();
253254
const columns = usePersistentVolumeColumns();
255+
const getDataViewRows = React.useMemo(() => getDataViewRowsCreator(t), [t]);
254256

255257
return (
256258
<React.Suspense fallback={<LoadingBox />}>
@@ -282,7 +284,7 @@ export const PersistentVolumesPage = (props: ListPageProps) => {
282284
);
283285
};
284286

285-
export const PersistentVolumesDetailsPage = (props: DetailsPageProps) => (
287+
export const PersistentVolumesDetailsPage: React.FCC<DetailsPageProps> = (props) => (
286288
<DetailsPage
287289
{...props}
288290
kind={persistentVolumeReference}

frontend/public/components/storage-class.tsx

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import * as _ from 'lodash-es';
21
import * as React from 'react';
2+
import * as _ from 'lodash-es';
3+
import { TFunction } from 'i18next';
34
import {
45
DescriptionList,
56
DescriptionListDescription,
@@ -25,7 +26,7 @@ import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMen
2526
import PaneBody from '@console/shared/src/components/layout/PaneBody';
2627
import { LoadingBox } from '@console/shared/src/components/loading/LoadingBox';
2728
import { DASH } from '@console/shared/src/constants/ui';
28-
import { DetailsPage } from './factory/details';
29+
import { DetailsPage, DetailsPageProps } from './factory/details';
2930
import { ListPage } from './factory/list-page';
3031
import { DetailsItem } from './utils/details-item';
3132
import { ResourceLink } from './utils/resource-link';
@@ -65,15 +66,15 @@ const isDefaultVirtClass = (storageClass: K8sResourceKind) => {
6566
return annotations[defaultVirtClassAnnotation] === 'true';
6667
};
6768

68-
const getDataViewRows: GetDataViewRows<StorageClassResourceKind> = (data, columns) => {
69-
/* eslint-disable react-hooks/rules-of-hooks */
70-
const { t } = useTranslation();
71-
/* eslint-enable react-hooks/rules-of-hooks */
72-
73-
const isKubevirtPluginActive =
74-
Array.isArray(window.SERVER_FLAGS.consolePlugins) &&
75-
window.SERVER_FLAGS.consolePlugins.includes('kubevirt-plugin');
69+
// TODO remove this code, the plugin should use an appropriate extension
70+
const isKubevirtPluginActive =
71+
Array.isArray(window.SERVER_FLAGS.consolePlugins) &&
72+
window.SERVER_FLAGS.consolePlugins.includes('kubevirt-plugin');
7673

74+
const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows<StorageClassResourceKind> = (t) => (
75+
data,
76+
columns,
77+
) => {
7778
return data.map(({ obj }) => {
7879
const name = obj.metadata?.name || '';
7980
const context = { [referenceFor(obj)]: obj };
@@ -158,7 +159,9 @@ const useStorageClassColumns = (): TableColumn<StorageClassResourceKind>[] => {
158159
};
159160

160161
export const StorageClassList: React.FCC<StorageClassListProps> = ({ data, loaded, ...props }) => {
162+
const { t } = useTranslation();
161163
const columns = useStorageClassColumns();
164+
const getDataViewRows = React.useMemo(() => getDataViewRowsCreator(t), [t]);
162165

163166
return (
164167
<React.Suspense fallback={<LoadingBox />}>
@@ -208,7 +211,7 @@ const StorageClassDetails: React.FCC<StorageClassDetailsProps> = ({ obj }) => {
208211
);
209212
};
210213

211-
export const StorageClassPage: React.FCC<StorageClassPageProps> = ({ ...props }) => {
214+
export const StorageClassPage: React.FCC = ({ ...props }) => {
212215
const { t } = useTranslation();
213216

214217
const createProps = {
@@ -229,7 +232,7 @@ export const StorageClassPage: React.FCC<StorageClassPageProps> = ({ ...props })
229232
);
230233
};
231234

232-
export const StorageClassDetailsPage: React.FCC = (props) => {
235+
export const StorageClassDetailsPage: React.FCC<DetailsPageProps> = (props) => {
233236
const pages = [navFactory.details(detailsPage(StorageClassDetails)), navFactory.editYaml()];
234237

235238
const customActionMenu = (kindObj, obj) => {
@@ -255,8 +258,6 @@ type StorageClassListProps = {
255258
loadError: unknown;
256259
};
257260

258-
export type StorageClassDetailsProps = {
259-
obj: any;
261+
type StorageClassDetailsProps = {
262+
obj: StorageClassResourceKind;
260263
};
261-
262-
export type StorageClassPageProps = {};

frontend/public/locales/en/public.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,27 +1106,30 @@
11061106
"Recommendations": "Recommendations",
11071107
"Notifications in the recommendations group": "Notifications in the recommendations group",
11081108
"No PersistentVolume": "No PersistentVolume",
1109+
"PersistentVolume": "PersistentVolume",
1110+
"Capacity": "Capacity",
11091111
"Used": "Used",
1112+
"StorageClass": "StorageClass",
11101113
"Total": "Total",
11111114
"PersistentVolumeClaim details": "PersistentVolumeClaim details",
11121115
"Available versus used capacity": "Available versus used capacity",
11131116
"Total capacity": "Total capacity",
11141117
"Label selector": "Label selector",
11151118
"Requested capacity": "Requested capacity",
1116-
"Capacity": "Capacity",
11171119
"Access modes": "Access modes",
11181120
"Volume mode": "Volume mode",
11191121
"StorageClasses": "StorageClasses",
11201122
"VolumeAttributesClass": "VolumeAttributesClass",
11211123
"PersistentVolumes": "PersistentVolumes",
1122-
"StorageClass": "StorageClass",
1124+
"Bound": "Bound",
1125+
"Lost": "Lost",
11231126
"PersistentVolumeClaims": "PersistentVolumeClaims",
11241127
"No claim": "No claim",
1128+
"Claim": "Claim",
11251129
"PersistentVolume details": "PersistentVolume details",
11261130
"Reclaim policy": "Reclaim policy",
11271131
"PersistentVolumeClaim": "PersistentVolumeClaim",
11281132
"NFS-export": "NFS-export",
1129-
"Claim": "Claim",
11301133
"The terminal connection has closed.": "The terminal connection has closed.",
11311134
"Reconnect": "Reconnect",
11321135
"Connecting to": "Connecting to",
@@ -1351,9 +1354,9 @@
13511354
"Select Provisioner": "Select Provisioner",
13521355
"Determines what volume plugin is used for provisioning PersistentVolumes.": "Determines what volume plugin is used for provisioning PersistentVolumes.",
13531356
"Allow PersistentVolumeClaims to be expanded": "Allow PersistentVolumeClaims to be expanded",
1357+
"Default for VirtualMachines": "Default for VirtualMachines",
13541358
"StorageClass details": "StorageClass details",
13551359
"Default class": "Default class",
1356-
"Default for VirtualMachines": "Default for VirtualMachines",
13571360
"Create StorageClass": "Create StorageClass",
13581361
"Device path is already in use.": "Device path is already in use.",
13591362
"Use existing claim": "Use existing claim",
@@ -1602,7 +1605,6 @@
16021605
"ResourceAccessReviews": "ResourceAccessReviews",
16031606
"LocalResourceAccessReview": "LocalResourceAccessReview",
16041607
"LocalResourceAccessReviews": "LocalResourceAccessReviews",
1605-
"PersistentVolume": "PersistentVolume",
16061608
"StatefulSet": "StatefulSet",
16071609
"StatefulSets": "StatefulSets",
16081610
"ResourceQuota": "ResourceQuota",

0 commit comments

Comments
 (0)