) : null,
- [activeSessionId, previousHistoryBoundaryStatus, t],
+ [activeSessionId, historyPagingActive, previousHistoryBoundaryStatus, t],
+ );
+ const historyPagingSentinelNode = React.useMemo(
+ () => historyPagingActive && activeSession?.isPartial === true ? (
+
+ ) : null,
+ [activeSession?.isPartial, historyPagingActive, historyPagingLoading, t],
);
const virtuosoContext = React.useMemo
(() => ({
// Reservation pixels are applied imperatively to the stable Footer node.
// Keeping them out of context prevents a measurement-sensitive Virtuoso
// render for every compensation update.
footerRef: handleFooterElementRef,
- previousHistoryBoundaryStatusNode,
+ previousHistoryBoundaryStatusNode: <>
+ {historyPagingSentinelNode}
+ {previousHistoryBoundaryStatusNode}
+ >,
runtimeStatusSessionId: activeSessionId,
}), [
activeSessionId,
handleFooterElementRef,
+ historyPagingSentinelNode,
previousHistoryBoundaryStatusNode,
]);
const computeVirtuosoItemKey = useCallback((_: number, item: VirtualItem) => (
@@ -6441,6 +6706,7 @@ const VirtualMessageListSession = forwardRef
+ {historyPagingSentinelNode}
{previousHistoryBoundaryStatusNode}
{omittedInitialHistoryEstimatedHeightPx > 0 ? (