export default {
    mounted: function (el, binding) {
        const shortcut = binding.value ?? '+';

        const { key, ctrl, alt, callback } =
            typeof shortcut === 'string'
                ? {
                      key: shortcut,
                      ctrl: true,
                      alt: true,
                      callback: () =>
                          document
                              .querySelector(`button[shortcut="${shortcut}"]`)
                              ?.click(),
                  }
                : binding.value;

        const handleKeydown = (event) => {
            if (event.key === key && (!ctrl || event.ctrlKey) && (!alt || event.altKey)) {
                callback();
            }
        };

        // Attach the event listener to the window
        window.addEventListener('keydown', handleKeydown);

        el._handleKeydown = handleKeydown;
    },
    unmounted: function (el) {
        if (el._handleKeydown) {
            window.removeEventListener('keydown', el._handleKeydown);
        }
    },
};
