Files
coco-app/src/hooks/useModifierKeyPress.ts
ayangweb 6ae2ed0832 fix: esc key fails to close the popover (#1024)
* fix: esc key fails to close the popover

* refactor: update
2025-12-22 11:51:04 +08:00

30 lines
760 B
TypeScript

import { POPOVER_PANEL_SELECTOR } from "@/constants";
import { useShortcutsStore } from "@/stores/shortcutsStore";
import { useKeyPress } from "ahooks";
export const useModifierKeyPress = () => {
const modifierKey = useShortcutsStore((state) => {
return state.modifierKey;
});
const setModifierKeyPressed = useShortcutsStore((state) => {
return state.setModifierKeyPressed;
});
const setOpenPopover = useShortcutsStore((state) => {
return state.setOpenPopover;
});
useKeyPress(
modifierKey,
(event) => {
const el = document.querySelector(POPOVER_PANEL_SELECTOR);
setOpenPopover(Boolean(el));
setModifierKeyPressed(event.type === "keydown");
},
{
events: ["keydown", "keyup"],
}
);
};