/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import { useEffect, useRef } from 'react'; import { useHotkeysContext } from 'react-hotkeys-hook'; import { HotkeyScope } from '@/modules/hotkeys/Hotkeys.types.ts'; export const useDisableAllHotkeysWhileMounted = (shouldDisable?: boolean) => { const { enabledScopes, enableScope, disableScope } = useHotkeysContext(); const previouslyEnabledScopes = useRef([]); useEffect(() => { if (!shouldDisable) { return () => {}; } previouslyEnabledScopes.current = [...enabledScopes]; enableScope(HotkeyScope.NONE); previouslyEnabledScopes.current.forEach(disableScope); return () => { disableScope(HotkeyScope.NONE); previouslyEnabledScopes.current.forEach(enableScope); }; }, [shouldDisable]); };