build method

  1. @override
Widget build(
  1. BuildContext context,
  2. Form item
)
override

Implementation

@override
Widget build(BuildContext context, form_api.Form item) {
  return Consumer<QuizService>(
    builder: (context, service, child) {
      var results = service.getGradeFor(item);
      return ListCell(
          onTap: () => FormRoutes.form
              .push(context: context, queryParams: {"id": item.id}),
          minHeight: 0.0,
          semanticLabel: "FormItem, ${item.name}",
          title: Text(
            item.name ?? '',
            style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
          ),
          subtitle: Text(item.description ?? ''),
          trailing: FutureBuilder<double?>(
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                final grade = snapshot.data!;
                return CircularPercentIndicator(
                  radius: 24,
                  lineWidth: 3,
                  percent: grade,
                  center: Text(
                    '${(grade * 100).truncate()}%',
                    style: Theme.of(context).textTheme.labelMedium,
                  ),
                  progressColor: Colors.green,
                );
              }
              return const SizedBox.shrink();
            },
            future: results,
          ));
    }
  );
}