TEmptyState class

A versatile empty state placeholder widget.

TEmptyState provides standardized placeholders for empty lists, search misses, 404 views, failed queries, and initial dashboard states.

Named Constructors

Basic Usage

// Standard empty state with action
TEmptyState(
  icon: Icons.inbox_outlined,
  title: 'No Customers Yet',
  description: 'Get started by creating your first customer account.',
  action: TButton(
    text: 'Add Customer',
    icon: Icons.add,
    onTap: () => openAddCustomer(),
  ),
)

// Search results empty state
TEmptyState.search(
  query: 'Widgets',
  onClear: () => searchController.clear(),
)
Inheritance
Available extensions

Constructors

TEmptyState({Key? key, dynamic icon, Widget? image, String? title, Widget? titleWidget, String? description, Widget? descriptionWidget, Widget? action, Widget? secondaryAction, bool compact = false, EdgeInsetsGeometry padding = const EdgeInsets.all(32.0), Color? iconColor, Color? iconBackgroundColor, double? iconSize})
Creates a customizable empty state widget.
const
TEmptyState.compact({Key? key, dynamic icon = Icons.inbox_outlined, String message = 'No items found', Widget? action, Color? iconColor, Color? iconBackgroundColor, EdgeInsetsGeometry padding = const EdgeInsets.symmetric(horizontal: 16.0, vertical: 12.0)})
Creates a compact empty state for small cards, popovers, or table cells.
const
TEmptyState.error({Key? key, String title = 'Something went wrong', String description = 'Failed to load data. Please check your connection and try again.', VoidCallback? onRetry, Widget? action, bool compact = false, EdgeInsetsGeometry padding = const EdgeInsets.all(32.0)})
Creates an error / failure empty state with an optional retry callback.
factory
TEmptyState.noData({Key? key, dynamic icon = Icons.inbox_outlined, Widget? image, String? title = 'No data available', Widget? titleWidget, String? description = 'There are no records to display at this time.', Widget? descriptionWidget, Widget? action, Widget? secondaryAction, bool compact = false, EdgeInsetsGeometry padding = const EdgeInsets.all(32.0), Color? iconColor, Color? iconBackgroundColor, double? iconSize})
Creates a standard "No Data" placeholder.
const
TEmptyState.notFound({Key? key, dynamic icon = Icons.find_in_page_outlined, Widget? image, String? title = 'Item Not Found', Widget? titleWidget, String? description = 'The item or resource you requested could not be located.', Widget? descriptionWidget, Widget? action, Widget? secondaryAction, bool compact = false, EdgeInsetsGeometry padding = const EdgeInsets.all(32.0), Color? iconColor, Color? iconBackgroundColor, double? iconSize})
Creates a 404 or missing resource empty state.
const
TEmptyState.search({Key? key, String? query, String? title, String? description, VoidCallback? onClear, Widget? action, bool compact = false, EdgeInsetsGeometry padding = const EdgeInsets.all(32.0)})
Creates a search results empty state placeholder.
factory

Properties

action → Widget?
Primary call-to-action button or widget.
final
compact → bool
Whether to render a low-profile compact layout (ideal for dropdowns, small cards, or side sheets).
final
description → String?
Secondary descriptive text.
final
descriptionWidget → Widget?
Custom description widget replacing description.
final
hashCode → int
The hash code for this object.
no setterinherited
icon → dynamic
The icon to display. Supports IconData, HugeIcon, or a custom Widget.
final
iconBackgroundColor → Color?
Custom background color for the circular icon container.
final
iconColor → Color?
Custom color for the icon.
final
iconSize → double?
Size of the icon. Defaults to 32.0 in normal mode, 20.0 in compact mode.
final
image → Widget?
Custom illustration or image widget displayed instead of icon.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
padding → EdgeInsetsGeometry
Padding around the entire empty state container.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
secondaryAction → Widget?
Secondary call-to-action button or link.
final
title → String?
Primary title text.
final
titleWidget → Widget?
Custom title widget replacing title.
final

Methods

box({double minW = 0.0, double minH = 0.0, double maxW = double.infinity, double maxH = double.infinity}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a ConstrainedBox to apply layout constraints.
build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
center({bool when = true}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Center widget.
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
expanded({int flex = 1}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in an Expanded widget.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
padding([double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0]) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with flexible edge control.
paddingSymmetric({double h = 0.0, double v = 0.0}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Padding with symmetric horizontal and vertical spacing.
size({double? w, double? h}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a SizedBox to apply fixed width and/or height.
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited
visible(bool visible, {bool maintainState = false}) → Widget

Available on Widget, provided by the WidgetX extension

Wraps this widget in a Visibility widget.
when(bool condition) → Widget

Available on Widget, provided by the WidgetX extension

Returns this widget if condition is true, otherwise returns SizedBox.shrink(). Usage: Text('Hello').when(isVisible)

Operators

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