24 lines
822 B
JavaScript
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);
|
|
}
|
|
}
|