render method

Widget render({
  1. required Node node,
  2. required Size parentSize,
  3. required int itemCount,
  4. required IndexedWidgetBuilder itemBuilder,
  5. Axis scrollDirection = Axis.vertical,
  6. bool shrinkWrap = false,
})

Implementation

Widget render({
  required final figma.Node node,
  required final Size parentSize,
  required final int itemCount,
  required final IndexedWidgetBuilder itemBuilder,
  final Axis scrollDirection = Axis.vertical,
  final bool shrinkWrap = false,
}) {
  if (!node.visible) return const SizedBox.shrink();

  final layoutAdapter = FigmaLayoutAdapter(node);
  final decorationAdapter = FigmaDecorationAdapter(node);
  final constraintsAdapter = FigmaConstraintsAdapter(node, parentSize);

  layoutAdapter.validateLayout();

  Widget list = ListView.separated(
    padding: layoutAdapter.padding,
    scrollDirection: scrollDirection,
    itemCount: itemCount,
    shrinkWrap: shrinkWrap,
    separatorBuilder:
        (context, index) => SizedBox(
          width:
              scrollDirection == Axis.horizontal
                  ? layoutAdapter.itemSpacing
                  : 0,
          height:
              scrollDirection == Axis.vertical
                  ? layoutAdapter.itemSpacing
                  : 0,
        ),
    itemBuilder: itemBuilder,
  );

  list = Container(
    decoration: decorationAdapter.createBoxDecoration(),
    child: decorationAdapter.wrapWithBlurEffects(list),
  );

  return constraintsAdapter.applyConstraints(list);
}