From 110314ead28c8f7d867be537f2d4b7ba4513ef98 Mon Sep 17 00:00:00 2001 From: DoraCretu594118 <103416234+doracretu3pillar@users.noreply.github.com> Date: Mon, 7 Oct 2024 13:35:06 +0300 Subject: [PATCH] Check showUpdateModal that is set in the state, updated css and test --- .../PerconaBootstrapper.tsx | 7 +++-- .../PerconaUpdateVersion.styles.ts | 3 +-- .../PerconaUpdateVersion.test.tsx | 12 ++++----- .../PerconaUpdateVersion.tsx | 27 ++++++++++--------- .../PerconaUpdateVersion.types.ts | 4 --- .../shared/core/reducers/updates/updates.ts | 11 ++++++-- .../core/reducers/updates/updates.types.ts | 1 + 7 files changed, 34 insertions(+), 31 deletions(-) delete mode 100644 public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.types.ts diff --git a/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx b/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx index 7ce5c03cd327e..c107e57b1a0e8 100644 --- a/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx +++ b/public/app/percona/shared/components/PerconaBootstrapper/PerconaBootstrapper.tsx @@ -35,8 +35,7 @@ import PerconaUpdateVersion from './PerconaUpdateVersion/PerconaUpdateVersion'; export const PerconaBootstrapper = ({ onReady }: PerconaBootstrapperProps) => { const dispatch = useAppDispatch(); const { setSteps, startTour: startPerconaTour, endTour } = usePerconaTour(); - const [showUpdate, setShowUpdate] = useState(true); - const { updateAvailable } = useSelector(getUpdatesInfo); + const { updateAvailable, isLoading: isLoadingUpdates, showUpdateModal } = useSelector(getUpdatesInfo); const [modalIsOpen, setModalIsOpen] = useState(true); const [showTour, setShowTour] = useState(false); const styles = useStyles2(getStyles); @@ -109,8 +108,8 @@ export const PerconaBootstrapper = ({ onReady }: PerconaBootstrapperProps) => { {isSignedIn && } - {updateAvailable && showUpdate ? ( - + {updateAvailable && showUpdateModal && !isLoadingUpdates ? ( + ) : ( isSignedIn && showTour && ( diff --git a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.styles.ts b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.styles.ts index 4e5b9008a0a25..45dd1980d2bf0 100644 --- a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.styles.ts +++ b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.styles.ts @@ -7,7 +7,6 @@ export const getStyles = ({ v1: { spacing, colors, typography } }: GrafanaTheme2 display: flex; flex-direction: column; width: 480px; - height: 343px; `, version: css` margin-bottom: ${spacing.md}; @@ -22,7 +21,7 @@ export const getStyles = ({ v1: { spacing, colors, typography } }: GrafanaTheme2 font-size: ${typography.heading.h5}; margin-bottom: 8px; `, - notesTitle: css` + howToUpdate: css` font-weight: ${typography.weight.semibold}; font-size: ${typography.heading.h5}; margin-top: 27px; diff --git a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.test.tsx b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.test.tsx index 71404338e5832..b4b5e435cdb1b 100644 --- a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.test.tsx +++ b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.test.tsx @@ -1,6 +1,6 @@ import { EnhancedStore } from '@reduxjs/toolkit'; import { fireEvent, render, screen } from '@testing-library/react'; -import React, { useState } from 'react'; +import React from 'react'; import { Provider } from 'react-redux'; import { waitFor } from 'test/test-utils'; @@ -16,16 +16,11 @@ import PerconaUpdateVersion from './PerconaUpdateVersion'; const checkUpdatesChangeLogsSpy = jest.spyOn(GrafanaUpdates, 'checkUpdatesChangeLogs'); const setSnoozedVersionSpy = jest.spyOn(User, 'setSnoozedVersion'); -const PerconaUpdateVersionWithProps = () => { - const [showUpdate, setShowUpdate] = useState(true); - return ; -}; - describe('PerconaUpdateVersion', () => { const setup = (store: EnhancedStore) => render( - + ); @@ -52,6 +47,7 @@ describe('PerconaUpdateVersion', () => { updateAvailable: true, latest: { version: '3.0.1' }, lastChecked: '', + showUpdateModal: true, }, }; jest.spyOn(UpdatesService, 'getUpdatesChangelogs').mockReturnValue(Promise.resolve({ ...changeLogsAPIResponse })); @@ -99,6 +95,7 @@ describe('PerconaUpdateVersion', () => { updateAvailable: true, latest: { version: '3.0.1' }, lastChecked: '', + showUpdateModal: true, }, }; jest.spyOn(UpdatesService, 'getUpdatesChangelogs').mockReturnValue(Promise.resolve({ ...changeLogsAPIResponse })); @@ -140,6 +137,7 @@ describe('PerconaUpdateVersion', () => { updateAvailable: true, latest: { version: '3.0.1' }, lastChecked: '', + showUpdateModal: true, }, }; jest.spyOn(UpdatesService, 'getUpdatesChangelogs').mockReturnValue(Promise.resolve({ ...changeLogsAPIResponse })); diff --git a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.tsx b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.tsx index 5a70c36ceab83..4ff1f0608bb63 100644 --- a/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.tsx +++ b/public/app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.tsx @@ -3,8 +3,11 @@ import React, { useEffect } from 'react'; import { dateTimeFormat } from '@grafana/data'; import { Modal, useStyles2, Button } from '@grafana/ui'; import { PMM_UPDATES_LINK } from 'app/percona/shared/components/PerconaBootstrapper/PerconaNavigation'; -import { PerconaUpdateVersionProps } from 'app/percona/shared/components/PerconaBootstrapper/PerconaUpdateVersion/PerconaUpdateVersion.types'; -import { checkUpdatesChangeLogs, UpdatesChangeLogs } from 'app/percona/shared/core/reducers/updates'; +import { + checkUpdatesChangeLogs, + setShowUpdateModal, + UpdatesChangeLogs, +} from 'app/percona/shared/core/reducers/updates'; import { setSnoozedVersion } from 'app/percona/shared/core/reducers/user/user'; import { getPerconaUser, getUpdatesInfo } from 'app/percona/shared/core/selectors'; import { useAppDispatch } from 'app/store/store'; @@ -13,8 +16,8 @@ import { useSelector } from 'app/types'; import { Messages } from './PerconaUpdateVersion.constants'; import { getStyles } from './PerconaUpdateVersion.styles'; -const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersionProps) => { - const { updateAvailable, installed, latest, changeLogs } = useSelector(getUpdatesInfo); +const PerconaUpdateVersion = () => { + const { updateAvailable, installed, latest, changeLogs, showUpdateModal } = useSelector(getUpdatesInfo); const { snoozedPmmVersion } = useSelector(getPerconaUser); const dispatch = useAppDispatch(); const styles = useStyles2(getStyles); @@ -22,7 +25,7 @@ const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersio useEffect(() => { const prepareModal = async () => { if (installed?.version === latest?.version || snoozedPmmVersion === latest?.version) { - setShowUpdate(false); + dispatch(setShowUpdateModal(false)); } else { await dispatch(checkUpdatesChangeLogs()); } @@ -31,21 +34,21 @@ const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersio if (updateAvailable) { prepareModal(); } - }, [dispatch, updateAvailable, installed, latest, snoozedPmmVersion, setShowUpdate]); + }, [dispatch, updateAvailable, installed, latest, snoozedPmmVersion]); const snoozeUpdate = async () => { if (latest && latest.version) { await dispatch(setSnoozedVersion(latest.version)); } - setShowUpdate(false); + dispatch(setShowUpdateModal(false)); }; const onDismiss = () => { - setShowUpdate(false); + dispatch(setShowUpdateModal(false)); }; const onUpdateClick = () => { - setShowUpdate(false); + dispatch(setShowUpdateModal(false)); window.location.assign(PMM_UPDATES_LINK.url!); }; @@ -54,7 +57,7 @@ const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersio
@@ -79,7 +82,7 @@ const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersio 1} + isOpen={showUpdateModal && changeLogs && changeLogs?.updates?.length > 1} className={styles.updateVersionModal} >
@@ -93,7 +96,7 @@ const PerconaUpdateVersion = ({ showUpdate, setShowUpdate }: PerconaUpdateVersio ))} -
{Messages.howToUpdate}
+
{Messages.howToUpdate}

{Messages.howToUpdateDescription}