Work tile: Refactor and add leading widget

This commit is contained in:
Elias Projahn 2020-04-05 20:15:20 +02:00
parent db9f6a0eb4
commit 26b1f13c03

View file

@ -4,10 +4,12 @@ import '../backend.dart';
import '../database.dart'; import '../database.dart';
class WorkTile extends StatelessWidget { class WorkTile extends StatelessWidget {
final Widget leading;
final int workId; final int workId;
final void Function() onTap; final void Function() onTap;
WorkTile({ WorkTile({
this.leading,
this.workId, this.workId,
this.onTap, this.onTap,
}); });
@ -24,21 +26,17 @@ class WorkTile extends StatelessWidget {
return StreamBuilder<List<Person>>( return StreamBuilder<List<Person>>(
stream: backend.db.composersByWork(workId).watch(), stream: backend.db.composersByWork(workId).watch(),
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasData) { final subtitleText = snapshot.hasData
return ListTile( ? snapshot.data
title: Text(titleText),
subtitle: Text(snapshot.data
.map((p) => '${p.firstName} ${p.lastName}') .map((p) => '${p.firstName} ${p.lastName}')
.join(', ')), .join(', ')
onTap: onTap ?? null, : '...';
); return ListTile(
} else { leading: leading,
return ListTile( title: Text(titleText),
title: Text(titleText), subtitle: Text(subtitleText),
subtitle: Text('...'), onTap: onTap ?? null,
onTap: onTap ?? null, );
);
}
}, },
); );
}, },