import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; import 'package:hmg_patient_app_new/core/api_consts.dart'; import 'package:hmg_patient_app_new/core/dependencies.dart'; import 'package:hmg_patient_app_new/core/enums.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/services/navigation_service.dart'; class LoaderBottomSheet { static final NavigationService _navService = GetIt.I(); static bool _isVisible = false; static void showLoader() { if (_isVisible) return; _isVisible = true; showModalBottomSheet( context: _navService.navigatorKey.currentContext!, isDismissible: (ApiConsts.appEnvironmentType == AppEnvironmentTypeEnum.uat || kDebugMode) ? true : false, enableDrag: false, backgroundColor: Colors.transparent, builder: (_) { return Container( height: MediaQuery.of(_navService.navigatorKey.currentContext!).size.height * 0.3, decoration: const BoxDecoration( color: Colors.white, borderRadius: BorderRadius.vertical(top: Radius.circular(16)), ), child: Center( child: Utils.getLoadingWidget(), ), ); }, ).whenComplete(() { // reset state if dismissed by system _isVisible = false; }); } static void hideLoader() { if (_isVisible) { Navigator.of(_navService.navigatorKey.currentContext!).pop(); _isVisible = false; } } }