showSyncStatusSheet function

Future<void> showSyncStatusSheet(
  1. BuildContext context
)

Open the sync-detail "what's going on" sheet (#319; maintainer: "when user hits scanning badge he has to see more detailed information"). Informational and LIVE — it watches the same providers as the badge, so the state, percent and counts keep moving while it is open. Freely dismissible (scrim/drag/back): unlike the rescan sheet it owns no in-flight operation, so a casual dismiss can never orphan anything.

Implementation

Future<void> showSyncStatusSheet(BuildContext context) {
  // Captured BEFORE the await: the caller's context can be unmounted by the
  // time the sheet settles, but the container outlives it.
  final container = ProviderScope.containerOf(context, listen: false);
  // The shared sheet frame: grows with the stall copy + large text scales,
  // freely dismissible, the desktop width cap.
  return showWalletSheet<void>(
    context,
    builder: (_) => const SyncStatusSheet(),
  ).whenComplete(
    // End any post-Try-now live window WITH the sheet (audit D): the
    // window exists because "the user is watching their own tap play out",
    // and a dismissed sheet means nobody is — left running it would spill
    // raw flap onto the badge's now-unblocked liveRegion and the send
    // screen's pinned queue affordance for up to its full span.
    container.read(walletDisplaySyncStatusProvider.notifier).stopFollowingRaw,
  );
}