๐งพ 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>(
validator: RequiredStringValidator(),
);
nameFieldCubit.update('John Doe');
nameFieldCubit.validate(); // returns null if validโ
FieldCubit โ Integer
(e.g., Age)
final ageFieldCubit = FieldCubit<int>(
validator: MinValueValidator(min: 18),
);
ageFieldCubit.update(25);
ageFieldCubit.validate(); // โ
returns nullโ
FieldCubit
โ Floating point (e.g., Price)
final priceFieldCubit = FieldCubit<double>(
validator: MinValueValidator(min: 0.0),
);
priceFieldCubit.update(99.99);โ
FieldCubit โ Date
selection
final dateFieldCubit = FieldCubit<DateTime>(
validator: RequiredDateValidator(),
);
dateFieldCubit.update(DateTime.now());โ
FieldCubit โ
Toggle, Checkbox, etc.
final agreeFieldCubit = FieldCubit<bool>(
validator: RequiredTrueValidator(), // Must be true
);
agreeFieldCubit.update(true); // โ
โ
FieldCubit<List> โ Multi-select
final tagsFieldCubit = FieldCubit<List<String>>(
validator: RequiredListValidator(),
);
tagsFieldCubit.update(['flutter', 'dart']);โ
FieldCubit โ
Dropdown/select input
enum Gender { male, female, other }
final genderFieldCubit = FieldCubit<Gender>(
validator: RequiredFieldValidator<Gender>(),
);
genderFieldCubit.update(Gender.male);โ UI Integration Example โ Text Field
BlocBuilder<FieldCubit<String>, FieldState<String>>(
bloc: nameFieldCubit,
builder: (_, state) => TextFormField(
initialValue: state.value ?? '',
onChanged: nameFieldCubit.update,
decoration: InputDecoration(
labelText: 'Name',
errorText: state.errorText,
),
),
);