From db272b8c851410966d78d090154e5fa741e76698 Mon Sep 17 00:00:00 2001 From: marcoabat Date: Sat, 12 Aug 2023 12:48:23 +0200 Subject: [PATCH] Seperated list on dashboard --- lib/pages/dashboard_page.dart | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/lib/pages/dashboard_page.dart b/lib/pages/dashboard_page.dart index e9e93b5..ae4e61e 100644 --- a/lib/pages/dashboard_page.dart +++ b/lib/pages/dashboard_page.dart @@ -6,6 +6,8 @@ import 'package:briessenchecker/services/scaffold_messenger.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../services/profile_provider.dart'; + class DashboardPage extends StatefulWidget { const DashboardPage({super.key}); @@ -19,6 +21,7 @@ class _DashboardPageState extends State { Future> checklistFuture = DbHelper.fetchChecklist; late List checklists; late ChecklistProvider checklistProvider; + late ProfileProvider profileProvider; late Stream>> clChangeStream; int? _selectedChecklistIndex; @@ -56,7 +59,16 @@ class _DashboardPageState extends State { Checklist cl = list.elementAt(index); return ListTile( title: Text(cl.title == '' ? 'Unnamed ${cl.id}' : cl.title), - subtitle: Text(cl.description), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(cl.description), + Text( + profileProvider.getProfileById(cl.ownerId)?.username ?? '', + style: const TextStyle(color: Colors.grey), + ) + ], + ), onTap: () => _onListEntryTapped(cl, index), onLongPress: () => _onLongPress(index), selected: _selectedChecklistIndex == index, @@ -102,6 +114,7 @@ class _DashboardPageState extends State { @override Widget build(BuildContext context) { checklistProvider = Provider.of(context, listen: true); + profileProvider = Provider.of(context, listen: false); clChangeStream = DbHelper.checklistChangeEventStream; clChangeStream.listen(_onClChanged); return Scaffold( @@ -133,9 +146,16 @@ class _DashboardPageState extends State { checklists = DbHelper.resToChecklistList(snapshot.data!); } - return ListView.builder( - itemCount: checklists.length, - itemBuilder: (context, index) => _listBuilder(context, index, checklists), - ); + return ListView.separated( + itemCount: checklists.length, + itemBuilder: (context, index) => + _listBuilder(context, index, checklists), + separatorBuilder: (context, index) { + return const Center( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 15.0), + child: Divider(), + )); + }); } }