Add base skeleton

This commit is contained in:
2025-07-01 20:40:00 +02:00
parent ab8974c0a8
commit 29fec99b8f
19 changed files with 722 additions and 24 deletions

View File

@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
typedef AsyncTask = ({
ValueNotifier<Future<void>?> pending,
AsyncSnapshot<void> snapshot,
bool hasError,
});
/// Creates a hook that provides a [snapshot] of the current asynchronous task passed
/// to [pending] and a [hasError] value.
AsyncTask useAsyncTask() {
final pending = useState<Future<void>?>(null);
final snapshot = useFuture(pending.value);
final hasError =
snapshot.hasError && snapshot.connectionState != ConnectionState.waiting;
return (pending: pending, snapshot: snapshot, hasError: hasError);
}