import 'package:flutter/material.dart'; import 'package:immich_mobile/shared/ui/immich_loading_indicator.dart'; class ImmichLoadingOverlay extends StatelessWidget { const ImmichLoadingOverlay({ Key? key, }) : super(key: key); @override Widget build(BuildContext context) { return ValueListenableBuilder( valueListenable: ImmichLoadingOverlayController.appLoader.loaderShowingNotifier, builder: (context, shouldShow, child) { if (shouldShow) { return const Scaffold( backgroundColor: Colors.black54, body: Center( child: ImmichLoadingIndicator(), ), ); } else { return Container(); } }, ); } } class ImmichLoadingOverlayController { static final ImmichLoadingOverlayController appLoader = ImmichLoadingOverlayController(); ValueNotifier loaderShowingNotifier = ValueNotifier(false); ValueNotifier loaderTextNotifier = ValueNotifier('error message'); void show() { loaderShowingNotifier.value = true; } void hide() { loaderShowingNotifier.value = false; } }