1
0
mirror of https://github.com/jaandrle/deka-dom-el synced 2024-11-22 16:55:23 +01:00
This commit is contained in:
Jan Andrle 2024-01-13 09:55:46 +01:00
parent 13c75fede1
commit 14427882ed
Signed by: jaandrle
GPG Key ID: B3A25AED155AFFAB

View File

@ -81,11 +81,24 @@ 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
? el("input", { value: textContent(), type: "text" }, onedited)
: el("span", { textContent, onclick: is_editable.bind(null, true) }),
? memo("view", ()=> el("input", { value: textContent(), type: "text" }, onedited))
: memo("edit", ()=> 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;
}
}