Memoize the per-image SHA-1 disk-cache key (ran on the UI thread on every image build), fade images in via paint alpha instead of an AnimatedSwitcher saveLayer per in-flight tile, create SettingsBuilder's merged listenable once instead of per build, and drop the pointer chrome (InkWell ink machinery, cursor MouseRegions) from cards on TV where no pointer exists.
19 lines
586 B
Dart
19 lines
586 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../utils/platform_detector.dart';
|
|
|
|
class ClickableCursor extends StatelessWidget {
|
|
final Widget child;
|
|
final bool enabled;
|
|
|
|
const ClickableCursor({super.key, required this.child, this.enabled = true});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
// No pointer on TV: skip the MouseRegion entirely — one exists per card
|
|
// and they add up on low-end devices.
|
|
if (PlatformDetector.isTV()) return child;
|
|
return MouseRegion(cursor: enabled ? SystemMouseCursors.click : MouseCursor.defer, child: child);
|
|
}
|
|
}
|