Skip to content

Commit 188d73b

Browse files
committed
CONSOLE-3769: Remove isLoadedDynamicPluginInfo/isNotLoadedDynamicPluginInfo
1 parent 674c997 commit 188d73b

File tree

9 files changed

+28
-42
lines changed

9 files changed

+28
-42
lines changed

frontend/packages/console-app/src/components/console-operator/ConsoleOperatorConfig.tsx

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as React from 'react';
2+
import { PluginInfoEntry } from '@openshift/dynamic-plugin-sdk';
23
import { Alert, Button } from '@patternfly/react-core';
34
import { PencilAltIcon } from '@patternfly/react-icons/dist/esm/icons/pencil-alt-icon';
45
import {
@@ -39,11 +40,6 @@ import {
3940
referenceForModel,
4041
} from '@console/internal/module/k8s';
4142
import { RootState } from '@console/internal/redux';
42-
import {
43-
isLoadedDynamicPluginInfo,
44-
DynamicPluginInfo,
45-
isNotLoadedDynamicPluginInfo,
46-
} from '@console/plugin-sdk/src';
4743
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
4844
import PaneBody from '@console/shared/src/components/layout/PaneBody';
4945
import { consolePluginModal } from '@console/shared/src/components/modals/ConsolePluginModal';
@@ -309,14 +305,16 @@ const DevPluginsPage: React.FCC<ConsoleOperatorConfigPageProps> = (props) => {
309305
() =>
310306
!pluginInfoLoaded
311307
? []
312-
: pluginInfo.filter(isLoadedDynamicPluginInfo).map((plugin) => ({
313-
name: plugin.metadata.name,
314-
version: plugin.metadata.version,
315-
description: plugin.metadata?.customProperties?.console?.description,
316-
enabled: plugin.enabled,
317-
status: plugin.status,
318-
hasCSPViolations: cspViolations[plugin.metadata.name] ?? false,
319-
})),
308+
: pluginInfo
309+
.filter((plugin) => plugin?.status === 'loaded')
310+
.map((plugin) => ({
311+
name: plugin.metadata.name,
312+
version: plugin.metadata.version,
313+
description: plugin.metadata?.customProperties?.console?.description,
314+
enabled: plugin.enabled,
315+
status: plugin.status,
316+
hasCSPViolations: cspViolations[plugin.metadata.name] ?? false,
317+
})),
320318
[pluginInfo, pluginInfoLoaded, cspViolations],
321319
);
322320
return <ConsolePluginsTable {...props} rows={rows} loaded={pluginInfoLoaded} />;
@@ -342,10 +340,10 @@ const PluginsPage: React.FC<ConsoleOperatorConfigPageProps> = (props) => {
342340
const pluginName = plugin?.metadata?.name;
343341
const enabled = enabledPlugins.includes(pluginName);
344342
const loadedPluginInfo = pluginInfo
345-
.filter(isLoadedDynamicPluginInfo)
343+
.filter((p) => p?.status === 'loaded')
346344
.find((i) => i?.metadata?.name === pluginName);
347345
const notLoadedPluginInfo = pluginInfo
348-
.filter(isNotLoadedDynamicPluginInfo)
346+
.filter((p) => p?.status !== 'loaded')
349347
.find((i) => i?.pluginName === pluginName);
350348
if (loadedPluginInfo) {
351349
return {
@@ -443,7 +441,7 @@ type ConsolePluginsTableProps = ConsoleOperatorConfigPageProps & {
443441
};
444442

445443
type ConsolePluginStatusProps = {
446-
status: DynamicPluginInfo['status'];
444+
status: PluginInfoEntry['status'];
447445
errorMessage?: string;
448446
};
449447

frontend/packages/console-app/src/components/console-operator/ConsolePluginDescriptionDetail.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as React from 'react';
22
import { DetailsItemComponentProps } from '@console/dynamic-plugin-sdk/src/extensions/details-item';
3-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
43
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
54
import { DASH } from '@console/shared/src/constants';
65

@@ -11,14 +10,14 @@ const ConsolePluginDescriptionDetail: React.FC<DetailsItemComponentProps> = ({ o
1110
const pluginInfo = React.useMemo(
1211
() =>
1312
pluginInfoEntries.find((entry) =>
14-
isLoadedDynamicPluginInfo(entry)
13+
entry?.status === 'loaded'
1514
? entry.metadata.name === pluginName
1615
: entry.pluginName === pluginName,
1716
),
1817
[pluginInfoEntries, pluginName],
1918
);
2019

21-
return isLoadedDynamicPluginInfo(pluginInfo) ? (
20+
return pluginInfo?.status === 'loaded' ? (
2221
<>{pluginInfo.metadata.customProperties?.console?.description || DASH}</>
2322
) : (
2423
<>{DASH}</>

frontend/packages/console-app/src/components/console-operator/ConsolePluginEnabledStatusDetail.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react';
22
import { DASH } from '@console/dynamic-plugin-sdk/src/app/constants';
33
import { DetailsItemComponentProps } from '@console/dynamic-plugin-sdk/src/extensions/details-item';
4-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
54
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
65
import {
76
ConsolePluginEnabledStatus,
@@ -18,7 +17,7 @@ const ConsolePluginEnabledStatusDetail: React.FC<DetailsItemComponentProps> = ({
1817
const pluginInfo = React.useMemo(
1918
() =>
2019
pluginInfoEntries.find((entry) =>
21-
isLoadedDynamicPluginInfo(entry)
20+
entry?.status === 'loaded'
2221
? entry.metadata.name === pluginName
2322
: entry.pluginName === pluginName,
2423
),
@@ -28,12 +27,12 @@ const ConsolePluginEnabledStatusDetail: React.FC<DetailsItemComponentProps> = ({
2827
consoleOperatorConfig?.spec?.plugins,
2928
]);
3029

31-
return consoleOperatorConfigLoaded ? (
30+
return consoleOperatorConfigLoaded && pluginName ? (
3231
<ConsolePluginEnabledStatus
3332
pluginName={pluginName}
3433
enabled={
3534
developmentMode
36-
? (isLoadedDynamicPluginInfo(pluginInfo) && pluginInfo.enabled) ?? false
35+
? (pluginInfo?.status === 'loaded' && pluginInfo.enabled) ?? false
3736
: enabledPlugins.includes(pluginName) ?? false
3837
}
3938
/>

frontend/packages/console-app/src/components/console-operator/ConsolePluginStatusDetail.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as React from 'react';
22
import { DetailsItemComponentProps } from '@console/dynamic-plugin-sdk/src/extensions/details-item';
3-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
43
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
54
import { DASH } from '@console/shared/src/constants';
65
import { ConsolePluginStatus } from './ConsoleOperatorConfig';
@@ -12,7 +11,7 @@ const ConsolePluginStatusDetail: React.FC<DetailsItemComponentProps> = ({ obj })
1211
const pluginInfo = React.useMemo(
1312
() =>
1413
pluginInfoEntries.find((entry) =>
15-
isLoadedDynamicPluginInfo(entry)
14+
entry?.status === 'loaded'
1615
? entry.metadata.name === pluginName
1716
: entry.pluginName === pluginName,
1817
),

frontend/packages/console-app/src/components/console-operator/ConsolePluginVersionDetail.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import * as React from 'react';
22
import { DetailsItemComponentProps } from '@console/dynamic-plugin-sdk/src/extensions/details-item';
3-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
43
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
54
import { DASH } from '@console/shared/src/constants';
65

@@ -12,14 +11,14 @@ const ConsolePluginVersionDetail: React.FC<DetailsItemComponentProps> = ({ obj }
1211
const pluginInfo = React.useMemo(
1312
() =>
1413
pluginInfoEntries.find((entry) =>
15-
isLoadedDynamicPluginInfo(entry)
14+
entry?.status === 'loaded'
1615
? entry.metadata.name === pluginName
1716
: entry.pluginName === pluginName,
1817
),
1918
[pluginInfoEntries, pluginName],
2019
);
2120

22-
return isLoadedDynamicPluginInfo(pluginInfo) ? <>{pluginInfo.metadata.version}</> : <>{DASH}</>;
21+
return pluginInfo?.status === 'loaded' ? <>{pluginInfo.metadata.version}</> : <>{DASH}</>;
2322
};
2423

2524
export default ConsolePluginVersionDetail;

frontend/packages/console-app/src/components/dashboards-page/dynamic-plugins-health-resource/DynamicPluginsPopover.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { PluginCSPViolations } from '@console/internal/actions/ui';
88
import { ConsoleOperatorConfigModel, ConsolePluginModel } from '@console/internal/models';
99
import { ConsolePluginKind, referenceForModel } from '@console/internal/module/k8s';
1010
import { RootState } from '@console/internal/redux';
11-
import { isLoadedDynamicPluginInfo, isNotLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
1211
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
1312
import { StatusPopupSection } from '@console/shared/src/components/dashboard/status-card/StatusPopup';
1413
import NotLoadedDynamicPlugins from './NotLoadedDynamicPlugins';
@@ -19,10 +18,12 @@ const DynamicPluginsPopover: React.FC<DynamicPluginsPopoverProps> = ({ consolePl
1918
const cspViolations = useSelector<RootState, PluginCSPViolations>(({ UI }) =>
2019
UI.get('pluginCSPViolations'),
2120
);
22-
const notLoadedDynamicPluginInfo = pluginInfoEntries.filter(isNotLoadedDynamicPluginInfo);
21+
const notLoadedDynamicPluginInfo = pluginInfoEntries.filter(
22+
(plugin) => plugin?.status !== 'loaded',
23+
);
2324
const failedPlugins = notLoadedDynamicPluginInfo.filter((plugin) => plugin.status === 'failed');
2425
const pendingPlugins = notLoadedDynamicPluginInfo.filter((plugin) => plugin.status === 'pending');
25-
const loadedPlugins = pluginInfoEntries.filter(isLoadedDynamicPluginInfo);
26+
const loadedPlugins = pluginInfoEntries.filter((plugin) => plugin?.status === 'loaded');
2627
const loadedPluginsWithCSPViolations = loadedPlugins.filter(
2728
(plugin) => cspViolations[plugin.metadata.name] ?? false,
2829
);

frontend/packages/console-app/src/hooks/useCSPViolationDetector.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { useTranslation } from 'react-i18next';
55
import { useDispatch, useSelector } from 'react-redux';
66
import { setPluginCSPViolations, PluginCSPViolations } from '@console/internal/actions/ui';
77
import { RootState } from '@console/internal/redux';
8-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
98
import { usePluginStore } from '@console/plugin-sdk/src/api/usePluginStore';
109
import { useToast } from '@console/shared/src/components/toast';
1110
import { IS_PRODUCTION } from '@console/shared/src/constants/common';
@@ -104,7 +103,7 @@ export const useCSPViolationDetector = () => {
104103
const pluginInfo = pluginStore
105104
.getPluginInfo()
106105
.find((entry) =>
107-
isLoadedDynamicPluginInfo(entry)
106+
entry?.status === 'loaded'
108107
? entry.metadata.name === pluginName
109108
: entry.pluginName === pluginName,
110109
);

frontend/packages/console-plugin-sdk/src/store.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ export const getGatingFlagNames = (extensions: Extension[]): string[] =>
3232
..._.flatMap(extensions.map((e) => e.flags.disallowed)),
3333
]);
3434

35-
export const isLoadedDynamicPluginInfo = (i: DynamicPluginInfo): i is LoadedDynamicPluginInfo =>
36-
i?.status === 'loaded';
37-
38-
export const isNotLoadedDynamicPluginInfo = (
39-
i: DynamicPluginInfo,
40-
): i is NotLoadedDynamicPluginInfo => i.status === 'failed' || i.status === 'pending';
41-
4235
/**
4336
* Provides access to Console plugins and their extensions.
4437
*

frontend/public/components/about-modal.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { Trans, useTranslation } from 'react-i18next';
1010
import { useClusterVersion } from '@console/shared/src/hooks/version';
1111
import { BlueArrowCircleUpIcon } from '@console/shared/src/components/status/icons';
1212
import { useCanClusterUpgrade } from '@console/shared/src/hooks/useCanClusterUpgrade';
13-
import { isLoadedDynamicPluginInfo } from '@console/plugin-sdk/src';
1413
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
1514
import { getBrandingDetails, MASTHEAD_TYPE, useCustomLogoURL } from './utils/branding';
1615
import { ReleaseNotesLink } from './utils/release-notes-link';
@@ -37,7 +36,7 @@ const DynamicPlugins: React.FC = () => {
3736
const [items, setItems] = React.useState([]);
3837

3938
React.useEffect(() => {
40-
const loadedPlugins = pluginInfoEntries.filter(isLoadedDynamicPluginInfo);
39+
const loadedPlugins = pluginInfoEntries.filter((plugin) => plugin?.status === 'loaded');
4140
const sortedLoadedPlugins = loadedPlugins.sort((a, b) =>
4241
a.metadata.name.localeCompare(b.metadata.name),
4342
);

0 commit comments

Comments
 (0)