fix: show update notifications only on non-auto-updating Swarm Desktops (#543)

This commit is contained in:
Adam Uhlíř
2022-09-14 02:48:24 -07:00
committed by GitHub
parent 0c74dae4e8
commit 528a810690
3 changed files with 17 additions and 7 deletions
+7 -3
View File
@@ -63,11 +63,15 @@ async function checkNewVersion(desktopUrl: string): Promise<string> {
return '' return ''
} }
export function useNewBeeDesktopVersion(isBeeDesktop: boolean, desktopUrl: string): NewDesktopVersionHook { export function useNewBeeDesktopVersion(
isBeeDesktop: boolean,
desktopUrl: string,
desktopAutoUpdateEnabled: boolean,
): NewDesktopVersionHook {
const [newBeeDesktopVersion, setNewBeeDesktopVersion] = useState<string>('') const [newBeeDesktopVersion, setNewBeeDesktopVersion] = useState<string>('')
useEffect(() => { useEffect(() => {
if (!isBeeDesktop) { if (!isBeeDesktop || desktopAutoUpdateEnabled) {
return return
} }
@@ -76,7 +80,7 @@ export function useNewBeeDesktopVersion(isBeeDesktop: boolean, desktopUrl: strin
setNewBeeDesktopVersion(version) setNewBeeDesktopVersion(version)
} }
}) })
}, [isBeeDesktop, desktopUrl]) }, [isBeeDesktop, desktopUrl, desktopAutoUpdateEnabled])
return { newBeeDesktopVersion } return { newBeeDesktopVersion }
} }
+9 -3
View File
@@ -7,7 +7,7 @@ import ErrorBoundary from '../components/ErrorBoundary'
import SideBar from '../components/SideBar' import SideBar from '../components/SideBar'
import { Context as BeeContext } from '../providers/Bee' import { Context as BeeContext } from '../providers/Bee'
import { Context as SettingsContext } from '../providers/Settings' 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' import { BEE_DESKTOP_LATEST_RELEASE_PAGE } from '../constants'
const useStyles = makeStyles((theme: Theme) => const useStyles = makeStyles((theme: Theme) =>
@@ -30,7 +30,8 @@ const Dashboard = (props: Props): ReactElement => {
const { isLoading, isLatestBeeVersion, latestBeeRelease, latestBeeVersionUrl, latestUserVersion } = const { isLoading, isLatestBeeVersion, latestBeeRelease, latestBeeVersionUrl, latestUserVersion } =
useContext(BeeContext) useContext(BeeContext)
const { isDesktop, desktopUrl } = useContext(SettingsContext) 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() const { enqueueSnackbar, closeSnackbar } = useSnackbar()
// New version of Bee client notification // New version of Bee client notification
@@ -74,6 +75,11 @@ const Dashboard = (props: Props): ReactElement => {
]) ])
useEffect(() => { useEffect(() => {
// When autoupdate is enabled then we leave the version check for the built-in Electron update mechanism
if (desktopAutoUpdateEnabled) {
return
}
if (newBeeDesktopVersion !== '') { if (newBeeDesktopVersion !== '') {
enqueueSnackbar(`There is new Swarm Dashboard version ${newBeeDesktopVersion}!`, { enqueueSnackbar(`There is new Swarm Dashboard version ${newBeeDesktopVersion}!`, {
variant: 'warning', variant: 'warning',
@@ -101,7 +107,7 @@ const Dashboard = (props: Props): ReactElement => {
), ),
}) })
} }
}, [enqueueSnackbar, closeSnackbar, newBeeDesktopVersion]) }, [enqueueSnackbar, closeSnackbar, newBeeDesktopVersion, desktopAutoUpdateEnabled])
const content = ( const content = (
<> <>
+1 -1
View File
@@ -30,7 +30,7 @@ export default function Status(): ReactElement {
const { isDesktop, desktopUrl } = useContext(SettingsContext) const { isDesktop, desktopUrl } = useContext(SettingsContext)
const { balance, error } = useContext(BalanceProvider) const { balance, error } = useContext(BalanceProvider)
const { beeDesktopVersion } = useBeeDesktop(isDesktop, desktopUrl) const { beeDesktopVersion } = useBeeDesktop(isDesktop, desktopUrl)
const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl) const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl, false)
const navigate = useNavigate() const navigate = useNavigate()
let balanceText = 'Loading...' let balanceText = 'Loading...'