export type HomeStreamingRenderProbeSnapshot = Readonly<{ settledListRenders: number; settledRowRenders: number; streamingRowRenders: number; unsplitListRenders: number; latestEntryMounts: number; }>; const emptySnapshot = (): HomeStreamingRenderProbeSnapshot => ({ settledListRenders: 0, settledRowRenders: 0, streamingRowRenders: 0, unsplitListRenders: 0, latestEntryMounts: 0, }); let enabled = false; let snapshot = emptySnapshot(); export function enableHomeStreamingRenderProbe() { enabled = true; snapshot = emptySnapshot(); } export function disableHomeStreamingRenderProbe() { enabled = false; snapshot = emptySnapshot(); } export function resetHomeStreamingRenderProbe() { snapshot = emptySnapshot(); } export function homeStreamingRenderProbeSnapshot(): HomeStreamingRenderProbeSnapshot { return snapshot; } export function noteSettledListRender() { if (enabled) snapshot = { ...snapshot, settledListRenders: snapshot.settledListRenders + 1 }; } export function noteSettledRowRender() { if (enabled) snapshot = { ...snapshot, settledRowRenders: snapshot.settledRowRenders + 1 }; } export function noteStreamingRowRender() { if (enabled) snapshot = { ...snapshot, streamingRowRenders: snapshot.streamingRowRenders + 1 }; } export function noteUnsplitListRender() { if (enabled) snapshot = { ...snapshot, unsplitListRenders: snapshot.unsplitListRenders + 1 }; } export function noteLatestEntryMount() { if (enabled) snapshot = { ...snapshot, latestEntryMounts: snapshot.latestEntryMounts + 1 }; }