secondaryButton method

Widget secondaryButton({
  1. required dynamic title,
  2. EdgeInsets? margin,
  3. ButtonSize? buttonSize,
  4. double? borderRadius,
  5. double? elevation,
  6. bool isLoading = false,
  7. bool isDisabled = false,
  8. Color? backgroundColor,
  9. Color? disabledBackgroundColor,
  10. Color? titleColor,
  11. Color? disabledTitleColor,
  12. Color? splashColor,
  13. Color? disabledSplashColor,
  14. Color? borderColor,
  15. Color? disabledBorderColor,
  16. Color? loadingColor,
  17. Widget? loadingWidget,
  18. dynamic onTap()?,
  19. IconPosition? iconPosition,
  20. Widget? iconWidget,
})

Component of Secondary Button

Implementation

Widget secondaryButton(
    {required title,

    /// change title
    EdgeInsets? margin,

    /// change margin
    ButtonSize? buttonSize,

    /// change button size
    double? borderRadius,

    /// change border radius
    double? elevation,

    /// change elevation
    bool isLoading = false,

    /// change state isLoading
    bool isDisabled = false,

    /// change state isDisabled
    Color? backgroundColor,

    /// change background color
    Color? disabledBackgroundColor,

    /// change disable background color
    Color? titleColor,

    /// change title color
    Color? disabledTitleColor,

    /// change disable title color
    Color? splashColor,

    /// change splash color
    Color? disabledSplashColor,

    /// change disable splash color
    Color? borderColor,

    /// change border color
    Color? disabledBorderColor,

    /// change disable border color
    Color? loadingColor,

    /// change loading color
    Widget? loadingWidget,

    /// change loading widget
    Function()? onTap,

    /// call function using onTap
    IconPosition? iconPosition,

    /// change icon position
    Widget? iconWidget

    /// change icon widget
    }) {
  return ValueListenableBuilder<Size>(
      valueListenable: InitialValue.screenSizeNotifier,
      builder: (context, size, _) {
      return Padding(
        padding: margin ?? const EdgeInsets.symmetric(vertical: 4),
        child: Material(
          color: isDisabled
              ? disabledBackgroundColor ?? ColorTheme.grey700
              : backgroundColor ??
                  ColorTheme.secondaryBackgroundColor ??
                  ColorTheme.white,
          elevation: elevation ?? 1,
          borderRadius: BorderRadius.circular(borderRadius ?? 12),
          child: InkWell(
            splashColor: isDisabled
                ? Colors.transparent
                : splashColor ?? ColorTheme.primary500,
            borderRadius: BorderRadius.circular(borderRadius ?? 12),
            onTap: isLoading || isDisabled ? () {} : onTap,
            child: Container(
                alignment: Alignment.center,
                width:
                    funcButtonSizeConverter(buttonSize ?? ButtonSize.fullWidth),
                padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
                decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(borderRadius ?? 12),
                    border: Border.all(
                        color: isDisabled
                            ? disabledBorderColor ?? ColorTheme.black
                            : borderColor ??
                                ColorTheme.secondaryStrokeColor ??
                                ColorTheme.primary500)),
                child: isLoading
                    ? loadingChildContainer(
                        loadingWidget: loadingWidget ??
                            SizedBox(
                              height: funcLoadingSizeConverter(
                                  buttonSize ?? ButtonSize.fullWidth),
                              width: funcLoadingSizeConverter(
                                  buttonSize ?? ButtonSize.fullWidth),
                              child: CircularProgressIndicator(
                                color: loadingColor ??
                                    titleColor ??
                                    ColorTheme.black,
                              ),
                            ))
                    : childContainerWidget(
                        iconPosition: iconPosition ?? IconPosition.left,
                        body: standardHeaderText(
                            fontSize: funcFontSizeConverter(
                                buttonSize ?? ButtonSize.fullWidth),
                            text: title,
                            color: isDisabled
                                ? disabledTitleColor ?? ColorTheme.black
                                : titleColor ??
                                    ColorTheme.secondaryTitleColor ??
                                    ColorTheme.black),
                        icon: iconWidget)),
          ),
        ),
      );
    }
  );
}