chatSpannedText function

Widget chatSpannedText(
  1. String text,
  2. String spannableText,
  3. TextStyle? style, {
  4. int? maxLines,
  5. Color spanColor = Colors.orange,
  6. Color urlColor = Colors.blue,
})

Implementation

Widget chatSpannedText(String text, String spannableText, TextStyle? style,
    {int? maxLines,
    Color spanColor = Colors.orange,
    Color urlColor = Colors.blue}) {
  var startIndex = text.toLowerCase().contains(spannableText.toLowerCase())
      ? text.toLowerCase().indexOf(spannableText.toLowerCase())
      : -1;
  var endIndex = startIndex + spannableText.length;
  if (startIndex != -1 && endIndex != -1) {
    var startText = text.substring(0, startIndex);
    var colorText = text.substring(startIndex, endIndex);
    var endText = text.substring(endIndex, text.length);
    return Text.rich(
      TextSpan(
          text: startText,
          children: [
            TextSpan(text: colorText, style: TextStyle(color: spanColor)),
            TextSpan(text: endText)
          ],
          style: style),
      maxLines: maxLines,
      overflow: TextOverflow.ellipsis,
    );
  } else {
    return textMessageSpannableText(text, style, urlColor, maxLines: maxLines);
  }
}