JetBuilder class

Unified state management for Jet framework

JetBuilder provides a simple, powerful API for handling all common state patterns:

  • Pull to refresh
  • Loading and error states
  • Lists, grids, and single items
  • Provider families
  • Built-in error handling with custom error widgets
  • Pagination (see JetPaginator for infinite scroll)

Basic Usage

Simple list:

JetBuilder.list(
  provider: postsProvider,
  itemBuilder: (post, index) => PostCard(post: post),
)

Grid with family:

JetBuilder.familyGrid(
  provider: productsByCategoryProvider,
  param: 'electronics',
  crossAxisCount: 2,
  itemBuilder: (product, index) => ProductCard(product: product),
)

Single item:

JetBuilder.item(
  provider: userProvider,
  builder: (user, ref) => UserProfile(user: user),
)

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

builder<T>({required FutureProvider<T> provider, required Widget builder(T data, WidgetRef ref), Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable widget with custom builder
familyBuilder<T, Param>({required FutureProvider<T> provider(Param), required Param param, required Widget builder(T data, WidgetRef ref), Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable widget with custom builder and family support
familyGrid<T, Param>({required FutureProvider<List<T>> provider(Param), required Param param, required Widget itemBuilder(T item, int index), required int crossAxisCount, double crossAxisSpacing = 8.0, double mainAxisSpacing = 8.0, double childAspectRatio = 1.0, Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, EdgeInsets? padding, bool shrinkWrap = false, ScrollPhysics? physics, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable grid widget with family support
familyItem<T, Param>({required FutureProvider<T> provider(Param), required Param param, required Widget builder(T item, WidgetRef ref), Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, EdgeInsets? padding, ScrollPhysics? physics, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable single item widget with family support
familyList<T, Param>({required FutureProvider<List<T>> provider(Param), required Param param, required Widget itemBuilder(T item, int index), Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, EdgeInsets? padding, bool shrinkWrap = false, ScrollPhysics? physics, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable list widget with family support
grid<T>({required FutureProvider<List<T>> provider, required Widget itemBuilder(T item, int index), required int crossAxisCount, double crossAxisSpacing = 8.0, double mainAxisSpacing = 8.0, double childAspectRatio = 1.0, Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, EdgeInsets? padding, bool shrinkWrap = false, ScrollPhysics? physics, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable grid widget
item<T>({required FutureProvider<T> provider, required Widget builder(T item, WidgetRef ref), Widget? loading, Widget error(Object error, StackTrace? stackTrace)?, EdgeInsets? padding, ScrollPhysics? physics, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable single item widget
list<T>({required FutureProvider<List<T>> provider, required Widget itemBuilder(T item, int index), required BuildContext context, Widget? loading, Widget errorBuilder(Object error, StackTrace? stackTrace)?, Widget? noItemsBuilder, Future<void> noItemsAction()?, String? noItemsTitle, EdgeInsets? padding, bool shrinkWrap = false, ScrollPhysics? physics, Widget separatorBuilder(BuildContext, int)?, VoidCallback? onRetry, Future<void> onRefresh()?}) Widget
Creates a refreshable list widget