simple dashboard

This commit is contained in:
marcoabat
2023-08-05 13:50:12 +02:00
parent bd79115ea9
commit c5c00b999e
3 changed files with 56 additions and 3 deletions

View File

@@ -0,0 +1,12 @@
import 'package:briessenchecker/models/checklist.dart';
List<Checklist> checklists = [
Checklist(
1,
'trsienaeistnraie',
'Test1',
'tiersntiersntsrien',
DateTime.now(),
List.empty(),
)
];

View File

@@ -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<DashboardPage> createState() => _DashboardPageState();
}
class _DashboardPageState extends State<DashboardPage> {
final Future<List<Checklist>> 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<List<Checklist>> 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<Checklist> list) {
Checklist cl = list.elementAt(index);
return ListTile(
title: Text(cl.title),
subtitle: Text(cl.description),
);
}
}

View File

@@ -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<List<Checklist>> get fetchChecklist async {
//TODO replace example data
await Future.delayed(const Duration(seconds: 2));
return ed.checklists;
}
static Stream<AuthState> get authChangeEventStream =>
_client.auth.onAuthStateChange;
}