favoriteMorph method

Widget favoriteMorph({
  1. double size = 24,
  2. Color? activeColor,
  3. Color? inactiveColor,
  4. IconMorphStyle style = IconMorphStyle.scale,
})

Create a favorite toggle icon morph.

Implementation

Widget favoriteMorph({
  double size = 24,
  Color? activeColor,
  Color? inactiveColor,
  IconMorphStyle style = IconMorphStyle.scale,
}) {
  return NeuronAtomBuilder<bool>(
    atom: this,
    builder: (ctx, isFavorite, _) {
      return AnimatedSwitcher(
        duration: const Duration(milliseconds: 300),
        transitionBuilder: (child, animation) {
          return ScaleTransition(
            scale: animation,
            child: child,
          );
        },
        child: Icon(
          isFavorite ? Icons.favorite : Icons.favorite_border,
          key: ValueKey(isFavorite),
          size: size,
          color: isFavorite ? (activeColor ?? Colors.red) : inactiveColor,
        ),
      );
    },
  );
}