buildIcon static method

Widget buildIcon(
  1. BuildContext context,
  2. String? assetName,
  3. OudsLinkControlState controlItemState,
  4. OudsLinkLayout layout,
  5. OudsLinkSize size,
)

Implementation

static Widget buildIcon(
    BuildContext context,
    String? assetName,
    OudsLinkControlState controlItemState,
    OudsLinkLayout layout,
    OudsLinkSize size,
    ) {

  final statusModifier = OudsLinkStatusModifier(context);
  final sizeModifier = OudsLinkSizeModifier(context);
  final iconSize = sizeModifier.getIconSize(size);
  final isIcon = layout == OudsLinkLayout.textAndIcon;
  final rtlMode = Directionality.of(context) == TextDirection.rtl;

  return  SvgPicture.asset(
      excludeFromSemantics: true,
      assetName ?? statusModifier.getStatusIcon(layout, rtlMode)!,
      package: assetName == null ? OudsTheme.of(context).packageName : null,
      width: iconSize[OudsLinkDimensions.width.name],
      height: iconSize[OudsLinkDimensions.height.name],
      fit: BoxFit.contain,
      colorFilter: ColorFilter.mode(
        !isIcon
            ? statusModifier.getArrowColor(controlItemState)
            : statusModifier.getTextAndIconColor(controlItemState),
        BlendMode.srcIn,
      ),
  );
}