renderStateFields function

void renderStateFields(
  1. LiveBlock block,
  2. List<LiveStateField> fields, {
  3. bool full = false,
})

Adds a fields section for the fields of a state to block.

Implementation

void renderStateFields(
  LiveBlock block,
  List<LiveStateField> fields, {
  bool full = false,
}) {
  block.heading('fields');
  if (fields.isEmpty) {
    block.note('This state declares no fields of its own');
    return;
  }

  if (full) {
    for (final LiveStateField field in fields) {
      block
        ..plain('')
        ..plain('  ${field.name}  ${_fieldSuffix(field)}'.trimRight());
      if (field.unread != null) {
        block.note(field.unread!);
      } else {
        block.json(field.value);
      }
    }
    return;
  }

  final int width = fields
      .map((LiveStateField field) => field.name.length)
      .fold(0, (int a, int b) => a > b ? a : b);
  for (final LiveStateField field in fields) {
    final String suffix = _fieldSuffix(field);
    block.plain(
      '  ${field.name.padRight(width + 2)}${_fieldValue(field)}'
              '${suffix.isEmpty ? '' : '  $suffix'}'
          .trimRight(),
    );
  }
}