Files
Bogdan Chadkin 88dd24ff7d Move pubsub from sdk to builder (#2280)
Pubsub is only used for builder/canvas communication while sdk is
responsible for rendering sites.
Here moved pubsub to builder. Now we can drop nanoevents from cli
dependencies.
2023-09-08 20:56:46 +04:00

26 lines
511 B
TypeScript

type Task = () => void;
let handle: ReturnType<typeof requestAnimationFrame> | undefined;
let updateQueue: Task[] = [];
const processUpdates = (updates: Task[]) => {
for (const update of updates) {
update();
}
};
export const batchUpdate = (update: () => void) => {
updateQueue.push(update);
if (handle !== undefined) {
return;
}
handle = requestAnimationFrame(() => {
const updates = updateQueue;
updateQueue = [];
handle = undefined;
processUpdates(updates);
});
};