toast.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import 'package:appflowy/generated/locale_keys.g.dart';
  2. import 'package:appflowy/startup/startup.dart';
  3. import 'package:easy_localization/easy_localization.dart';
  4. import 'package:flowy_infra/size.dart';
  5. import 'package:flowy_infra_ui/style_widget/text.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:fluttertoast/fluttertoast.dart';
  8. class FlowyMessageToast extends StatelessWidget {
  9. final String message;
  10. const FlowyMessageToast({required this.message, Key? key}) : super(key: key);
  11. @override
  12. Widget build(BuildContext context) {
  13. return DecoratedBox(
  14. decoration: BoxDecoration(
  15. borderRadius: const BorderRadius.all(Radius.circular(4)),
  16. color: Theme.of(context).colorScheme.surface,
  17. ),
  18. child: Padding(
  19. padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
  20. child: FlowyText.medium(
  21. message,
  22. fontSize: FontSizes.s16,
  23. ),
  24. ),
  25. );
  26. }
  27. }
  28. void initToastWithContext(BuildContext context) {
  29. getIt<FToast>().init(context);
  30. }
  31. void showMessageToast(String message) {
  32. final child = FlowyMessageToast(message: message);
  33. getIt<FToast>().showToast(
  34. child: child,
  35. gravity: ToastGravity.BOTTOM,
  36. toastDuration: const Duration(seconds: 3),
  37. );
  38. }
  39. void showSnackBarMessage(
  40. BuildContext context,
  41. String message, {
  42. bool showCancel = false,
  43. }) {
  44. ScaffoldMessenger.of(context).showSnackBar(
  45. SnackBar(
  46. action: !showCancel
  47. ? null
  48. : SnackBarAction(
  49. label: LocaleKeys.button_Cancel.tr(),
  50. textColor: Theme.of(context).colorScheme.onSurface,
  51. onPressed: () {
  52. ScaffoldMessenger.of(context).hideCurrentSnackBar();
  53. },
  54. ),
  55. content: FlowyText(
  56. message,
  57. color: Theme.of(context).colorScheme.onSurface,
  58. ),
  59. ),
  60. );
  61. }