1
0
mirror of https://github.com/jaandrle/deka-dom-el synced 2024-11-22 07:49:38 +01:00

no good direction

how to clean up not used in text re-rendering ⇒ needs to be more inside of `O.el`
This commit is contained in:
Jan Andrle 2024-01-14 09:55:23 +01:00
parent 14427882ed
commit 277ad6a7f5
Signed by: jaandrle
GPG Key ID: B3A25AED155AFFAB

View File

@ -81,24 +81,11 @@ function todoComponent({ textContent, value }){
textContent(ev.target.value);
is_editable(false);
});
const memo= initMemo(host);
return el("li").append(
O.el(is_editable, is=> is
? memo("view", ()=> el("input", { value: textContent(), type: "text" }, onedited))
: memo("edit", ()=> el("span", { textContent, onclick: is_editable.bind(null, true) }))
? el("input", { value: textContent(), type: "text" }, onedited)
: el("span", { textContent, onclick: is_editable.bind(null, true) })
),
el("button", { type: "button", value, textContent: "-" }, onclick)
);
}
function initMemo(host){
const memos= new Map();
host(on.disconnected(()=> memos.clear()));
return function useMemo(key, fn){
let memo= memos.get(key);
if(!memo){
memo= fn();
memos.set(key, memo);
}
return memo;
}
}