showSyncStatusSheet function
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,
);
}