useAsyncSnapshotErrorHandler function

void useAsyncSnapshotErrorHandler(
  1. AsyncSnapshot<Object?>? snapshot, {
  2. void onError(
    1. Object,
    2. StackTrace
    )?,
})

Implementation

void useAsyncSnapshotErrorHandler(AsyncSnapshot<Object?>? snapshot, {void Function(Object, StackTrace)? onError}) {
  useDebugGroup(
    debugLabel: "useAsyncSnapshotErrorHandler()",
    debugFillProperties: (builder) => builder
      ..add(EnumProperty("state", snapshot?.connectionState))
      ..add(DiagnosticsProperty("error", snapshot?.error)),
    () {
      onError ??= Zone.current.handleUncaughtError;

      useEffect(() {
        if (snapshot?.hasError ?? false) onError!(snapshot!.error!, snapshot.stackTrace!);
        return null;
      }, [snapshot?.error, snapshot?.stackTrace]);
    },
  );
}