(Feat) Migration PocketBase
This commit is contained in:
@@ -4,6 +4,7 @@ import 'package:flutter/services.dart';
|
||||
import '../models/client.dart';
|
||||
import '../models/mouvement.dart';
|
||||
import '../models/recompense.dart';
|
||||
import '../pocketbase_config.dart';
|
||||
import '../services/client_repository.dart';
|
||||
import '../services/recompense_repository.dart';
|
||||
import '../services/reglages.dart';
|
||||
@@ -26,11 +27,33 @@ class _ClientDetailScreenState extends State<ClientDetailScreen> {
|
||||
final _repo = ClientRepository.instance;
|
||||
List<Mouvement> _mouvements = [];
|
||||
bool _chargeMouvements = true;
|
||||
Future<void> Function()? _desabonner;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_rechargerMouvements();
|
||||
_sabonnerMouvements();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_desabonner?.call();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
/// Historique en temps réel : si un autre appareil ajoute/retire un mouvement
|
||||
/// pour ce client, la liste se met à jour toute seule.
|
||||
Future<void> _sabonnerMouvements() async {
|
||||
try {
|
||||
_desabonner = await pb.collection('mouvements').subscribe('*', (e) {
|
||||
final rec = e.record;
|
||||
if (rec != null && rec.data['client'] != widget.clientId) return;
|
||||
_rechargerMouvements();
|
||||
});
|
||||
} catch (_) {
|
||||
// Temps réel indisponible : on garde le rafraîchissement manuel.
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _rechargerMouvements() async {
|
||||
|
||||
Reference in New Issue
Block a user