form_bloc
form_bloc copied to clipboard
Inconsistency with `ListFieldBloc#updateFieldBlocs`
I've tried to use ReorderableListView
with ListFieldBloc
and found following inconsistency:
final shapes = ListFieldBloc<ShapePropertiesBloc, void>();
This one produces incorrect results inconsistently
void reorderShape(int oldIndex, int newIndex) {
final blocs = shapes.state.fieldBlocs;
final shapeBloc = blocs.removeAt(oldIndex);
blocs.insert(
oldIndex < newIndex
? newIndex - 1
: newIndex,
shapeBloc,
);
shapes.updateFieldBlocs(blocs);
}
This method produces correct results, but creates a junk frames due to double emit.
void reorderShape(int oldIndex, int newIndex) {
shapes
..removeFieldBlocAt(oldIndex)
..insertFieldBloc(
shapeBloc,
oldIndex < newIndex
? newIndex - 1
: newIndex,
);
}
I suspect issue is with order of FormBlocUtils
calls, because they are different if I use patch method.
https://github.com/GiancarloCode/form_bloc/pull/312#issuecomment-1164240179