|
|
@ -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(), |
|
|
|
|
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
], |
|
|
|
], |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|