+
-
+
|
|
- {loading
- ? Array.from({ length: SKELETON_ROW_COUNT }, (_, i) => (
-
- ))
- : sortedStreams.map((stream) => (
-
- ))}
+ {loading ? (
+ Array.from({ length: SKELETON_ROW_COUNT }, (_, i) => (
+
+ ))
+ ) : shouldVirtualize ? (
+ <>
+ {paddingTop > 0 && (
+
+ |
+
+ )}
+ {resolvedVirtualRows.map((virtualRow) =>
+ renderStreamRow(
+ sortedStreams[virtualRow.index],
+ virtualRow.index,
+ rowVirtualizer.measureElement,
+ ),
+ )}
+ {paddingBottom > 0 && (
+
+ |
+
+ )}
+ >
+ ) : (
+ sortedStreams.map((stream, index) => renderStreamRow(stream, index))
+ )}
@@ -390,6 +501,8 @@ interface StreamRowProps {
healthBadges: ReturnType
;
visibleOptionalColumns: OptionalStreamColumn[];
colSpan: number;
+ dataIndex: number;
+ measureRef?: (element: HTMLTableRowElement | null) => void;
onToggleTimeline: (id: string) => void;
onCheckboxToggle: (id: string) => void;
onCancel: (id: string) => Promise;
@@ -408,6 +521,8 @@ const StreamRow = memo(function StreamRow({
healthBadges,
visibleOptionalColumns,
colSpan,
+ dataIndex,
+ measureRef,
onToggleTimeline,
onCheckboxToggle,
onCancel,
@@ -423,7 +538,7 @@ const StreamRow = memo(function StreamRow({
return (
<>
-
+
|
{isExpanded && (
- |
+
|