Add person selector

This commit is contained in:
Elias Projahn 2019-12-04 20:48:55 +01:00
parent ef4b81ce9b
commit 2ee49246e4
2 changed files with 45 additions and 0 deletions

View file

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import '../backend.dart';
import '../selectors/person.dart';
class HomeScreen extends StatelessWidget {
@override
@ -22,6 +23,15 @@ class HomeScreen extends StatelessWidget {
title: Text('Play/Pause'),
onTap: backend.playPause,
),
ListTile(
title: Text('Select person'),
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => PersonsSelector(),
fullscreenDialog: true,
)),
),
],
),
);

35
lib/selectors/person.dart Normal file
View file

@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
import '../backend.dart';
class PersonsSelector extends StatelessWidget {
@override
Widget build(BuildContext context) {
final backend = Backend.of(context);
return Scaffold(
appBar: AppBar(
title: Text('Select person'),
),
body: StreamBuilder(
stream: backend.db.allPersons().watch(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
final person = snapshot.data[index];
return ListTile(
title: Text('${person.lastName}, ${person.firstName}'),
onTap: () => Navigator.pop(context, person),
);
},
);
} else {
return Container();
}
}),
);
}
}