page_state_builder 0.0.3
page_state_builder: ^0.0.3 copied to clipboard
A Flutter package that helps manage loading, success, and error states in your UI with customizable builders.
๐ฆ page_state_builder #
A simple and customizable Flutter widget to manage page states like loading, success, and error without boilerplate. Designed for clean and maintainable UI in apps where content is dynamically loaded.
โจ Features #
- โ Show loading, error, or success states using one widget
- ๐จ Fully customizable widgets for loading and error states
- โป๏ธ Supports retry callbacks for error state
- ๐ Built with simplicity and clean UI in mind
- โ๏ธ Works well with state management libraries like GetX, Riverpod, Provider, etc.
๐ธ Preview #
| Loading State | Error State | Success State |
|---|---|---|
๐ Installation #
Add this to your pubspec.yaml:
dependencies:
page_state_builder: ^1.0.0
Then run:
flutter pub get
๐ ๏ธ Usage #
PageStateBuilder(
state: PageState.loading, // or PageState.success / PageState.error
errorMessage: 'Something went wrong!',
onRetry: () => loadData(),
successBuilder: (_) => Text("Content loaded successfully!"),
);
๐ก With state management (e.g., GetX): #
Obx(
() => PageStateBuilder(
state: controller.state.value,
errorMessage: controller.errorMessage.value,
onRetry: controller.loadData,
successBuilder: (_) => MyContentWidget(),
),
);
๐งฉ Customizing #
You can pass your own loading and error widgets:
PageStateBuilder(
state: myState,
successBuilder: (_) => MySuccessWidget(),
loadingBuilder: (_) => CircularProgressIndicator(),
errorBuilder: (context) => MyCustomErrorWidget(),
);
๐ API Reference #
| Parameter | Type | Description |
|---|---|---|
state |
PageState |
Required. Current state of the widget. |
successBuilder |
WidgetBuilder |
Required. Builder for success state UI. |
loadingBuilder |
WidgetBuilder? |
Optional. Custom widget for loading state. |
errorBuilder |
WidgetBuilder? |
Optional. Custom widget for error state. |
onRetry |
VoidCallback? |
Optional. Retry callback for error state. |
errorMessage |
String? |
Optional. Message to show when in error state. |
๐ฆ PageState Enum #
enum PageState {
loading,
success,
error,
}
Use this enum to manage your UI flow more cleanly.
๐งช Example #
final controller = Get.put(MyController());
PageStateBuilder(
state: controller.pageState,
errorMessage: controller.errorMessage,
onRetry: controller.fetchData,
successBuilder: (_) => MyDataView(),
);
๐ License #
MIT License ยฉ 2025 [ KlevaCode ]
โค๏ธ Contributing #
Feel free to fork and improve this widget. PRs are welcome!