♻️ Refactored all ScaffoldMessager to use unifined snackbar API

This commit is contained in:
2025-11-22 18:42:12 +08:00
parent f50a19f573
commit 5deb910fa4
13 changed files with 36 additions and 111 deletions

View File

@@ -1,4 +1,5 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_code_editor/flutter_code_editor.dart';
import 'package:flutter_highlight/themes/monokai-sublime.dart';
@@ -59,17 +60,9 @@ class FileItem extends HookConsumerWidget {
filePath,
);
if (context.mounted) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Downloaded to $filePath')));
}
showSnackBar('Downloaded to $filePath');
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Failed to download file: $e')));
}
showErrorAlert(e);
}
}
@@ -248,9 +241,7 @@ class FileEditorSheet extends HookConsumerWidget {
final saveFile = useCallback(() async {
if (codeController.text.trim().isEmpty) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Content cannot be empty')),
);
showSnackBar('contentCantEmpty'.tr());
return;
}
@@ -263,17 +254,11 @@ class FileEditorSheet extends HookConsumerWidget {
.updateFileContent(file.relativePath, codeController.text);
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('File saved successfully')),
);
showSnackBar('File saved successfully');
Navigator.of(context).pop();
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text('Failed to save file: $e')));
}
showErrorAlert(e);
} finally {
isSaving.value = false;
}

View File

@@ -5,6 +5,7 @@ import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/models/publication_site.dart';
import 'package:island/pods/site_files.dart';
import 'package:island/widgets/alert.dart';
import 'package:island/widgets/content/sheet.dart';
import 'package:material_symbols_icons/symbols.dart';
@@ -121,9 +122,7 @@ class FileUploadDialog extends HookConsumerWidget {
(state) => state['status'] == 'completed',
)) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('All files uploaded successfully')),
);
showSnackBar('All files uploaded successfully');
onUploadComplete();
Navigator.of(context).pop();
}

View File

@@ -4,6 +4,7 @@ import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/models/publication_site.dart';
import 'package:island/pods/site_pages.dart';
import 'package:island/widgets/alert.dart';
import 'package:island/widgets/content/sheet.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';
@@ -127,23 +128,15 @@ class PageForm extends HookConsumerWidget {
}
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
page == null
? 'Page created successfully'
: 'Page updated successfully',
),
),
showSnackBar(
page == null
? 'Page created successfully'
: 'Page updated successfully',
);
Navigator.pop(context);
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Failed to save page: ${e.toString()}')),
);
}
showErrorAlert(e);
} finally {
isLoading.value = false;
}
@@ -185,17 +178,11 @@ class PageForm extends HookConsumerWidget {
await pagesNotifier.deletePage(page!.id);
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Page deleted successfully')),
);
showSnackBar('Page deleted successfully');
Navigator.pop(context);
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Failed to delete page')),
);
}
showErrorAlert(e);
} finally {
isLoading.value = false;
}

View File

@@ -6,6 +6,7 @@ import 'package:island/models/publication_site.dart';
import 'package:island/pods/network.dart';
import 'package:island/screens/creators/sites/site_detail.dart';
import 'package:island/screens/creators/sites/site_edit.dart';
import 'package:island/widgets/alert.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';
@@ -85,18 +86,11 @@ class SiteActionMenu extends HookConsumerWidget {
final client = ref.read(apiClientProvider);
await client.delete('/zone/sites/${site.id}');
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Site deleted successfully')),
);
// Navigate back to list
showSnackBar('Site deleted successfully');
Navigator.of(context).pop();
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Failed to delete site')),
);
}
showErrorAlert(e);
}
}
break;