from static method

XHorizontalScrollParams? from(
  1. XHorizontalScroll widget,
  2. SSRBuildContext context,
  3. WidgetMetadata metadata
)

Implementation

static XHorizontalScrollParams? from(
  XHorizontalScroll widget,
  SSRBuildContext context,
  WidgetMetadata metadata,
) {
  final children = _buildChildren(widget.children, context);

  if (children.isEmpty) {
    return null;
  }

  bool hasMoreThanOneChildren = children.length > 1;

  final indicator = XIndicatorWrappings.from(widget);
  return XHorizontalScrollParams(
    indicator: indicator.hasIndicator ? indicator : null,
    itemPadding: widget.itemPadding.toEdgeInsets(),
    itemWidth: widget.itemWidth.toExtent(isDimension: true) ?? 0,
    itemHeight: widget.itemHeight.toExtent(isDimension: true) ?? 0,
    children: children,
    infiniteScroll: hasMoreThanOneChildren && widget.infiniteScroll,
    showIndicator: widget.showIndicator &&
        indicator.hasIndicator &&
        hasMoreThanOneChildren,
    snap: widget.snap,
    scrollLeftPadding: widget.scrollLeftPadding.toExtent(isDimension: true),
    scrollRightPadding: widget.scrollRightPadding.toExtent(isDimension: true),
    autoScroll: hasMoreThanOneChildren && (widget.autoScroll ?? false),
    autoScrollDuration: widget.autoScrollDurationMs?.ms,
    noScroll: !hasMoreThanOneChildren,
  );
}