iconManager function

Widget iconManager(
  1. Style style,
  2. Widget? leftChild,
  3. Widget? rightChild,
  4. double gap,
  5. String text,
  6. Widget? topChild,
  7. Widget? bottomChild,
)

Implementation

Widget iconManager(Style style, Widget? leftChild, Widget? rightChild,
    double gap, String text, Widget? topChild, Widget? bottomChild) {
  List<Widget> children = [];

  Widget widget = prepareTextWidget(style, text);

  if (leftChild != null || rightChild != null) {
    if (leftChild != null) {
      children.add(leftChild);
      if (text != "") {
        children.add(SizedBox(width: gap));
        children.add(widget);
      }
    }
    if (rightChild != null) {
      if (text != "") {
        children.add(widget);
        children.add(SizedBox(width: gap));
      }
      children.add(rightChild);
    }
    return Row(
        mainAxisAlignment: style.mainAxisAlignment ?? MainAxisAlignment.center,
        crossAxisAlignment:
            style.crossAxisAlignment ?? CrossAxisAlignment.center,
        children: children);
  }

  if (topChild != null || bottomChild != null) {
    if (topChild != null) {
      children.add(topChild);
      if (text != "") {
        children.add(SizedBox(height: gap));
        children.add(widget);
      }
    }
    if (bottomChild != null) {
      if (text != "") {
        children.add(widget);
        children.add(SizedBox(height: gap));
      }
      children.add(bottomChild);
    }
    return Column(
        mainAxisAlignment: style.mainAxisAlignment ?? MainAxisAlignment.center,
        crossAxisAlignment:
            style.crossAxisAlignment ?? CrossAxisAlignment.center,
        children: children);
  }

  return Row(
      mainAxisAlignment: style.mainAxisAlignment ?? MainAxisAlignment.center,
      crossAxisAlignment: style.crossAxisAlignment ?? CrossAxisAlignment.center,
      children: [widget]);
}