1
0
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:
2023-08-26 17:32:58 +02:00
parent a36786042b
commit f5adefbc9c
6 changed files with 86 additions and 58 deletions

View File

@ -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();