profiles provider
This commit is contained in:
31
lib/services/profiles_provider.dart
Normal file
31
lib/services/profiles_provider.dart
Normal file
@@ -0,0 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../models/profile.dart';
|
||||
import 'db_helper.dart';
|
||||
|
||||
class Profiles extends ChangeNotifier {
|
||||
final List<Profile> _profiles = [];
|
||||
Stream<List<Map<String, dynamic>>>? _profilesStream;
|
||||
|
||||
List<Profile> get profiles {
|
||||
if (_profilesStream == null) {
|
||||
DbHelper.fetchProfiles().then((value) {
|
||||
_profiles.clear();
|
||||
_profiles.addAll(value);
|
||||
});
|
||||
_profilesStream = DbHelper.profilesStream;
|
||||
_profilesStream!.listen(
|
||||
(event) => _updateProfile(event),
|
||||
);
|
||||
}
|
||||
return _profiles;
|
||||
}
|
||||
|
||||
_updateProfile(List<Map<String, dynamic>> data) {
|
||||
final List<Profile> profiles = data.map((e) => Profile.fromMap(e)).toList();
|
||||
|
||||
_profiles.clear();
|
||||
_profiles.addAll(profiles);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user