select<T> static method
ArcaneField
select<T>({
- String? name,
- String? description,
- IconData? icon,
- ArcaneEnumFieldType? mode,
- Widget itemBuilder(
- BuildContext,
- T
- Widget cardBuilder(
- BuildContext,
- T,
- T
- required T defaultValue,
- required List<
T> options, - required Future<
T> getter(), - required Future setter(
- T
Creates an enum selection field for choosing from a list of values.
Supports various modes like dropdown or cards, with customizable builders for items and cards.
This field is a core part of Arcane's form input system, allowing typed selection
within Form widgets, often wrapped by FieldWrapper for enhanced UX.
Parameters:
name: Optional name.description: Optional description.icon: Optional icon.mode: Selection mode (e.g., dropdown, cards).itemBuilder: Builder for individual enum items.cardBuilder: Builder for card-based selection previews.defaultValue: Required initial enum value.options: Required list of available enum options.getter: Async enum getter.setter: Async enum setter.
Returns: An ArcaneField<T> using ArcaneEnumField builder.
Implementation
static ArcaneField select<T>(
{String? name,
String? description,
IconData? icon,
ArcaneEnumFieldType? mode,
Widget Function(BuildContext, T)? itemBuilder,
Widget Function(BuildContext, T, T)? cardBuilder,
required T defaultValue,
required List<T> options,
required Future<T> Function() getter,
required Future Function(T) setter}) =>
ArcaneField<T>(
meta: ArcaneFieldMetadata(
name: name,
description: description,
icon: icon,
),
provider: ArcaneFieldDirectProvider(
defaultValue: defaultValue,
getter: (_) => getter(),
setter: (_, v) => setter(v)),
builder: (context) => ArcaneEnumField<T>(
options: options,
mode: mode,
itemBuilder: itemBuilder,
cardBuilder: cardBuilder,
));