Warn user when project/component name exists

This commit is contained in:
Kenneth Bruen 2022-06-20 01:20:23 +03:00
parent be6e8c9002
commit e4041020f1
Signed by: kbruen
GPG key ID: C1980A470C3EE5B1
2 changed files with 10 additions and 4 deletions

View file

@ -20,7 +20,7 @@ class NewProjectDialog extends HookWidget {
final newProjectAction = useMemoized(() {
if (newDialogNameController.text.isEmpty) return null;
return () {
projectsState.newProject(newDialogNameController.text);
projectsState.newProject(newDialogNameController.text.trim());
Navigator.pop(context);
};
}, [newDialogNameController.text]);
@ -217,6 +217,9 @@ class NewProjectDialog extends HookWidget {
icon: const Icon(Icons.done),
onPressed: newProjectAction,
),
errorText: projectsState.projects.map((p) => p.projectName).contains(newDialogNameController.text.trim())
? 'A project with the same name already exists'
: null,
),
onSubmitted: newProjectAction == null ? null : (_) => newProjectAction(),
),

View file

@ -168,9 +168,12 @@ class EditComponentPage extends HookWidget {
sliver: SliverToBoxAdapter(
child: TextField(
controller: componentNameEditingController,
decoration: const InputDecoration(
border: OutlineInputBorder(),
decoration: InputDecoration(
border: const OutlineInputBorder(),
labelText: 'Component name',
errorText: projectState.index.components.where((c) => c.componentId != ce().componentId).map((c) => c.componentName).contains(componentNameEditingController.text.trim())
? 'A component with the same name already exists'
: null,
),
),
),
@ -577,7 +580,7 @@ class EditComponentPage extends HookWidget {
floatingActionButton: !dirty ? null : FloatingActionButton(
onPressed: () async {
if (componentNameEditingController.text.isNotEmpty) {
await projectState.editComponent(ce().copyWith(componentName: componentNameEditingController.text));
await projectState.editComponent(ce().copyWith(componentName: componentNameEditingController.text.trim()));
}
await projectState.editComponent(ce().copyWith(
inputs: inputs.value,