feat: implement real-time database synchronization with SSE and update backend modules
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../../../core/api/api_error_mapper.dart';
|
||||
import '../../../core/realtime/realtime_sync.dart';
|
||||
import '../../admin/data/admin_repository.dart';
|
||||
import '../../admin/domain/receipt_alias.dart';
|
||||
|
||||
@@ -16,13 +17,27 @@ class _UserAliasesScreenState extends ConsumerState<UserAliasesScreen> {
|
||||
List<ReceiptAlias> _aliases = [];
|
||||
bool _isLoading = true;
|
||||
String? _error;
|
||||
ProviderSubscription<int>? _realtimeTickSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_realtimeTickSubscription = ref.listenManual<int>(
|
||||
realtimeRefreshTickProvider,
|
||||
(_, __) {
|
||||
if (!mounted) return;
|
||||
_load();
|
||||
},
|
||||
);
|
||||
_load();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_realtimeTickSubscription?.close();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
Future<void> _load() async {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
|
||||
Reference in New Issue
Block a user