From 528a8106907ef176bcdb68b3386c2f3f9ea98a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Uhl=C3=AD=C5=99?= Date: Wed, 14 Sep 2022 02:48:24 -0700 Subject: [PATCH] fix: show update notifications only on non-auto-updating Swarm Desktops (#543) --- src/hooks/apiHooks.tsx | 10 +++++++--- src/layout/Dashboard.tsx | 12 +++++++++--- src/pages/info/index.tsx | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/hooks/apiHooks.tsx b/src/hooks/apiHooks.tsx index 395e543..f1e0cad 100644 --- a/src/hooks/apiHooks.tsx +++ b/src/hooks/apiHooks.tsx @@ -63,11 +63,15 @@ async function checkNewVersion(desktopUrl: string): Promise { return '' } -export function useNewBeeDesktopVersion(isBeeDesktop: boolean, desktopUrl: string): NewDesktopVersionHook { +export function useNewBeeDesktopVersion( + isBeeDesktop: boolean, + desktopUrl: string, + desktopAutoUpdateEnabled: boolean, +): NewDesktopVersionHook { const [newBeeDesktopVersion, setNewBeeDesktopVersion] = useState('') useEffect(() => { - if (!isBeeDesktop) { + if (!isBeeDesktop || desktopAutoUpdateEnabled) { return } @@ -76,7 +80,7 @@ export function useNewBeeDesktopVersion(isBeeDesktop: boolean, desktopUrl: strin setNewBeeDesktopVersion(version) } }) - }, [isBeeDesktop, desktopUrl]) + }, [isBeeDesktop, desktopUrl, desktopAutoUpdateEnabled]) return { newBeeDesktopVersion } } diff --git a/src/layout/Dashboard.tsx b/src/layout/Dashboard.tsx index 1326de6..d2e8bd5 100644 --- a/src/layout/Dashboard.tsx +++ b/src/layout/Dashboard.tsx @@ -7,7 +7,7 @@ import ErrorBoundary from '../components/ErrorBoundary' import SideBar from '../components/SideBar' import { Context as BeeContext } from '../providers/Bee' import { Context as SettingsContext } from '../providers/Settings' -import { useNewBeeDesktopVersion } from '../hooks/apiHooks' +import { useBeeDesktop, useNewBeeDesktopVersion } from '../hooks/apiHooks' import { BEE_DESKTOP_LATEST_RELEASE_PAGE } from '../constants' const useStyles = makeStyles((theme: Theme) => @@ -30,7 +30,8 @@ const Dashboard = (props: Props): ReactElement => { const { isLoading, isLatestBeeVersion, latestBeeRelease, latestBeeVersionUrl, latestUserVersion } = useContext(BeeContext) const { isDesktop, desktopUrl } = useContext(SettingsContext) - const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl) + const { desktopAutoUpdateEnabled } = useBeeDesktop(isDesktop, desktopUrl) + const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl, desktopAutoUpdateEnabled) const { enqueueSnackbar, closeSnackbar } = useSnackbar() // New version of Bee client notification @@ -74,6 +75,11 @@ const Dashboard = (props: Props): ReactElement => { ]) useEffect(() => { + // When autoupdate is enabled then we leave the version check for the built-in Electron update mechanism + if (desktopAutoUpdateEnabled) { + return + } + if (newBeeDesktopVersion !== '') { enqueueSnackbar(`There is new Swarm Dashboard version ${newBeeDesktopVersion}!`, { variant: 'warning', @@ -101,7 +107,7 @@ const Dashboard = (props: Props): ReactElement => { ), }) } - }, [enqueueSnackbar, closeSnackbar, newBeeDesktopVersion]) + }, [enqueueSnackbar, closeSnackbar, newBeeDesktopVersion, desktopAutoUpdateEnabled]) const content = ( <> diff --git a/src/pages/info/index.tsx b/src/pages/info/index.tsx index d3c4ec7..8639aea 100644 --- a/src/pages/info/index.tsx +++ b/src/pages/info/index.tsx @@ -30,7 +30,7 @@ export default function Status(): ReactElement { const { isDesktop, desktopUrl } = useContext(SettingsContext) const { balance, error } = useContext(BalanceProvider) const { beeDesktopVersion } = useBeeDesktop(isDesktop, desktopUrl) - const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl) + const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl, false) const navigate = useNavigate() let balanceText = 'Loading...'