typing static method

WxAnimatedTextBuilder typing({
  1. String? trails,
  2. Duration trailsBlinking = const Duration(milliseconds: 500),
})

This function is used to create a typing animation for text widgets in the WxAnimatedText class. It simulates the effect of text being typed on screen one character at a time.

Implementation

static WxAnimatedTextBuilder typing({
  String? trails,
  Duration trailsBlinking = const Duration(milliseconds: 500),
}) {
  return (child, final state) {
    final config = child as WxText;
    final value = state.animation.value.clamp(0, 1);
    final chars = config.text.characters;
    final count = (value * chars.length).round();
    final text = chars.take(count).toString();

    final trailing = (trails ?? '').trim();
    if (trailing.isNotEmpty) {
      if (state.isCompleted) {
        return AnimatedRepeatable(
          duration: trailsBlinking,
          transition: (widget, state) {
            final blinking = state.animation.value > .5 ? trailing : '';
            return WxText.from(config, text: text + blinking);
          },
          child: const SizedBox(),
        );
      }
    }

    return WxText.from(config, text: text + trailing);
  };
}