buildPeopleItem function

Widget buildPeopleItem(
  1. BuildContext context,
  2. People item
)

Implementation

Widget buildPeopleItem(BuildContext context, timeline_api.People item) {
  String? url = '';
  if (item.thumbnail != null && item.thumbnail!.url != null) {
    url = item.thumbnail!.url;
  }

  List<TextSpan> spans = [];

  if (item.dateOfBirth != null && item.dateOfBirth!.isNotEmpty) {
    spans.add(TextSpan(text: formatDate(item.dateOfBirth!)));
  }

  if (item.dateOfDeath != null && item.dateOfDeath!.isNotEmpty) {
    if (spans.isNotEmpty) {
      spans.add(const TextSpan(text: " - "));
    }
    spans.add(TextSpan(text: formatDate(item.dateOfDeath!)));
  }

  Widget widget = ListCell(
    semanticLabel: "People, ${item.firstName} ${item.lastName}",
    thumbnailUrl: url,
    title: Text(
      "${item.firstName ?? ""} ${item.lastName ?? ""}",
      textAlign: TextAlign.center,
      style: const TextStyle(fontWeight: FontWeight.bold),
    ),
    subtitle: RichText(
      textAlign: TextAlign.center,
      text: TextSpan(
        // Note: Styles for TextSpans must be explicitly defined.
        // Child text spans will inherit styles from parent
        style: const TextStyle(
          color: Colors.black,
        ),
        children: spans,
      ),
    ),
    subtitle2: Text(
      item.summary ?? '',
      textAlign: TextAlign.center,
      maxLines: 2,
    ),
  );
  return widget;
}