setItem method
Future<Result<int, String, T?> >
setItem(
- T item, {
- Future<
Result< alternativeFunc(int, String, T?> >- T item
- String channel = 'main',
- CrudStrategy strategy = const DefaultCrudStrategy(),
override
Implementation
@override
Future<Result<int, String, T?>> setItem(
T item, {
Future<Result<int, String, T?>> Function(T item)? alternativeFunc,
String channel = 'main',
CrudStrategy strategy = const DefaultCrudStrategy(),
}) async {
final res = await (alternativeFunc != null
? alternativeFunc(item)
: _crud.setItem(item));
if (res.code == 0) {
final setItem = res.data!;
_getItemStream(channel).add(setItem);
var items = _currentList(channel);
final index = items.indexWhere((e) => e.id == setItem.id);
if (index > -1) {
items.replaceRange(index, index + 1, [setItem]);
} else {
items.add(setItem);
}
_getItemsStream(channel).add(items);
}
return res;
}