render method

  1. @override
void render(
  1. Rect area,
  2. Buffer buffer,
  3. RenderContext ctx
)
override

Implementation

@override
void render(Rect area, Buffer buffer, RenderContext ctx) {
  if (area.isEmpty) return;
  final s = style ?? Style(fg: ctx.theme.colors.primary);
  final effectiveKey =
      tickerKey ?? Key.composite([#__spinner, area.x, area.y]);
  final entry = ctx.async_.useStream<int>(
    effectiveKey,
    () => _ticker(interval),
  );
  final tick = entry.value ?? frame;
  final ch = frames[tick % frames.length];
  final text = label != null ? '$ch $label' : ch;
  buffer.writeText(area.x, area.y, text, style: s, maxWidth: area.width);
}