// modules/core/useEvent.js
import { EventManager } from './EventManager.js';

/**
 * Vereinfachte Kurzform zur Registrierung eines EventListeners
 *
 * @param {EventTarget} target - Das Element, auf das der Event gehört
 * @param {string} type - Der Eventtyp (z.B. 'click')
 * @param {Function} handler - Die Callback-Funktion
 * @param {object} meta - Optionen oder automatisch aus `import.meta` (optional)
 * @param {Object|boolean} options - EventListener-Optionen
 */
export function useEvent(target, type, handler, meta = import.meta, options = false) {
    const module = typeof meta === 'string'
        ? meta
        : (meta.url?.split('/').slice(-2, -1)[0] || 'unknown');

    EventManager.add(target, type, handler, { module, options });

    return () => {
        EventManager.removeModule(module);
    }
}
