Files
kooltab/lib/viewmodels/history_view_model.dart
T
2026-07-12 02:49:08 +02:00

62 lines
1.3 KiB
Dart

import 'package:flutter/foundation.dart';
import '../models/closed_tab.dart';
import '../services/bar_tab_service.dart';
class HistoryViewModel extends ChangeNotifier {
final BarTabService barTabService;
HistoryViewModel({
required this.barTabService,
});
List<ClosedTab> _closedTabs = [];
bool _isLoading = false;
bool _hasLoaded = false;
String? _errorMessage;
String _searchQuery = '';
List<ClosedTab> get closedTabs {
if (_searchQuery.isEmpty) return _closedTabs;
return _closedTabs
.where((tab) =>
tab.customerName.toLowerCase().contains(_searchQuery.toLowerCase()))
.toList();
}
bool get isLoading => _isLoading;
bool get hasLoaded => _hasLoaded;
String? get errorMessage => _errorMessage;
Future<void> ensureLoaded() async {
if (_hasLoaded || _isLoading) return;
await load();
}
Future<void> load() async {
if (_isLoading) return;
_isLoading = true;
_errorMessage = null;
notifyListeners();
try {
_closedTabs = await barTabService.getClosedTabs();
} catch (_) {
_errorMessage = 'Could not load tab history.';
} finally {
_hasLoaded = true;
_isLoading = false;
notifyListeners();
}
}
void search(String query) {
_searchQuery = query;
notifyListeners();
}
}