diff options
| author | gantiro <gantiro396@gmail.com> | 2025-07-15 22:51:38 +0700 |
|---|---|---|
| committer | gantiro <gantiro396@gmail.com> | 2025-07-15 22:51:38 +0700 |
| commit | b266678fe4bb8c4053688fd037693fa2f930ac14 (patch) | |
| tree | 89a8c3b7a151a42fecfc480b440c55fce79252da /apps/web/src/hooks/use-disable-browser-zoom.ts | |
| parent | 1f95bb98d6108a5fa059e0f9a08c98e5bdb72c08 (diff) | |
| download | opencut-b266678fe4bb8c4053688fd037693fa2f930ac14.tar.gz | |
Optimize timeline performance
Diffstat (limited to 'apps/web/src/hooks/use-disable-browser-zoom.ts')
| -rw-r--r-- | apps/web/src/hooks/use-disable-browser-zoom.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/apps/web/src/hooks/use-disable-browser-zoom.ts b/apps/web/src/hooks/use-disable-browser-zoom.ts new file mode 100644 index 00000000..215268ac --- /dev/null +++ b/apps/web/src/hooks/use-disable-browser-zoom.ts @@ -0,0 +1,45 @@ +import { useEffect } from "react"; + +export const useDisableBrowserZoom = () => { + useEffect(() => { + const handleWheel = (e: WheelEvent) => { + if (e.ctrlKey) { + e.preventDefault(); + } + }; + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.ctrlKey) { + const key = e.key; + if (key === "+" || key === "-" || key === "0" || key === "=") { + e.preventDefault(); + } + } + }; + + const handleGesture = (e: Event) => { + e.preventDefault(); + }; + + window.addEventListener("wheel", handleWheel, { passive: false }); + window.addEventListener("keydown", handleKeyDown, { passive: false }); + + window.addEventListener("gesturestart", handleGesture, { + passive: false, + }); + window.addEventListener("gesturechange", handleGesture, { + passive: false, + }); + window.addEventListener("gestureend", handleGesture, { + passive: false, + }); + + return () => { + window.removeEventListener("wheel", handleWheel); + window.removeEventListener("keydown", handleKeyDown); + window.removeEventListener("gesturestart", handleGesture); + window.removeEventListener("gesturechange", handleGesture); + window.removeEventListener("gestureend", handleGesture); + }; + }, []); +}; |
