tagOutline method

Widget tagOutline(
  1. BuildContext context,
  2. String? text, {
  3. IconData? icon,
  4. BadgeColor color = BadgeColor.primary,
  5. BadgeHierarchy? hierarchy = BadgeHierarchy.primary,
  6. Function? onDelete,
  7. Function? onTap,
})

Implementation

Widget tagOutline(BuildContext context, String? text,
    {IconData? icon,
    BadgeColor color = BadgeColor.primary,
    BadgeHierarchy? hierarchy = BadgeHierarchy.primary,
    Function? onDelete,
    Function? onTap}) {
  Color outlineColor = _getBGColor(context, color);
  Color bgColor = hierarchy == BadgeHierarchy.primary
      ? Colors.transparent
      : outlineColor.withOpacity(0.1);

  return GestureDetector(
    onTap: () {
      if (onTap != null) {
        onTap();
      }
    },
    child: Chip(
      side: BorderSide(color: outlineColor, width: 1.5),
      materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
      labelPadding: EdgeInsets.zero,
      padding: EdgeInsets.only(
          left: DUI.spacing.lateralPaddingValue,
          right: DUI.spacing.lateralPaddingValue,
          top: DUI.spacing.lateralPaddingValue / 2 + 2,
          bottom: DUI.spacing.lateralPaddingValue / 2),
      backgroundColor: bgColor,
      label: Row(
        mainAxisSize: MainAxisSize.min,
        children: [
          icon != null
              ? Icon(icon, size: 12, color: outlineColor)
              : const SizedBox.shrink(),
          icon != null && text != null
              ? DUI.spacing.hSpacer(small: true)
              : const SizedBox.shrink(),
          text == null
              ? SizedBox.shrink()
              : DUI.text.xs(context, text, bold: true, color: outlineColor)
        ],
      ),
      onDeleted: onDelete != null
          ? () {
              onDelete();
            }
          : null,
      deleteIconColor: outlineColor,
      deleteIcon: Padding(
        padding: EdgeInsets.only(
            left: DUI.spacing.lateralPaddingValue / 2, bottom: 2),
        child: Icon(Icons.clear, size: 12, color: outlineColor),
      ),
    ),
  );
}