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