2023-03-24 03:22:21 +01:00
|
|
|
import * as React from 'react';
|
|
|
|
import CloseButton from '/components/close-button';
|
|
|
|
import {CLOSE_BUTTON_IMAGE} from '/constants';
|
|
|
|
|
|
|
|
export interface OverlayMenuProps {
|
|
|
|
hiddenMenu: boolean,
|
|
|
|
setHiddenMenu: (c: boolean) => void,
|
|
|
|
emulationStarted: boolean,
|
|
|
|
setHiddenFormSelectFiles: (c: boolean) => void,
|
2023-03-24 19:13:09 +01:00
|
|
|
screenRef: React.RefObject<HTMLDivElement>;
|
|
|
|
isFullscreen: boolean;
|
|
|
|
setIsFullscreen: (c:boolean) => void;
|
|
|
|
firstMenuElement: React.RefObject<HTMLAnchorElement>,
|
2023-03-24 03:22:21 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
interface Style {
|
|
|
|
[id: string]: string;
|
|
|
|
};
|
|
|
|
|
2023-03-24 19:13:09 +01:00
|
|
|
export default function OverlayMenu({hiddenMenu, setHiddenMenu, emulationStarted,
|
|
|
|
setHiddenFormSelectFiles, screenRef, isFullscreen, setIsFullscreen,
|
|
|
|
firstMenuElement}: OverlayMenuProps) {
|
2023-03-24 03:22:21 +01:00
|
|
|
function exitMenu() {
|
|
|
|
setHiddenMenu(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
function openSelectFilesMenu() {
|
|
|
|
setHiddenFormSelectFiles(false);
|
|
|
|
}
|
|
|
|
|
2023-03-24 19:13:09 +01:00
|
|
|
function toggleFullscreen() {
|
|
|
|
if (isFullscreen) {
|
|
|
|
document.exitFullscreen();
|
|
|
|
setIsFullscreen(false);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (screenRef.current != null) {
|
|
|
|
screenRef.current.requestFullscreen().then(() => {
|
|
|
|
setIsFullscreen(true);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-03-24 03:22:21 +01:00
|
|
|
const styleSelectRom: Style = {};
|
|
|
|
if (emulationStarted) {
|
|
|
|
styleSelectRom.display = 'none';
|
|
|
|
}
|
|
|
|
|
|
|
|
const styleMenu: Style = {};
|
|
|
|
if (hiddenMenu) {
|
|
|
|
styleMenu.display = 'none';
|
|
|
|
}
|
2023-03-24 19:13:09 +01:00
|
|
|
let toggleFullscreenText: string = 'Set fullscreen';
|
|
|
|
if (isFullscreen) {
|
|
|
|
toggleFullscreenText = 'End fullscreen';
|
|
|
|
}
|
2023-03-24 03:22:21 +01:00
|
|
|
|
|
|
|
return (
|
|
|
|
<div style={styleMenu} className="overlay-menu-div">
|
|
|
|
<div className="overlay-menu-div-header">
|
|
|
|
<CloseButton onClick={exitMenu}/>
|
|
|
|
</div>
|
|
|
|
<div className="overlay-menu">
|
|
|
|
<ul>
|
2023-03-24 19:13:09 +01:00
|
|
|
<li><a ref={firstMenuElement} style={styleSelectRom} onClick={openSelectFilesMenu} href="#">Select rom</a></li>
|
|
|
|
<li><a onClick={toggleFullscreen} href="#">{toggleFullscreenText}</a></li>
|
2023-03-24 03:22:21 +01:00
|
|
|
<li><a href="#" onClick={exitMenu}>Exit</a></li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|