Compare commits

...

2 Commits

2 changed files with 9 additions and 3 deletions

View File

@ -142,16 +142,17 @@ bool validateSettings(
String? rootKey, String? rootKey,
}) { }) {
settings.forEach((key, value) { settings.forEach((key, value) {
final checkKey = rootKey == null ? key : '$rootKey.$key';
if (value is Map) { if (value is Map) {
validateSettings( validateSettings(
value as Map<String, dynamic>, value as Map<String, dynamic>,
failed, failed,
rootKey: rootKey == null ? key : '$rootKey.$key', rootKey: checkKey,
); );
} else { } else {
for (var validator in getSettingValidators(key)) { for (var validator in getSettingValidators(checkKey)) {
if (!validator(value.toString())) { if (!validator(value.toString())) {
failed.add(rootKey == null ? key : '$rootKey.$key'); failed.add(checkKey);
} }
} }
} }

View File

@ -127,6 +127,11 @@ class _AddMountScreenState extends State<AddMountScreen> {
onPressed: () { onPressed: () {
List<String> failed = []; List<String> failed = [];
if (!validateSettings(_settings[_mountType]!, failed)) { if (!validateSettings(_settings[_mountType]!, failed)) {
for (var key in failed) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("'$key' is not valid")),
);
}
return; return;
} }