desire method

Text desire(
  1. List desirable
)

Implementation

Text desire(List desirable) {
  final desires = [
    style != null ? this : const Text("", style: TextStyle()),
    ...desirable.map((e) {
      if (e is Text) return e;
      if (e is TextStyle) return Text("", style: e);
      return null;
    }).whereType<Text>(),
  ].toList();

  return Text(
    data ?? "",
    key: key,
    textAlign: mapDesire<TextAlign, Text>(desires, (e) => e.textAlign),
    textDirection:
        mapDesire<TextDirection, Text>(desires, (e) => e.textDirection),
    locale: mapDesire<Locale, Text>(desires, (e) => e.locale),
    softWrap: mapDesire<bool, Text>(desires, (e) => e.softWrap),
    overflow: mapDesire<TextOverflow, Text>(desires, (e) => e.overflow),
    textScaleFactor:
        mapDesire<double, Text>(desires, (e) => e.textScaleFactor),
    maxLines: mapDesire<int, Text>(desires, (e) => e.maxLines),
    semanticsLabel: mapDesire<String, Text>(desires, (e) => e.semanticsLabel),
    textWidthBasis:
        mapDesire<TextWidthBasis, Text>(desires, (e) => e.textWidthBasis),
    textHeightBehavior: mapDesire<TextHeightBehavior, Text>(
        desires, (e) => e.textHeightBehavior),
    style: desires
        .map((e) => e.style)
        .whereType<TextStyle>()
        .reduce((acc, e) => acc.merge(e)),
  );
}