getPendingChanges method

  1. @override
Future<List<T>> getPendingChanges()
override

Implementation

@override
Future<List<T>> getPendingChanges() async {
  final box = await _box;
  final pending = <T>[];

  for (final key in box.keys) {
    final data = box.get(key);

    Map<String, dynamic>? map;
    if (storeAsMap && data is Map) {
      map = Map<String, dynamic>.from(data);
    } else if (!storeAsMap && serializer != null) {
      map = serializer!(data);
    }

    if (map != null) {
      final status = SyncStatus.values[map['_syncStatus'] ?? 0];
      if (status == SyncStatus.pending) {
        final model = _deserializeModel(map);
        try {
          (model as dynamic)._syncAction = SyncAction.values[map['_syncAction'] ?? 0];
        } catch (_) {}
        pending.add(model);
      }
    }
  }

  return pending;
}