websocket can now be disabled, the websocket ping interval and the tree reload interval can now be configured (#1132)

This commit is contained in:
Athou
2023-12-21 20:27:30 +01:00
parent bdabd9db0d
commit 5541cc9fbe
10 changed files with 104 additions and 25 deletions

View File

@@ -95,6 +95,7 @@ export default function Layout(props: LayoutProps) {
const mobile = useMobile()
const mobileMenuOpen = useAppSelector(state => state.tree.mobileMenuOpen)
const webSocketConnected = useAppSelector(state => state.server.webSocketConnected)
const treeReloadInterval = useAppSelector(state => state.server.serverInfos?.treeReloadInterval)
const sidebarHidden = props.sidebarWidth === 0
const dispatch = useAppDispatch()
useWebSocket()
@@ -110,12 +111,15 @@ export default function Layout(props: LayoutProps) {
}, [dispatch])
useEffect(() => {
// reload tree periodically if not receiving websocket events
const timer = setInterval(() => {
if (!webSocketConnected) dispatch(reloadTree())
}, 30000)
let timer: number | undefined
if (!webSocketConnected && treeReloadInterval) {
// reload tree periodically if not receiving websocket events
timer = window.setInterval(() => dispatch(reloadTree()), treeReloadInterval)
}
return () => clearInterval(timer)
}, [dispatch, webSocketConnected])
}, [dispatch, webSocketConnected, treeReloadInterval])
const burger = (
<Center>