updateItem method

Future<void> updateItem(
  1. Map item, {
  2. String idKey = '_id',
  3. Function? onSuccess,
  4. Function? onError,
})

Implementation

Future<void> updateItem(Map item, {String idKey = '_id', Function? onSuccess, Function? onError}) async {
  final controllers = <String, TextEditingController>{};

  Map<String, dynamic> updatedItem = Map<String, dynamic>.from(item);
  updatedItem.forEach((key, value) {
    controllers[key] = TextEditingController(text: value.toString());
  });

  bool? isUpdated = await showDialog<bool>(
    context: context,
    builder: (dialogContext) => _buildUpdateDialog(
      controllers, updatedItem, updatedItem.remove(idKey), idKey, onSuccess: onSuccess, onError: onError
    ),
  );

  if (isUpdated != null) {
    showSnackBar(context, isUpdated ? 'Updated Successfully' : 'Failed to Update');
  }
}