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,
    ),
  );
}