import { onMounted, onUnmounted } from "vue";

export function useKeyboardShortcut(combination: string, callback: () => void) {
  function handleKeyDown(event: KeyboardEvent) {
    const isCtrlPressed = event.ctrlKey || event.metaKey;
    const isMPressed = event.key === "m" || event.key === "M";

    const isEscPressed = event.key === "Escape"; // verifica se a tecla esc foi pressionada

    // verifica se a combinação de teclas para abrir o modal foi pressionada
    if (isCtrlPressed && isMPressed) {
      callback();
    }

    // verifica se a tecla esc foi pressionada para fechar o modal
    if (combination === "Escape" && isEscPressed) {
      callback();
    }
  }

  onMounted(() => {
    document.addEventListener("keydown", handleKeyDown);
  });

  onUnmounted(() => {
    document.removeEventListener("keydown", handleKeyDown);
  });
}
