import 'dart:html'; import 'package:example_web/main.dart'; import 'package:example_web/widgets/entry_list.dart'; import 'package:flutter_web/material.dart'; import 'create_entry_bar.dart'; class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { final db = DatabaseProvider.provide(context); final headerTheme = Theme.of(context).textTheme.title; return Scaffold( appBar: AppBar( title: const Text('Moor Web'), actions: [ IconButton( icon: Icon(Icons.info_outline), onPressed: () { showDialog( context: context, builder: (context) { return AlertDialog( title: const Text('Moor web'), content: const Text( 'Simple demonstration of moor web: This whole page ' 'is a offline-capable Flutter app using sql.js to ' 'store data!'), actions: [ FlatButton( child: const Text('Moor'), onPressed: () { window.open('https://moor.simonbinder.eu/', 'Moor'); }, ), FlatButton( child: const Text('sql.js'), onPressed: () { window.open( 'https://github.com/kripken/sql.js/', 'sql.js'); }, ), ], ); }, ); }, ), ], ), body: Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: Center( child: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 800), child: CustomScrollView( slivers: [ SliverToBoxAdapter( child: CreateEntryBar(), ), SliverToBoxAdapter( child: Text('In progress', style: headerTheme), ), SliverEntryList( entries: db.incompleteEntries(), ), SliverToBoxAdapter( child: Text('Complete', style: headerTheme), ), SliverEntryList( entries: db.newestDoneEntries(), ), SliverToBoxAdapter( child: StreamBuilder>( builder: (context, snapshot) { final hiddenCount = snapshot?.data?.single ?? 0; return Text('Not showing $hiddenCount older entries'); }, ), ), ], ), ), ), ), ); } }