// Flutter imports: import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; // Package imports: import 'package:get_it/get_it.dart'; import 'package:modal_bottom_sheet/modal_bottom_sheet.dart'; import 'package:remever/common/resources.dart'; import 'package:remever/components/extensions/context.dart'; import 'package:remever/router.dart'; import 'package:remever/services/logs/logs_service.dart'; import 'package:talker/talker.dart'; import 'events/events.dart'; /// /// Глобальный навигатор /// AppRouter get globalRouter { return GetIt.I.get(); } /// /// Логирование /// LogsService get logger { return GetIt.I.get(); } Talker get talker { return GetIt.I.get(); } /// /// Показ тоста /// void showErrorToast(String text) { Fluttertoast.showToast( msg: text, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.TOP, timeInSecForIosWeb: 1, backgroundColor: AppColors.danger, textColor: AppColors.white, fontSize: 16, ); } void showSuccessToast(String text) { Fluttertoast.showToast( msg: text, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.TOP, timeInSecForIosWeb: 1, backgroundColor: Colors.green, textColor: AppColors.white, fontSize: 16, ); } void showInfoToast(String text) { Fluttertoast.showToast( msg: text, toastLength: Toast.LENGTH_SHORT, gravity: ToastGravity.TOP, timeInSecForIosWeb: 1, backgroundColor: AppColors.disabled, textColor: AppColors.white, fontSize: 16, ); } /// /// Глобальный показ ошибки /// void showErrorNotification(String text, [SnackBarAction? action]) { eventBus.fire( NotificationEvent( text: text, type: NotificationEventType.ERROR, action: action, ), ); } /// /// Глобальный показ уведомления /// void showInfoNoitification(String text, [SnackBarAction? action]) { eventBus.fire( NotificationEvent( text: text, type: NotificationEventType.NOTIFY, action: action, ), ); } /// /// Показ диалога как cupertino /// Future showCuperModalBottomSheet({ required BuildContext context, required WidgetBuilder builder, Color? backgroundColor, double? height, }) { return showCupertinoModalBottomSheet( topRadius: const Radius.circular(24).r, backgroundColor: backgroundColor ?? AppColors.white, context: context, builder: (BuildContext _) => SizedBox( height: height ?? MediaQuery.of(context).size.height / 2, child: Builder(builder: builder), ), ); }