buildSessions method
dynamic
buildSessions( - dynamic context,
- List sessions
)
Implementation
Widget buildSessions(BuildContext context, List<DeviceRecord> sessions) {
final unverifiedSessions = sessions.where((s) => !s.isVerified()).toList();
if (unverifiedSessions.isEmpty) {
return CustomScrollView(
slivers: [
SliverToBoxAdapter(
child: Padding(
padding: const EdgeInsetsDirectional.symmetric(
horizontal: 20,
vertical: 15,
),
child: Text(
L10n.of(context).verifiedSessionsDescription,
style: Theme.of(context).textTheme.bodyMedium,
),
),
),
SliverList.builder(
itemBuilder: (context, index) => SessionCard(
deviceRecord: sessions[index],
),
itemCount: sessions.length,
),
],
);
}
final slivers = [
SliverToBoxAdapter(
child: Padding(
padding: const EdgeInsetsDirectional.symmetric(
horizontal: 20,
vertical: 15,
),
child: Row(
children: [
Padding(
padding: const EdgeInsets.only(right: 10),
child: Icon(
Atlas.shield_exclamation_thin,
color: Theme.of(context).colorScheme.error,
),
),
Text(
L10n.of(context).unverifiedSessions,
style: Theme.of(context).textTheme.headlineSmall,
),
],
),
),
),
SliverToBoxAdapter(
child: Padding(
padding: const EdgeInsetsDirectional.symmetric(
horizontal: 20,
vertical: 15,
),
child: Text(
L10n.of(context).unverifiedSessionsDescription,
style: Theme.of(context).textTheme.bodyMedium,
),
),
),
SliverList.builder(
itemBuilder: (context, index) => SessionCard(
deviceRecord: unverifiedSessions[index],
),
itemCount: unverifiedSessions.length,
),
];
final verifiedSessions = sessions.where((s) => s.isVerified()).toList();
if (verifiedSessions.isNotEmpty) {
slivers.addAll([
SliverToBoxAdapter(
child: Padding(
padding: const EdgeInsetsDirectional.symmetric(
horizontal: 20,
vertical: 15,
),
child: Text(
'${L10n.of(context).verified} ${L10n.of(context).sessions}',
style: Theme.of(context).textTheme.headlineSmall,
),
),
),
SliverList.builder(
itemBuilder: (context, index) => SessionCard(
deviceRecord: verifiedSessions[index],
),
itemCount: verifiedSessions.length,
),
]);
}
return CustomScrollView(slivers: slivers);
}