iconManager function

Widget iconManager(
  1. Style style,
  2. Widget? leftChild,
  3. Widget? rightChild,
  4. List<Widget> children,
  5. double gap,
  6. Widget widget,
  7. MainAxisAlignment mainAxisAlignment,
  8. CrossAxisAlignment crossAxisAlignment,
  9. Widget? topChild,
  10. Widget? bottomChild,
)

Implementation

Widget iconManager(
    Style style,
    Widget? leftChild,
    Widget? rightChild,
    List<Widget> children,
    double gap,
    Widget widget,
    MainAxisAlignment mainAxisAlignment,
    CrossAxisAlignment crossAxisAlignment,
    Widget? topChild,
    Widget? bottomChild) {
  if (leftChild == null &&
      rightChild == null &&
      topChild == null &&
      bottomChild == null) {
    return flexManager(
        props: style, children: children.length > 1 ? children : [widget]);
  }

  if (leftChild != null || rightChild != null) {
    if (leftChild != null) {
      children.add(leftChild);
      children.add(SizedBox(width: gap));
    }
    children.add(widget);
    if (rightChild != null) {
      children.add(SizedBox(width: gap));
      children.add(rightChild);
    }
    return Row(
        mainAxisAlignment: mainAxisAlignment,
        crossAxisAlignment: crossAxisAlignment,
        children: children);
  }

  if (topChild != null || bottomChild != null) {
    if (topChild != null) {
      children.add(topChild);
      children.add(SizedBox(height: gap));
    }
    children.add(widget);
    if (bottomChild != null) {
      children.add(SizedBox(height: gap));
      children.add(bottomChild);
    }
    return Column(
        mainAxisAlignment: mainAxisAlignment,
        crossAxisAlignment: crossAxisAlignment,
        children: children);
  }

  return widget;
}