getStaggeredGrid method

StaggeredGrid getStaggeredGrid(
  1. Widget widget
)

Recursively extracts the inner StaggeredGrid from wrapped widgets.

Handles MeasureSize and Column wrappers, throwing on failure for debugging. Used in hasHoles for layout validation.

Implementation

StaggeredGrid getStaggeredGrid(Widget widget) {
  if (widget is StaggeredGrid) {
    return widget;
  } else if (widget is MeasureSize) {
    return getStaggeredGrid(widget.child);
  } else if (widget is Column) {
    return getStaggeredGrid(widget.children.whereType<StaggeredGrid>().first);
  } else {
    try {
      return getStaggeredGrid((widget as dynamic).child as Widget);
    } catch (e, es) {
      error("[CARPET] Failed to get child widget $e $es");
      rethrow;
    }
  }
}