๐งพ FIELD_TYPE_USAGE.md
This document provides examples of how to use
FieldCubit<T>
with different Dart data types in
the reusable_editor
package.
โ
FieldCubit โ Text
(Required Input)
final nameFieldCubit = FieldCubit<String>(
: RequiredStringValidator(),
validator
);
.update('John Doe');
nameFieldCubit.validate(); // returns null if valid nameFieldCubit
โ
FieldCubit โ Integer
(e.g., Age)
final ageFieldCubit = FieldCubit<int>(
: MinValueValidator(min: 18),
validator
);
.update(25);
ageFieldCubit.validate(); // โ
returns null ageFieldCubit
โ
FieldCubit
โ Floating point (e.g., Price)
final priceFieldCubit = FieldCubit<double>(
: MinValueValidator(min: 0.0),
validator
);
.update(99.99); priceFieldCubit
โ
FieldCubit โ Date
selection
final dateFieldCubit = FieldCubit<DateTime>(
: RequiredDateValidator(),
validator
);
.update(DateTime.now()); dateFieldCubit
โ
FieldCubit โ
Toggle, Checkbox, etc.
final agreeFieldCubit = FieldCubit<bool>(
: RequiredTrueValidator(), // Must be true
validator
);
.update(true); // โ
agreeFieldCubit
โ
FieldCubit<List> โ Multi-select
final tagsFieldCubit = FieldCubit<List<String>>(
: RequiredListValidator(),
validator
);
.update(['flutter', 'dart']); tagsFieldCubit
โ
FieldCubit โ
Dropdown/select input
enum Gender { male, female, other }
final genderFieldCubit = FieldCubit<Gender>(
: RequiredFieldValidator<Gender>(),
validator
);
.update(Gender.male); genderFieldCubit
โ UI Integration Example โ Text Field
<FieldCubit<String>, FieldState<String>>(
BlocBuilder: nameFieldCubit,
bloc: (_, state) => TextFormField(
builder: state.value ?? '',
initialValue: nameFieldCubit.update,
onChanged: InputDecoration(
decoration: 'Name',
labelText: state.errorText,
errorText,
),
) );