Browse Source

Made new project dialog scrollable

This is useful in case of small screens
master
Kenneth Bruen 2 years ago
parent
commit
aea18c3262
Signed by: kbruen
GPG Key ID: C1980A470C3EE5B1
  1. 138
      lib/dialogs/new_project.dart

138
lib/dialogs/new_project.dart

@ -21,88 +21,90 @@ class NewProjectDialog extends HookWidget {
}, [newDialogNameController.text]); }, [newDialogNameController.text]);
return Dialog( return Dialog(
child: Padding( child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0), child: Padding(
child: IntrinsicWidth( padding: const EdgeInsets.all(8.0),
child: Column( child: IntrinsicWidth(
crossAxisAlignment: CrossAxisAlignment.stretch, child: Column(
mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ mainAxisSize: MainAxisSize.min,
Align( children: [
alignment: Alignment.centerRight, Align(
child: IconButton( alignment: Alignment.centerRight,
icon: const Icon(Icons.close), child: IconButton(
tooltip: 'Close', icon: const Icon(Icons.close),
onPressed: () { tooltip: 'Close',
Navigator.of(context).pop();
},
),
),
Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: OutlinedButton.icon(
onPressed: () { onPressed: () {
// TODO: Implement project importing Navigator.of(context).pop();
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Import coming soon...'),
));
}, },
icon: const Icon(Icons.download),
label: const Text('Import Project'),
), ),
), ),
), Center(
Row( child: Padding(
children: [ padding: const EdgeInsets.all(8.0),
const Expanded( child: OutlinedButton.icon(
child: Padding( onPressed: () {
padding: EdgeInsets.all(8.0), // TODO: Implement project importing
child: Divider(), ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Import coming soon...'),
));
},
icon: const Icon(Icons.download),
label: const Text('Import Project'),
), ),
), ),
Padding( ),
padding: const EdgeInsets.symmetric(vertical: 8.0), Row(
child: Text( children: [
'OR', const Expanded(
style: Theme.of(context).textTheme.caption, child: Padding(
padding: EdgeInsets.all(8.0),
child: Divider(),
),
), ),
), Padding(
const Expanded( padding: const EdgeInsets.symmetric(vertical: 8.0),
child: Padding( child: Text(
padding: EdgeInsets.all(8.0), 'OR',
child: Divider(), style: Theme.of(context).textTheme.caption,
),
), ),
const Expanded(
child: Padding(
padding: EdgeInsets.all(8.0),
child: Divider(),
),
),
],
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'New Project',
style: Theme.of(context).textTheme.headline6,
textAlign: TextAlign.center,
), ),
],
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'New Project',
style: Theme.of(context).textTheme.headline6,
textAlign: TextAlign.center,
), ),
), Padding(
Padding( padding: const EdgeInsets.all(8.0),
padding: const EdgeInsets.all(8.0), child: Container(
child: Container( constraints: const BoxConstraints(minWidth: 300),
constraints: const BoxConstraints(minWidth: 300), child: TextField(
child: TextField( controller: newDialogNameController,
controller: newDialogNameController, decoration: InputDecoration(
decoration: InputDecoration( border: const OutlineInputBorder(),
border: const OutlineInputBorder(), labelText: 'Project name',
labelText: 'Project name', suffixIcon: IconButton(
suffixIcon: IconButton( icon: const Icon(Icons.done),
icon: const Icon(Icons.done), onPressed: newProjectAction,
onPressed: newProjectAction, ),
), ),
onSubmitted: newProjectAction == null ? null : (_) => newProjectAction(),
), ),
onSubmitted: newProjectAction == null ? null : (_) => newProjectAction(),
), ),
), ),
), ],
], ),
), ),
), ),
), ),

Loading…
Cancel
Save