handleScroll method

  1. @override
ViewportState handleScroll(
  1. ScrollEvent event,
  2. DataGridState<T> currentState
)
override

Handle scroll event and calculate updated viewport state.

Implementation

@override
ViewportState handleScroll(ScrollEvent event, DataGridState<T> currentState) {
  final visibleRange = _calculator.calculateVisibleRows(
    event.offsetY,
    currentState.viewport.viewportHeight,
    currentState.displayOrder.length,
  );

  final visibleColumnRange = _calculator.calculateVisibleColumns(
    event.offsetX,
    currentState.columns.map((c) => c.width).toList(),
    currentState.viewport.viewportWidth,
  );

  return currentState.viewport.copyWith(
    scrollOffsetX: event.offsetX,
    scrollOffsetY: event.offsetY,
    firstVisibleRow: visibleRange.start,
    lastVisibleRow: visibleRange.end,
    firstVisibleColumn: visibleColumnRange.start,
    lastVisibleColumn: visibleColumnRange.end,
  );
}