#706 prevent multiple calls to load viewer overlay metadata

This commit is contained in:
Thibault Deckers 2024-01-09 23:54:36 +01:00
parent 58e12d147d
commit fb5457672a

View file

@ -44,10 +44,9 @@ class ViewerDetailOverlay extends StatefulWidget {
class _ViewerDetailOverlayState extends State<ViewerDetailOverlay> { class _ViewerDetailOverlayState extends State<ViewerDetailOverlay> {
List<AvesEntry> get entries => widget.entries; List<AvesEntry> get entries => widget.entries;
AvesEntry? get entry { AvesEntry? get entry => entryForIndex(widget.index);
final index = widget.index;
return index < entries.length ? entries[index] : null; AvesEntry? entryForIndex(int index) => index < entries.length ? entries[index] : null;
}
late Future<List<dynamic>?> _detailLoader; late Future<List<dynamic>?> _detailLoader;
AvesEntry? _lastEntry; AvesEntry? _lastEntry;
@ -62,7 +61,8 @@ class _ViewerDetailOverlayState extends State<ViewerDetailOverlay> {
@override @override
void didUpdateWidget(covariant ViewerDetailOverlay oldWidget) { void didUpdateWidget(covariant ViewerDetailOverlay oldWidget) {
super.didUpdateWidget(oldWidget); super.didUpdateWidget(oldWidget);
if (entry != _lastEntry) { final newEntry = entryForIndex(widget.index);
if (newEntry != entryForIndex(oldWidget.index) && newEntry != _lastEntry) {
_initDetailLoader(); _initDetailLoader();
} }
} }