mirror of
https://github.com/jaandrle/deka-dom-el
synced 2025-07-01 12:22:15 +02:00
💥 Signals are now optional + reactive element
- `registerReactivity` can be used to register custom behavior - Signals are automatically registered when `signals.js` is imported; - `el("<>", signal, map)`
This commit is contained in:
@ -1,11 +1,13 @@
|
||||
import { isSignal, addSignalListener, removeSignalListener } from './signals-common.js';
|
||||
import { signals } from './signals-common.js';
|
||||
export { registerReactivity } from './signals-common.js';
|
||||
|
||||
export function on(event, listener, options){
|
||||
if(!isSignal(event))
|
||||
if(!signals.isReactiveAtrribute(event))
|
||||
return element=> element.addEventListener(event, listener, options);
|
||||
//TODO cleanup when signal removed (also TODO)
|
||||
if(options && options.signal)
|
||||
options.signal.addEventListener("abort", ()=> removeSignalListener(event, listener));
|
||||
return addSignalListener(event, listener);
|
||||
options.signal.addEventListener("abort", ()=> signals.off(event, listener));
|
||||
return signals.on(event, listener);
|
||||
}
|
||||
export function off(){//TODO is needed?
|
||||
const abort= new AbortController();
|
||||
|
Reference in New Issue
Block a user