RistoStatusSwitcher.computed constructor
RistoStatusSwitcher.computed({
- Key? key,
- bool isLoading = false,
- bool hasError = false,
- bool isEmpty = false,
- required WidgetBuilder contentBuilder,
- WidgetBuilder? loadingBuilder,
- WidgetBuilder? emptyBuilder,
- WidgetBuilder? errorBuilder,
- String? defaultEmptyTitle,
- String? defaultEmptySubtitle,
- String? defaultErrorTitle,
- String? defaultErrorSubtitle,
- VoidCallback? onRetry,
- Duration duration = const Duration(milliseconds: 400),
- Alignment alignment = Alignment.topCenter,
- EdgeInsetsGeometry? margin,
- EdgeInsetsGeometry? padding,
- double? width,
- double? height,
- double? minWidth,
- double? maxWidth,
- double? minHeight,
- double? maxHeight,
- Color? backgroundColor,
- Color? borderColor,
- double borderWidth = 1.0,
- double borderRadius = 16.0,
- double? elevation,
- Color? shadowColor,
- Clip clipBehavior = Clip.none,
A convenience factory that automatically computes the RistoUiState based on boolean flags. Priority: isLoading > hasError > isEmpty > content.
Implementation
factory RistoStatusSwitcher.computed({
Key? key,
bool isLoading = false,
bool hasError = false,
bool isEmpty = false,
required WidgetBuilder contentBuilder,
WidgetBuilder? loadingBuilder,
WidgetBuilder? emptyBuilder,
WidgetBuilder? errorBuilder,
String? defaultEmptyTitle,
String? defaultEmptySubtitle,
String? defaultErrorTitle,
String? defaultErrorSubtitle,
VoidCallback? onRetry,
Duration duration = const Duration(milliseconds: 400),
Alignment alignment = Alignment.topCenter,
EdgeInsetsGeometry? margin,
EdgeInsetsGeometry? padding,
double? width,
double? height,
double? minWidth,
double? maxWidth,
double? minHeight,
double? maxHeight,
Color? backgroundColor,
Color? borderColor,
double borderWidth = 1.0,
double borderRadius = 16.0,
double? elevation,
Color? shadowColor,
Clip clipBehavior = Clip.none,
}) {
RistoUiState derivedState = RistoUiState.content;
if (isLoading) {
derivedState = RistoUiState.loading;
} else if (hasError) {
derivedState = RistoUiState.error;
} else if (isEmpty) {
derivedState = RistoUiState.empty;
}
return RistoStatusSwitcher(
key: key,
state: derivedState,
contentBuilder: contentBuilder,
loadingBuilder: loadingBuilder,
emptyBuilder: emptyBuilder,
errorBuilder: errorBuilder,
defaultEmptyTitle: defaultEmptyTitle,
defaultEmptySubtitle: defaultEmptySubtitle,
defaultErrorTitle: defaultErrorTitle,
defaultErrorSubtitle: defaultErrorSubtitle,
onRetry: onRetry,
duration: duration,
alignment: alignment,
margin: margin,
padding: padding,
width: width,
height: height,
minWidth: minWidth,
maxWidth: maxWidth,
minHeight: minHeight,
maxHeight: maxHeight,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderWidth: borderWidth,
borderRadius: borderRadius,
elevation: elevation,
shadowColor: shadowColor,
clipBehavior: clipBehavior,
);
}