formatText method

List<InlineSpan> formatText()

Implementation

List<InlineSpan> formatText() {
  InlineSpan? textSpan;

  if (shouldLinkify) {
    final linkfyText = <InlineSpan>[];

    if (text?.isNotEmpty ?? false) {
      linkfyText.addAll(
        GrxLinkify.plainText(
          text: text!,
          defaultStyle: style,
          linkColor: GrxColors.primary.shade600,
        ),
      );
    } else if (this.textSpan != null) {
      linkfyText.addAll(
        GrxLinkify.textSpan(
          textSpan: this.textSpan!,
          defaultStyle: style,
          linkColor: GrxColors.primary.shade600,
        ),
      );
    }

    textSpan = TextSpan(children: linkfyText);
  } else {
    textSpan = this.textSpan;
  }

  final formattedText = <InlineSpan>[];

  if (textSpan != null) {
    textSpan.visitChildren((span) {
      if (span is TextSpan) {
        final spanText = span.text;
        final spanStyle = span.style ?? style;

        formattedText.add(
          TextSpan(
            text: _capitalize(spanText),
            style: spanStyle,
            recognizer: span.recognizer,
            children: span.children,
            locale: span.locale,
            mouseCursor: span.mouseCursor,
            onEnter: span.onEnter,
            onExit: span.onExit,
            semanticsLabel: span.semanticsLabel,
            spellOut: span.spellOut,
          ),
        );
      } else {
        formattedText.add(span);
      }

      return true;
    });
  } else {
    formattedText.add(TextSpan(text: _capitalize(text)));
  }

  return formattedText;
}