Skip to content

Commit f405e08

Browse files
committed
Add lazy loading to modals and remove duplicate types
1 parent aaa11ee commit f405e08

6 files changed

Lines changed: 28 additions & 21 deletions

File tree

frontend/packages/console-app/src/actions/creators/hpa-factory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
ClusterServiceVersionModel,
1616
ClusterServiceVersionKind,
1717
} from '@console/operator-lifecycle-manager';
18-
import { DeleteHPAModalOverlay } from '@console/shared/src/components/hpa/DeleteHPAModal';
18+
import { LazyDeleteHPAModalOverlay } from '@console/shared/src/components/hpa';
1919
import { isHelmResource } from '@console/shared/src/utils/helm-utils';
2020
import { doesHpaMatch } from '@console/shared/src/utils/hpa-utils';
2121
import { isOperatorBackedService } from '@console/shared/src/utils/operator-utils';
@@ -100,7 +100,7 @@ export const useHPAActions = (kindObj: K8sKind, resource: K8sResourceKind) => {
100100
label: i18next.t('console-app~Remove HorizontalPodAutoscaler'),
101101
insertBefore: 'delete-pdb',
102102
cta: () => {
103-
launchModal(DeleteHPAModalOverlay, {
103+
launchModal(LazyDeleteHPAModalOverlay, {
104104
workload: resource,
105105
hpa: relatedHPAs[0],
106106
});

frontend/packages/console-shared/src/components/hpa/DeleteHPAModal.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ import {
2020
K8sResourceCommon,
2121
} from '@console/internal/module/k8s';
2222

23-
type DeleteHPAModalProps = ModalComponentProps & {
24-
hpa: HorizontalPodAutoscalerKind;
25-
workload: K8sResourceCommon;
26-
};
27-
2823
const DeleteHPAModal: FC<DeleteHPAModalProps> = ({ close, cancel, hpa, workload }) => {
2924
const [submitError, setSubmitError] = useState<string>(null);
3025
const [isSubmitting, setIsSubmitting] = useState<boolean>(false);
@@ -90,7 +85,7 @@ const DeleteHPAModal: FC<DeleteHPAModalProps> = ({ close, cancel, hpa, workload
9085
);
9186
};
9287

93-
export const DeleteHPAModalOverlay: OverlayComponent<DeleteHPAModalOverlayProps> = (props) => {
88+
export const DeleteHPAModalOverlay: OverlayComponent<DeleteHPAModalProps> = (props) => {
9489
return (
9590
<ModalWrapper blocking onClose={props.closeOverlay}>
9691
<DeleteHPAModal
@@ -103,7 +98,7 @@ export const DeleteHPAModalOverlay: OverlayComponent<DeleteHPAModalOverlayProps>
10398
);
10499
};
105100

106-
type DeleteHPAModalOverlayProps = {
101+
type DeleteHPAModalProps = ModalComponentProps & {
107102
hpa: HorizontalPodAutoscalerKind;
108103
workload: K8sResourceCommon;
109104
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1+
import { lazy } from 'react';
2+
13
export { DeleteHPAModalOverlay } from './DeleteHPAModal';
4+
5+
// Lazy-loaded OverlayComponent for DeleteHPAModal
6+
export const LazyDeleteHPAModalOverlay = lazy(() =>
7+
import('./DeleteHPAModal' /* webpackChunkName: "delete-hpa-modal" */).then((m) => ({
8+
default: m.DeleteHPAModalOverlay,
9+
})),
10+
);

frontend/packages/console-shared/src/components/modals/ConsolePluginModal.tsx

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ export const ConsolePluginModal = (props: ConsolePluginModalProps) => {
7272
);
7373
};
7474

75-
export const ConsolePluginModalOverlay: OverlayComponent<ConsolePluginModalOverlayProps> = (
76-
props,
77-
) => {
75+
export const ConsolePluginModalOverlay: OverlayComponent<ConsolePluginModalProps> = (props) => {
7876
return (
7977
<ModalWrapper blocking onClose={props.closeOverlay}>
8078
<ConsolePluginModal
@@ -89,13 +87,6 @@ export const ConsolePluginModalOverlay: OverlayComponent<ConsolePluginModalOverl
8987
);
9088
};
9189

92-
type ConsolePluginModalOverlayProps = {
93-
consoleOperatorConfig: K8sResourceKind;
94-
csvPluginsCount?: number;
95-
pluginName: string;
96-
trusted: boolean;
97-
};
98-
9990
export type ConsolePluginModalProps = {
10091
consoleOperatorConfig: K8sResourceKind;
10192
csvPluginsCount?: number;

frontend/packages/console-shared/src/components/modals/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
import { lazy } from 'react';
2+
3+
// Lazy-loaded OverlayComponent for ConsolePluginModal
4+
export const LazyConsolePluginModalOverlay = lazy(() =>
5+
import('./ConsolePluginModal' /* webpackChunkName: "console-plugin-modal" */).then((m) => ({
6+
default: m.ConsolePluginModalOverlay,
7+
})),
8+
);
9+
110
export const consolePluginModal = (props) =>
211
import('./ConsolePluginModal' /* webpackChunkName: "shared-modals" */).then((m) =>
312
m.ConsolePluginModalOverlay(props),

frontend/packages/operator-lifecycle-manager/src/components/clusterserviceversion.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
useAccessReviewAllowed,
3131
useAccessReview,
3232
} from '@console/dynamic-plugin-sdk';
33+
import { useOverlay } from '@console/dynamic-plugin-sdk/src/app/modal-support/useOverlay';
3334
import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/lib-core';
3435
import { Conditions, ConditionTypes } from '@console/internal/components/conditions';
3536
import { ResourceEventStream } from '@console/internal/components/events';
@@ -77,7 +78,7 @@ import { DocumentTitle } from '@console/shared/src/components/document-title/Doc
7778
import { withFallback } from '@console/shared/src/components/error';
7879
import PaneBody from '@console/shared/src/components/layout/PaneBody';
7980
import { ExternalLink } from '@console/shared/src/components/links/ExternalLink';
80-
import { consolePluginModal } from '@console/shared/src/components/modals';
81+
import { LazyConsolePluginModalOverlay } from '@console/shared/src/components/modals';
8182
import { RedExclamationCircleIcon } from '@console/shared/src/components/status/icons';
8283
import { CONSOLE_OPERATOR_CONFIG_NAME } from '@console/shared/src/constants';
8384
import { useActiveNamespace } from '@console/shared/src/hooks/redux-selectors';
@@ -246,6 +247,7 @@ const ConsolePlugins: FC<ConsolePluginsProps> = ({ csvPlugins, trusted }) => {
246247
};
247248
const [consoleOperatorConfig] = useK8sWatchResource<K8sResourceKind>(console);
248249
const { t } = useTranslation();
250+
const launchModal = useOverlay();
249251
const [canPatchConsoleOperatorConfig] = useAccessReview({
250252
group: ConsoleOperatorConfigModel.apiGroup,
251253
resource: ConsoleOperatorConfigModel.plural,
@@ -273,8 +275,9 @@ const ConsolePlugins: FC<ConsolePluginsProps> = ({ csvPlugins, trusted }) => {
273275
type="button"
274276
isInline
275277
onClick={() =>
276-
consolePluginModal({
278+
launchModal(LazyConsolePluginModalOverlay, {
277279
consoleOperatorConfig,
280+
csvPluginsCount,
278281
pluginName,
279282
trusted,
280283
})

0 commit comments

Comments
 (0)