configureLoader static method

void configureLoader({
  1. required void onShow(),
  2. required void onHide(),
})

Configures a global loading indicator shown automatically around every request, so callers don't need to manage an isLoading flag per screen.

onShow and onHide are plain callbacks — this package has no opinion on how the indicator is presented. Wire them to whatever your app uses:

// GetX
ApiServices.configureLoader(
  onShow: () => Get.dialog(const LoadingDialog(), barrierDismissible: false),
  onHide: () => Get.back(),
);

// Navigator with a global key
ApiServices.configureLoader(
  onShow: () => showDialog(
    context: navigatorKey.currentContext!,
    barrierDismissible: false,
    builder: (_) => const LoadingDialog(),
  ),
  onHide: () => navigatorKey.currentState!.pop(),
);

Concurrent requests share one indicator: onShow fires only when the first request starts, onHide only once every in-flight request (success, failure, or exception) has finished. Pass showLoader: false to an individual request to opt it out (e.g. background polling).

Implementation

static void configureLoader({
  required void Function() onShow,
  required void Function() onHide,
}) {
  _onLoadingShow = onShow;
  _onLoadingHide = onHide;
}