@@ -6,7 +6,7 @@ import '../../extensions/taget_platform_x.dart';
66import '../../l10n/l10n.dart' ;
77import 'theme.dart' ;
88
9- class AudioCardVignette extends StatelessWidget {
9+ class AudioCardVignette extends StatefulWidget {
1010 const AudioCardVignette ({
1111 super .key,
1212 this .onTap,
@@ -16,6 +16,12 @@ class AudioCardVignette extends StatelessWidget {
1616 final void Function ()? onTap;
1717 final IconData iconData;
1818
19+ @override
20+ State <AudioCardVignette > createState () => _AudioCardVignetteState ();
21+ }
22+
23+ class _AudioCardVignetteState extends State <AudioCardVignette > {
24+ bool _focused = false ;
1925 @override
2026 Widget build (BuildContext context) {
2127 final colorScheme = context.colorScheme;
@@ -27,17 +33,21 @@ class AudioCardVignette extends StatelessWidget {
2733 message: context.l10n.unPinAlbum,
2834 child: InkWell (
2935 borderRadius: borderRadius,
30- onTap: onTap,
36+ onHover: (v) => setState (() => _focused = v),
37+ onFocusChange: (v) => setState (() => _focused = v),
38+ onTap: widget.onTap,
3139 child: Container (
3240 decoration: BoxDecoration (
33- color: colorScheme.inverseSurface,
41+ color: _focused ? colorScheme.primary : colorScheme.inverseSurface,
3442 borderRadius: borderRadius,
3543 ),
3644 width: audioCardDimension / (isMobile ? 3 : 4 ),
3745 height: audioCardDimension / (isMobile ? 3 : 4 ),
3846 child: Icon (
39- iconData,
40- color: colorScheme.onInverseSurface,
47+ widget.iconData,
48+ color:
49+ _focused ? colorScheme.onPrimary : colorScheme.onInverseSurface,
50+ semanticLabel: context.l10n.unPinAlbum,
4151 ),
4252 ),
4353 ),
0 commit comments