showParticipantSheet method

void showParticipantSheet(
  1. BuildContext context,
  2. Map<ParticipantType, List<String>> data
)

Implementation

void showParticipantSheet(
  BuildContext context,
  Map<ParticipantType, List<String>> data,
) {
  showModalBottomSheet(
    context: context,
    builder: (context) {
      final List<Widget> children = [];
      for (final type in ParticipantType.values) {
        if (type == ParticipantType.undefined) continue;
        if (data[type]!.isEmpty) continue;
        final typeName = t["participant.${type.name}"] as String;
        children.add(
          Padding(
            padding: const EdgeInsets.only(top: 8.0, left: 16.0),
            child: Text(
              typeName,
              style: Theme.of(context).textTheme.labelLarge,
            ),
          ),
        );
        children.add(const Divider(indent: 16, endIndent: 16));
        children.addAll(
          data[type]!.map(
            (id) => Padding(
              padding: const EdgeInsets.symmetric(vertical: 4.0),
              child: UserListTile(id: id),
            ),
          ),
        );
      }
      children.add(const SizedBox(height: 64.0));
      return SingleChildScrollView(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: children,
        ),
      );
    },
  );
}