alinea
Version:
Headless git-based CMS
27 lines (25 loc) • 581 B
JavaScript
import {
atom
} from "../../chunks/chunk-WJ67RR7S.js";
import "../../chunks/chunk-NZLE2WMY.js";
// src/dashboard/util/DebounceAtom.ts
function debounceAtom(readable, delay) {
const current = atom(void 0);
let timeout;
const result = atom(
(get, options) => {
const next = get(readable);
const update = () => options.setSelf(next);
clearTimeout(timeout);
timeout = setTimeout(update, delay);
return get(current) ?? next;
},
(get, set, value) => {
set(current, value);
}
);
return result;
}
export {
debounceAtom
};