diff --git a/lib/assets/example_data.dart b/lib/assets/example_data.dart new file mode 100644 index 0000000..2c5d154 --- /dev/null +++ b/lib/assets/example_data.dart @@ -0,0 +1,12 @@ +import 'package:briessenchecker/models/checklist.dart'; + +List checklists = [ + Checklist( + 1, + 'trsienaeistnraie', + 'Test1', + 'tiersntiersntsrien', + DateTime.now(), + List.empty(), + ) +]; diff --git a/lib/pages/dashboard_page.dart b/lib/pages/dashboard_page.dart index 6e84342..9ac4ed4 100644 --- a/lib/pages/dashboard_page.dart +++ b/lib/pages/dashboard_page.dart @@ -1,13 +1,46 @@ +import 'package:briessenchecker/models/checklist.dart'; +import 'package:briessenchecker/services/dbhelper.dart'; import 'package:flutter/material.dart'; -class DashboardPage extends StatelessWidget { +class DashboardPage extends StatefulWidget { const DashboardPage({super.key}); static const routeName = '/dashboard'; + @override + State createState() => _DashboardPageState(); +} + +class _DashboardPageState extends State { + final Future> checklistFuture = DbHelper.fetchChecklist; + @override Widget build(BuildContext context) { - return const Scaffold( - body: Text('Dash'), + return Scaffold( + body: FutureBuilder( + future: checklistFuture, + builder: _futureBuilder, + ), + ); + } + + Widget _futureBuilder( + BuildContext context, AsyncSnapshot> snapshot) { + if (snapshot.hasData) { + return ListView.builder( + itemCount: snapshot.data!.length, + itemBuilder: (context, index) => + _listBuilder(context, index, snapshot.data!), + ); + } else { + return const CircularProgressIndicator(); + } + } + + Widget? _listBuilder(BuildContext context, int index, List list) { + Checklist cl = list.elementAt(index); + return ListTile( + title: Text(cl.title), + subtitle: Text(cl.description), ); } } diff --git a/lib/services/dbhelper.dart b/lib/services/dbhelper.dart index 354aa70..4ae4028 100644 --- a/lib/services/dbhelper.dart +++ b/lib/services/dbhelper.dart @@ -1,5 +1,7 @@ import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; +import '../assets/example_data.dart' as ed; +import '../models/checklist.dart'; class DbHelper { static late final SupabaseClient _client; @@ -20,6 +22,12 @@ class DbHelper { ); } + static Future> get fetchChecklist async { + //TODO replace example data + await Future.delayed(const Duration(seconds: 2)); + return ed.checklists; + } + static Stream get authChangeEventStream => _client.auth.onAuthStateChange; }