665ae063fa
* fix: change execution order for light node upgrade * refactor: grab new configuration from post config request * fix: only print successful light node upgrade when it really happens * fix: log full desktop side swap error (#596) * refactor: try to make the auth error in swap nicer * refactor: make error instruction consistent * fix: avoid overwriting daiToSwap when it is set manually
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { BeeModes } from '@ethersphere/bee-js'
|
|
import { Box, Grid, Typography } from '@material-ui/core'
|
|
import { useSnackbar } from 'notistack'
|
|
import { ReactElement, useContext, useEffect, useState } from 'react'
|
|
import { useNavigate } from 'react-router'
|
|
import { Waiting } from '../../components/Waiting'
|
|
import { Context } from '../../providers/Bee'
|
|
import { ROUTES } from '../../routes'
|
|
|
|
const STARTED_UPGRADE_AT = 'started-upgrade-at'
|
|
|
|
export default function LightModeRestart(): ReactElement {
|
|
const [startedAt] = useState(Number.parseInt(localStorage.getItem(STARTED_UPGRADE_AT) ?? Date.now().toFixed()))
|
|
const { apiHealth, nodeInfo } = useContext(Context)
|
|
const navigate = useNavigate()
|
|
const { enqueueSnackbar } = useSnackbar()
|
|
|
|
useEffect(() => {
|
|
localStorage.setItem(STARTED_UPGRADE_AT, startedAt.toFixed())
|
|
}, [startedAt])
|
|
|
|
useEffect(() => {
|
|
if (Date.now() - startedAt < 45_000) {
|
|
return
|
|
}
|
|
|
|
if (apiHealth && nodeInfo?.beeMode === BeeModes.LIGHT) {
|
|
enqueueSnackbar('Upgraded to light node', { variant: 'success' })
|
|
localStorage.removeItem(STARTED_UPGRADE_AT)
|
|
navigate(ROUTES.INFO)
|
|
}
|
|
}, [startedAt, navigate, nodeInfo, apiHealth, enqueueSnackbar])
|
|
|
|
return (
|
|
<Grid container direction="column" justifyContent="center" alignItems="center">
|
|
<Box mb={9}>
|
|
<Waiting />
|
|
</Box>
|
|
<Box mb={1}>
|
|
<Typography>
|
|
<strong>Upgrading Bee</strong>
|
|
</Typography>
|
|
</Box>
|
|
<Typography>
|
|
You will be redirected automatically once your node is up and running. This may take up to 10 minutes.
|
|
</Typography>
|
|
</Grid>
|
|
)
|
|
}
|