renderSeederList function
void
renderSeederList(})
Adds the seeders in a seeders.list payload to block.
Seeders in registered (from lib/bootstrap/seeders.dart) that the app
didn't list were usually added after it started, so block ends by
saying to hot restart with restart. seed and rollback are how to run
and undo a seeder from where the list was shown.
Implementation
void renderSeederList(
LiveBlock block,
String device,
Object? payload, {
List<String> registered = const [],
String restart = 'restart',
String seed = 'seed',
String rollback = 'seed:rollback',
}) {
final Object? list = payload is Map ? payload['seeders'] : null;
final List<Map<Object?, Object?>> seeders = [
if (list is List)
for (final Object? seeder in list)
if (seeder is Map) seeder,
];
final List<String> notLoaded = _notLoaded(registered, [
for (final Map<Object?, Object?> seeder in seeders)
if (seeder['registered'] != false) '${seeder['name']}',
]);
if (seeders.isEmpty) {
if (notLoaded.isEmpty) {
block.note(
'This app has no seeders yet. Create one with: '
'metro make:seeder demo_user',
);
}
_warnNotLoaded(block, notLoaded, restart);
return;
}
block.heading('Seeders on $device:');
block.table(
['NAME', 'DESCRIPTION', 'STATUS'],
[
for (final Map<Object?, Object?> seeder in seeders)
[
'${seeder['name']}',
seeder['source'] != null
? '(imported from ${seeder['source']})'
: seeder['registered'] == false
? '(no longer registered)'
: '${seeder['description'] ?? ''}',
describeSeededAt(seeder['seededAt']),
],
],
);
block.note('Run one with $seed <name>, and undo it with $rollback <name>');
_warnNotLoaded(block, notLoaded, restart);
}