Merge pull request #3 from DieLustigenTierwesen/copilot/sub-pr-1-again

Debounce tab refresh in HomeShell to prevent redundant network calls
This commit is contained in:
Lukas Müllner 2026-02-24 20:43:50 +01:00 committed by GitHub
commit 7ed134eba2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -15,6 +15,8 @@ class _HomeShellState extends State<HomeShell> {
int _currentIndex = 0;
final _collectionsKey = GlobalKey<CollectionsScreenState>();
final _scanKey = GlobalKey<ScanTabState>();
final Map<int, DateTime> _lastRefreshed = {};
static const _refreshDebounce = Duration(seconds: 30);
late final List<Widget> _pages = <Widget>[
CollectionsScreen(key: _collectionsKey),
@ -24,10 +26,13 @@ class _HomeShellState extends State<HomeShell> {
void _onTabSelected(int i) {
setState(() => _currentIndex = i);
final now = DateTime.now();
final last = _lastRefreshed[i];
if (last != null && now.difference(last) < _refreshDebounce) return;
_lastRefreshed[i] = now;
if (i == 0) {
_collectionsKey.currentState?.refresh();
}
if (i == 1) {
} else if (i == 1) {
_scanKey.currentState?.refresh();
}
}