Skip to content

Commit 23217fa

Browse files
committed
CONSOLE-3769: Remove allPluginsProcessedRef from usePluginInfo
because it is not in the SDK
1 parent 188d73b commit 23217fa

File tree

10 files changed

+36
-40
lines changed

10 files changed

+36
-40
lines changed

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

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watc
3131
import { KebabAction } from '@console/internal/components/utils/kebab';
3232
import { asAccessReview, RequireCreatePermission } from '@console/internal/components/utils/rbac';
3333
import { ResourceLink } from '@console/internal/components/utils/resource-link';
34-
import { EmptyBox, LoadingBox } from '@console/internal/components/utils/status-box';
34+
import { EmptyBox } from '@console/internal/components/utils/status-box';
3535
import { ConsoleOperatorConfigModel, ConsolePluginModel } from '@console/internal/models';
3636
import {
3737
ConsolePluginKind,
@@ -155,7 +155,7 @@ export const ConsolePluginCSPStatus: React.FC<ConsolePluginCSPStatusProps> = ({
155155
);
156156
};
157157

158-
const ConsolePluginsTable: React.FC<ConsolePluginsTableProps> = ({ obj, rows, loaded }) => {
158+
const ConsolePluginsTable: React.FC<ConsolePluginsTableProps> = ({ obj, rows }) => {
159159
const { t } = useTranslation();
160160

161161
const [sortBy, setSortBy] = React.useState<ISortBy>(() => ({
@@ -219,9 +219,7 @@ const ConsolePluginsTable: React.FC<ConsolePluginsTableProps> = ({ obj, rows, lo
219219

220220
const sortedRows = React.useMemo(() => rows.sort(compare), [rows, compare]);
221221

222-
return !loaded ? (
223-
<LoadingBox />
224-
) : (
222+
return (
225223
<PaneBody>
226224
{obj.spec?.managementState === 'Unmanaged' && (
227225
<Alert
@@ -296,32 +294,30 @@ const ConsolePluginsTable: React.FC<ConsolePluginsTableProps> = ({ obj, rows, lo
296294
};
297295

298296
const DevPluginsPage: React.FCC<ConsoleOperatorConfigPageProps> = (props) => {
299-
const [pluginInfo, pluginInfoLoaded] = usePluginInfo();
297+
const pluginInfo = usePluginInfo();
300298
const cspViolations = useSelector<RootState, PluginCSPViolations>(({ UI }) =>
301299
UI.get('pluginCSPViolations'),
302300
);
303301

304302
const rows = React.useMemo<ConsolePluginTableRow[]>(
305303
() =>
306-
!pluginInfoLoaded
307-
? []
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-
})),
318-
[pluginInfo, pluginInfoLoaded, cspViolations],
304+
pluginInfo
305+
.filter((plugin) => plugin?.status === 'loaded')
306+
.map((plugin) => ({
307+
name: plugin.metadata.name,
308+
version: plugin.metadata.version,
309+
description: plugin.metadata?.customProperties?.console?.description,
310+
enabled: plugin.enabled,
311+
status: plugin.status,
312+
hasCSPViolations: cspViolations[plugin.metadata.name] ?? false,
313+
})),
314+
[pluginInfo, cspViolations],
319315
);
320-
return <ConsolePluginsTable {...props} rows={rows} loaded={pluginInfoLoaded} />;
316+
return <ConsolePluginsTable {...props} rows={rows} />;
321317
};
322318

323319
const PluginsPage: React.FC<ConsoleOperatorConfigPageProps> = (props) => {
324-
const [pluginInfo] = usePluginInfo();
320+
const pluginInfo = usePluginInfo();
325321
const [consolePlugins, consolePluginsLoaded] = useK8sWatchResource<ConsolePluginKind[]>({
326322
isList: true,
327323
kind: referenceForModel(ConsolePluginModel),
@@ -423,7 +419,7 @@ export type ConsolePluginTableRow = {
423419
name: string;
424420
version?: string;
425421
description?: string;
426-
status: DynamicPluginInfo['status'];
422+
status: PluginInfoEntry['status'];
427423
enabled: boolean;
428424
errorMessage?: string;
429425
hasCSPViolations?: boolean;
@@ -437,7 +433,6 @@ type TableColumn = {
437433

438434
type ConsolePluginsTableProps = ConsoleOperatorConfigPageProps & {
439435
rows: ConsolePluginTableRow[];
440-
loaded: boolean;
441436
};
442437

443438
type ConsolePluginStatusProps = {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { DASH } from '@console/shared/src/constants';
66
const ConsolePluginDescriptionDetail: React.FC<DetailsItemComponentProps> = ({ obj }) => {
77
const pluginName = React.useMemo(() => obj?.metadata?.name, [obj?.metadata?.name]);
88

9-
const [pluginInfoEntries] = usePluginInfo();
9+
const pluginInfoEntries = usePluginInfo();
1010
const pluginInfo = React.useMemo(
1111
() =>
1212
pluginInfoEntries.find((entry) =>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from './ConsoleOperatorConfig';
1010

1111
const ConsolePluginEnabledStatusDetail: React.FC<DetailsItemComponentProps> = ({ obj }) => {
12-
const [pluginInfoEntries] = usePluginInfo();
12+
const pluginInfoEntries = usePluginInfo();
1313
const { consoleOperatorConfig, consoleOperatorConfigLoaded } = useConsoleOperatorConfigData();
1414

1515
const pluginName = React.useMemo(() => obj?.metadata?.name, [obj?.metadata?.name]);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { DASH } from '@console/shared/src/constants';
55
import { ConsolePluginStatus } from './ConsoleOperatorConfig';
66

77
const ConsolePluginStatusDetail: React.FC<DetailsItemComponentProps> = ({ obj }) => {
8-
const [pluginInfoEntries] = usePluginInfo();
8+
const pluginInfoEntries = usePluginInfo();
99
const pluginName = React.useMemo(() => obj?.metadata?.name, [obj?.metadata?.name]);
1010

1111
const pluginInfo = React.useMemo(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
44
import { DASH } from '@console/shared/src/constants';
55

66
const ConsolePluginVersionDetail: React.FC<DetailsItemComponentProps> = ({ obj }) => {
7-
const [pluginInfoEntries] = usePluginInfo();
7+
const pluginInfoEntries = usePluginInfo();
88

99
const pluginName = React.useMemo(() => obj?.metadata?.name, [obj?.metadata?.name]);
1010

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import NotLoadedDynamicPlugins from './NotLoadedDynamicPlugins';
1414

1515
const DynamicPluginsPopover: React.FC<DynamicPluginsPopoverProps> = ({ consolePlugins }) => {
1616
const { t } = useTranslation();
17-
const [pluginInfoEntries] = usePluginInfo();
17+
const pluginInfoEntries = usePluginInfo();
1818
const cspViolations = useSelector<RootState, PluginCSPViolations>(({ UI }) =>
1919
UI.get('pluginCSPViolations'),
2020
);

frontend/packages/console-plugin-sdk/src/api/usePluginInfo.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { subscribeToDynamicPlugins } from './pluginSubscriptionService';
1313
*
1414
* ```ts
1515
* const Example = () => {
16-
* const [pluginInfoEntries, allPluginsProcessed] = usePluginInfo();
16+
* const pluginInfoEntries = usePluginInfo();
1717
* // process plugin entries and render your component
1818
* };
1919
* ```
@@ -22,19 +22,17 @@ import { subscribeToDynamicPlugins } from './pluginSubscriptionService';
2222
*
2323
* @returns Console dynamic plugin runtime information.
2424
*/
25-
export const usePluginInfo = (): [DynamicPluginInfo[], boolean] => {
25+
export const usePluginInfo = (): DynamicPluginInfo[] => {
2626
const forceRender = useForceRender();
2727

2828
const isMountedRef = useRef(true);
2929
const unsubscribeRef = useRef<VoidFunction>(null);
3030
const pluginInfoEntriesRef = useRef<DynamicPluginInfo[]>([]);
31-
const allPluginsProcessedRef = useRef<boolean>(false);
3231

3332
const trySubscribe = useCallback(() => {
3433
if (unsubscribeRef.current === null) {
3534
unsubscribeRef.current = subscribeToDynamicPlugins((pluginInfoEntries) => {
3635
pluginInfoEntriesRef.current = pluginInfoEntries;
37-
allPluginsProcessedRef.current = pluginInfoEntries.every((i) => i.status !== 'pending');
3836
isMountedRef.current && forceRender();
3937
});
4038
}
@@ -57,5 +55,5 @@ export const usePluginInfo = (): [DynamicPluginInfo[], boolean] => {
5755
[tryUnsubscribe],
5856
);
5957

60-
return [pluginInfoEntriesRef.current, allPluginsProcessedRef.current];
58+
return pluginInfoEntriesRef.current;
6159
};

frontend/public/components/about-modal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import redHatFedoraWatermarkImg from '../imgs/red-hat-fedora-watermark.svg';
3232

3333
const DynamicPlugins: React.FC = () => {
3434
const { t } = useTranslation();
35-
const [pluginInfoEntries] = usePluginInfo();
35+
const pluginInfoEntries = usePluginInfo();
3636
const [items, setItems] = React.useState([]);
3737

3838
React.useEffect(() => {

frontend/public/components/app-contents.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,15 @@ const HorizontalPodRedirect = () => {
155155
};
156156

157157
const AppContents: React.FC<{}> = () => {
158-
const [, allPluginsProcessed] = usePluginInfo();
158+
const pluginInfoEntries = usePluginInfo();
159159
const location = useLocation();
160160
const [pluginPageRoutes, inactivePluginPageRoutes] = usePluginRoutes();
161161

162+
const allPluginsProcessed = React.useMemo(
163+
() => pluginInfoEntries.every((i) => i.status !== 'pending'),
164+
[pluginInfoEntries],
165+
);
166+
162167
const contentRouter = (
163168
<Routes>
164169
{pluginPageRoutes}

frontend/public/components/notification-drawer.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { useTranslation } from 'react-i18next';
1414
import i18next from 'i18next';
1515
import { useDispatch } from 'react-redux';
1616
import { Link, NavigateFunction, useNavigate } from 'react-router-dom-v5-compat';
17-
import { isNotLoadedDynamicPluginInfo, DynamicPluginInfo } from '@console/plugin-sdk';
17+
import { DynamicPluginInfo } from '@console/plugin-sdk';
1818
import { usePluginInfo } from '@console/plugin-sdk/src/api/usePluginInfo';
1919
import * as UIActions from '@console/internal/actions/ui';
2020
import { resourcePath } from '@console/internal/components/utils/resource-link';
@@ -162,9 +162,7 @@ const getUpdateNotificationEntries = (
162162
const newerChannelVersion = splitClusterVersionChannel(newerChannel)?.version;
163163
const entries = [];
164164

165-
const failedPlugins = pluginInfoEntries
166-
.filter(isNotLoadedDynamicPluginInfo)
167-
.filter((plugin) => plugin.status === 'failed');
165+
const failedPlugins = pluginInfoEntries.filter((plugin) => plugin.status === 'failed');
168166

169167
if (!_.isEmpty(updateData)) {
170168
entries.push(
@@ -245,7 +243,7 @@ export const NotificationDrawer: FC<NotificationDrawerProps> = ({
245243
const { t } = useTranslation();
246244
const clusterID = getClusterID(useClusterVersion());
247245
const showServiceLevelNotification = useShowServiceLevelNotifications(clusterID);
248-
const [pluginInfoEntries] = usePluginInfo();
246+
const pluginInfoEntries = usePluginInfo();
249247
const dispatch = useDispatch();
250248
const clusterVersion: ClusterVersionKind = useClusterVersion();
251249
const [alerts, , loadError] = useNotificationAlerts();

0 commit comments

Comments
 (0)