From f136438a6c3df6403d5a935c730ea5a66d017ffe Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Wed, 17 Aug 2022 15:39:30 +0200 Subject: work --- lib/pages/home_page.dart | 45 ++++++++++++++++++++++++++++++++++ lib/pages/settings_page.dart | 58 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 lib/pages/settings_page.dart (limited to 'lib/pages') diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 3b57a0f..87d3ce7 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:training_planner/pages/agenda_page.dart'; import 'package:training_planner/pages/logbook_page.dart'; +import 'package:training_planner/pages/settings_page.dart'; import 'package:training_planner/shift.dart'; import 'package:training_planner/main.dart'; import 'package:training_planner/style/style.dart'; @@ -39,9 +40,53 @@ class _HomePageState extends State { }); } + Drawer createDrawer() { + return Drawer( + // Add a ListView to the drawer. This ensures the user can scroll + // through the options in the drawer if there isn't enough vertical + // space to fit everything. + child: ListView( + // Important: Remove any padding from the ListView. + padding: EdgeInsets.zero, + children: [ + SizedBox( + height: MediaQuery.of(context).viewPadding.top + 60, + child: const DrawerHeader( + decoration: BoxDecoration( + color: Style.background, + ), + child: Text('Mijn werkschema'), + ), + ), + ListTile( + title: const Text('Instellingen'), + onTap: () { + settingsService.readSettingsFromFile().then((value) => { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => SettingsPage( + settings: value, + )), + ) + }); + }, + ), + ListTile( + title: const Text('Profiel'), + onTap: () { + // ... + }, + ), + ], + ), + ); + } + @override Widget build(BuildContext context) { return Scaffold( + drawer: createDrawer(), appBar: AppBar( title: const Text('Werkschema'), backgroundColor: Style.background, diff --git a/lib/pages/settings_page.dart b/lib/pages/settings_page.dart new file mode 100644 index 0000000..08dbaf4 --- /dev/null +++ b/lib/pages/settings_page.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:training_planner/main.dart'; +import 'package:training_planner/services/settings_service.dart'; +import 'package:training_planner/style/style.dart'; + +class SettingsPage extends StatefulWidget { + final Settings settings; + + @override + _SettingsPageState createState() => _SettingsPageState(); + + const SettingsPage({Key? key, required this.settings}) : super(key: key); +} + +class _SettingsPageState extends State { + @override + initState() { + super.initState(); + } + + Future saveSettings() async { + settingsService.writeSettingsToFile(widget.settings); + Navigator.pop(context); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Instellingen'), + backgroundColor: Style.background, + foregroundColor: Style.titleColor, + ), + body: Center( + child: Padding( + padding: const EdgeInsets.all(50), + child: Column( + children: [ + TextFormField( + keyboardType: TextInputType.number, + initialValue: widget.settings.salary.toStringAsFixed(2), + onChanged: (value) => + {widget.settings.salary = double.parse(value)}, + decoration: InputDecoration( + labelText: 'Huidige uurloon', + ), + ), + Padding(padding: const EdgeInsets.all(20)), + TextButton( + onPressed: () async => await saveSettings(), + child: Text('Opslaan')), + ], + ), + ), + ), + ); + } +} -- cgit v1.2.3-70-g09d2