refactor(app): centralize perf diagnostics and activity coalescing
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import type { ActivityFlushHandle } from "./types";
|
||||
|
||||
const DEFAULT_ACTIVITY_FLUSH_INTERVAL_MS = 16;
|
||||
|
||||
export function scheduleAgentLastActivityFlush(
|
||||
callback: () => void,
|
||||
fallbackIntervalMs = DEFAULT_ACTIVITY_FLUSH_INTERVAL_MS
|
||||
): ActivityFlushHandle {
|
||||
if (typeof requestAnimationFrame === "function") {
|
||||
const handle = requestAnimationFrame(callback);
|
||||
return {
|
||||
cancel: () => {
|
||||
if (typeof cancelAnimationFrame === "function") {
|
||||
cancelAnimationFrame(handle);
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const handle = setTimeout(callback, fallbackIntervalMs);
|
||||
return {
|
||||
cancel: () => {
|
||||
clearTimeout(handle);
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user