fix(receipt-import): show create-product errors in modal dialog

This commit is contained in:
Nils-Johan Gynther
2026-05-02 20:08:08 +02:00
parent dd4c2fe8b3
commit f12d04bd8b
@@ -363,23 +363,17 @@ class _EditDialogState extends State<_EditDialog> {
if (_entryMode == _ProductEntryMode.create) {
final trimmedName = _newProductNameCtrl.text.trim();
if (trimmedName.isEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Ange ett produktnamn först.')),
);
showGlobalErrorDialog(context, 'Ange ett produktnamn först.');
return;
}
if (_newCategoryId == null) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Välj kategori innan du skapar produkten.')),
);
showGlobalErrorDialog(context, 'Välj kategori innan du skapar produkten.');
return;
}
if (widget.onCreate == null) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Produktskapande är inte tillgängligt i den här vyn.')),
);
showGlobalErrorDialog(context, 'Produktskapande är inte tillgängligt i den här vyn.');
return;
}
@@ -391,11 +385,7 @@ class _EditDialogState extends State<_EditDialog> {
);
if (newProduct == null || !mounted) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Kunde inte skapa produkten. Försök igen.'),
),
);
showGlobalErrorDialog(context, 'Kunde inte skapa produkten. Försök igen.');
}
return;
}
@@ -409,24 +399,17 @@ class _EditDialogState extends State<_EditDialog> {
_productCategorySource = _newCategorySource ?? CategorySelectionSource.manual;
} on ApiException catch (e) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
showGlobalErrorDialog(
context,
e.message.trim().isEmpty
? 'Kunde inte skapa produkten. Försök igen.'
: e.message,
),
),
);
}
return;
} catch (_) {
if (mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Kunde inte skapa produkten. Försök igen.'),
),
);
showGlobalErrorDialog(context, 'Kunde inte skapa produkten. Försök igen.');
}
return;
} finally {