fix(striker-ui): add return home to VNC window, reorganize RFB disconnect

main
Tsu-ba-me 1 year ago
parent 1d606ea20d
commit 0ed354c8f4
  1. 34
      striker-ui/components/Display/FullSize.tsx

@ -1,5 +1,6 @@
import {
Close as CloseIcon,
Dashboard as DashboardIcon,
Keyboard as KeyboardIcon,
} from '@mui/icons-material';
import { Box, Menu, styled, Typography } from '@mui/material';
@ -100,17 +101,18 @@ const FullSize: FC<FullSizeProps> = ({
}, [serverUUID]);
const disconnectServerVnc = useCallback(() => {
if (rfb?.current) {
rfb.current.disconnect();
rfb.current = null;
}
setRfbConnectArgs(undefined);
}, []);
const reconnectServerVnc = useCallback(() => {
if (!rfb?.current) return;
rfb.current.disconnect();
rfb.current = null;
disconnectServerVnc();
connectServerVnc();
}, [connectServerVnc]);
}, [connectServerVnc, disconnectServerVnc]);
const updateVncReconnectTimer = useCallback((): void => {
const intervalId = setInterval((): void => {
@ -188,15 +190,33 @@ const FullSize: FC<FullSizeProps> = ({
[disconnectServerVnc, onClickCloseButton],
);
const returnHomeElement = useMemo(
() => (
<IconButton
onClick={() => {
if (!window) return;
disconnectServerVnc();
window.location.assign('/');
}}
>
<DashboardIcon />
</IconButton>
),
[disconnectServerVnc],
);
const vncToolbarElement = useMemo(
() =>
showScreen && (
<>
{keyboardMenuElement}
{returnHomeElement}
{vncDisconnectElement}
</>
),
[keyboardMenuElement, showScreen, vncDisconnectElement],
[keyboardMenuElement, returnHomeElement, showScreen, vncDisconnectElement],
);
useEffect(() => {

Loading…
Cancel
Save