chip method

Widget chip({
  1. required String title,
  2. EdgeInsets? margin,
  3. ChipSize? chipSize,
  4. double? borderRadius,
  5. double? elevation,
  6. bool isDisabled = false,
  7. bool isUsingCloseIcon = false,
  8. Color? backgroundColor,
  9. Color? disabledBackgroundColor,
  10. Color? titleColor,
  11. Color? disabledTitleColor,
  12. Color? splashColor,
  13. Color? borderColor,
  14. Color? disabledBorderColor,
  15. dynamic onTap()?,
  16. dynamic onTapClose()?,
  17. Widget? iconWidget,
  18. Widget? iconCloseWidget,
})

Component of Chip

Implementation

Widget chip(
    {required String title, /// change title
    EdgeInsets? margin, /// change margin
    ChipSize? chipSize, /// change chipSize
    double? borderRadius, /// change borderRadius
    double? elevation, /// change elevation
    bool isDisabled = false, /// change state isDisabled
    bool isUsingCloseIcon = false, /// change is using close icon
    Color? backgroundColor, /// change background color
    Color? disabledBackgroundColor, /// change disable background color
    Color? titleColor, /// change title color
    Color? disabledTitleColor, /// change disabled title color
    Color? splashColor, /// change splash color
    Color? borderColor, /// change border color
    Color? disabledBorderColor, /// change disabled title color
    Function()? onTap, /// call function onTap
    Function()? onTapClose, /// call function when close button tapped
    Widget? iconWidget, /// change icon widget
    Widget? iconCloseWidget /// change icon close widget
    }) {
  return Padding(
    padding: margin ?? const EdgeInsets.symmetric(vertical: 4),
    child: Material(
      color: isDisabled
          ? disabledBackgroundColor ?? ColorTheme.grey700
          : backgroundColor ?? ColorTheme.primary700,
      elevation: elevation ?? 1,
      borderRadius: BorderRadius.circular(borderRadius ?? 12),
      child: InkWell(
        splashColor:
            isDisabled ? Colors.transparent : splashColor ?? ColorTheme.white,
        borderRadius: BorderRadius.circular(borderRadius ?? 12),
        onTap: isDisabled ? () {} : onTap,
        child: Container(
            alignment: Alignment.center,
            padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(borderRadius ?? 12),
                border: Border.all(
                    color: isDisabled
                        ? disabledBorderColor ?? ColorTheme.black
                        : borderColor ?? ColorTheme.primary500)),
            child: childChipWidget(
              icon: iconWidget,
              iconCloseWidget: isUsingCloseIcon
                  ? iconCloseWidget ??
                    Container(
                      margin: const EdgeInsets.only(left: 8),
                      child: GestureDetector(
                        onTap: onTapClose,
                        child: Icon(Icons.close,
                          color: isDisabled
                              ? ColorTheme.black
                              : ColorTheme.danger500,
                          size: funcIconCloseConverter(chipSize ?? ChipSize.medium),
                        ),
                      ),
                    )
                  : const SizedBox(),
              body: standardHeaderText(
                  fontSize:
                      funcFontSizeConverter(chipSize ?? ChipSize.medium),
                  text: title,
                  color: isDisabled
                      ? disabledTitleColor ?? ColorTheme.black
                      : titleColor ?? ColorTheme.black),
            )),
      ),
    ),
  );
}