attach method

  1. @override
Widget? attach(
  1. BuildContext context,
  2. NullableViewController controller
)
override

Implementation

@override
Widget? attach(BuildContext context, NullableViewController controller) {
  var mIcon = IconView(
    controller: iconController,
    visibility: controller.iconVisible,
    marginBottom: controller.iconSpacing,
    icon: controller.icon,
    size: controller.iconSize,
    tint: controller.iconTint,
    tintMode: controller.iconTintMode,
  );
  var mHeader = TextView(
    controller: headerController,
    visibility: controller.headerVisible,
    width: double.infinity,
    gravity: Alignment.center,
    text: controller.header,
    textColor: controller.headerColor,
    textAlign: TextAlign.center,
    textFontFamily: controller.headerFontFamily,
    textFontWeight: controller.headerFontWeight,
    textSize: controller.headerSize,
  );
  var mBody = TextView(
    controller: bodyController,
    visibility: controller.bodyVisible,
    width: double.infinity,
    gravity: Alignment.center,
    marginTop: controller.bodySpacing,
    text: controller.body,
    textAlign: TextAlign.center,
    textColor: controller.bodyColor,
    textFontFamily: controller.bodyFontFamily,
    textFontWeight: controller.bodyFontWeight,
    textSize: controller.bodySize,
  );
  var mButton = Button(
    controller: buttonController,
    visibility: controller.buttonVisible,
    marginTop: controller.buttonSpacing,
    background: controller.buttonBackground ?? context.primaryColor,
    widthMin: controller.buttonMinWidth,
    paddingHorizontal: controller.buttonPaddingX,
    paddingVertical: controller.buttonPaddingY,
    rippleColor: controller.buttonRippleColor ?? Colors.black26,
    pressedColor: Colors.black12,
    borderRadius: controller.buttonBorderRadius,
    text: controller.buttonText,
    textColor: controller.buttonTextColor ?? Colors.white,
    textFontWeight: controller.buttonTextFontWeight,
    textSize: controller.buttonTextSize,
    onClick: onButtonClick,
  );
  var mSecondaryButton = Button(
    controller: secondaryButtonController,
    visibility: controller.secondaryButtonVisible,
    marginTop: controller.secondaryButtonSpacing,
    background: controller.secondaryButtonBackground ??
        (controller.buttonBackground ?? context.primaryColor)
            .withOpacity(0.1),
    widthMin: controller.secondaryButtonMinWidth,
    paddingHorizontal: controller.secondaryButtonPaddingX,
    paddingVertical: controller.secondaryButtonPaddingY,
    rippleColor: controller.secondaryButtonRippleColor ??
        (controller.buttonRippleColor ?? Colors.black26).withOpacity(0.2),
    pressedColor: Colors.black12,
    borderRadius: controller.secondaryButtonBorderRadius ??
        controller.buttonBorderRadius,
    text: controller.secondaryButtonText,
    textColor: controller.secondaryButtonTextColor ??
        controller.buttonBackground ??
        context.primaryColor,
    textFontWeight: controller.secondaryButtonTextFontWeight ??
        controller.buttonTextFontWeight,
    textSize: controller.secondaryButtonTextSize ?? controller.buttonTextSize,
    onClick: onSecondaryButtonClick,
  );
  return Column(
    crossAxisAlignment: CrossAxisAlignment.center,
    mainAxisAlignment: MainAxisAlignment.center,
    mainAxisSize: MainAxisSize.max,
    children: [
      iconBuilder?.call(context, mIcon) ?? mIcon,
      headerBuilder?.call(context, mHeader) ?? mHeader,
      bodyBuilder?.call(context, mBody) ?? mBody,
      buttonBuilder?.call(context, mButton) ?? mButton,
      secondaryButtonBuilder?.call(context, mSecondaryButton) ??
          mSecondaryButton,
    ],
  );
}