Improve stats (#10911)

* Add overview stats for overall detection and skipped fps

* Fix intel memory stats

* Fix iOS image long pressing

* Cleanup
This commit is contained in:
Nicolas Mowen
2024-04-09 17:08:11 -06:00
committed by GitHub
parent 15e4f5c771
commit 524732ec73
5 changed files with 156 additions and 35 deletions

View File

@@ -0,0 +1,46 @@
import { MutableRefObject, useEffect } from "react";
import { isIOS } from "react-device-detect";
export default function useContextMenu(
ref: MutableRefObject<HTMLDivElement | null>,
callback: () => void,
) {
useEffect(() => {
if (!ref.current) {
return;
}
const elem = ref.current;
if (isIOS) {
let timeoutId: NodeJS.Timeout;
const touchStart = () => {
timeoutId = setTimeout(() => {
callback();
}, 610);
};
const touchClear = () => {
clearTimeout(timeoutId);
};
elem.addEventListener("touchstart", touchStart);
elem.addEventListener("touchmove", touchClear);
elem.addEventListener("touchend", touchClear);
return () => {
elem.removeEventListener("touchstart", touchStart);
elem.removeEventListener("touchmove", touchClear);
elem.removeEventListener("touchend", touchClear);
};
} else {
const context = (e: MouseEvent) => {
e.preventDefault();
callback();
};
elem.addEventListener("contextmenu", context);
return () => {
elem.removeEventListener("contextmenu", context);
};
}
}, [callback, ref]);
}