From 36c79c7b828822abe2084568f886c1afc1ee11fa Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Sun, 22 Mar 2020 14:51:23 +0100 Subject: [PATCH] Add role editor --- lib/editors/role.dart | 66 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 lib/editors/role.dart diff --git a/lib/editors/role.dart b/lib/editors/role.dart new file mode 100644 index 0000000..24b67de --- /dev/null +++ b/lib/editors/role.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; + +import '../backend.dart'; +import '../database.dart'; + +class RoleEditor extends StatefulWidget { + final Role role; + + RoleEditor({ + this.role, + }); + + @override + _RoleEditorState createState() => _RoleEditorState(); +} + +class _RoleEditorState extends State { + final nameController = TextEditingController(); + + @override + void initState() { + super.initState(); + + if (widget.role != null) { + nameController.text = widget.role.name; + } + } + + @override + Widget build(BuildContext context) { + final backend = Backend.of(context); + + return Scaffold( + appBar: AppBar( + title: Text('Role'), + actions: [ + FlatButton( + child: Text('DONE'), + onPressed: () async { + final role = Role( + id: widget.role?.id ?? generateId(), + name: nameController.text, + ); + + await backend.db.updateRole(role); + Navigator.pop(context, role); + }, + ) + ], + ), + body: ListView( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + controller: nameController, + decoration: InputDecoration( + labelText: 'Name', + ), + ), + ), + ], + ), + ); + } +}