import { Directive } from "vue";
import { makeHotkey } from "../scripts/hotkey";

export default {
	mounted(el, binding) {
		el._hotkey_global = binding.modifiers.global === true;

		el._keyHandler = makeHotkey(binding.value);

		if (el._hotkey_global) {
			document.addEventListener("keydown", el._keyHandler);
		} else {
			el.addEventListener("keydown", el._keyHandler);
		}
	},

	unmounted(el) {
		if (el._hotkey_global) {
			document.removeEventListener("keydown", el._keyHandler);
		} else {
			el.removeEventListener("keydown", el._keyHandler);
		}
	},
} as Directive;
