Files
michaelschiemer/resources/js/core/useEvent.js

24 lines
822 B
JavaScript

// 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);
}
}