From 917f748c25c71a34b96377d43712bde635432055 Mon Sep 17 00:00:00 2001 From: LOSSES Don <1384036+Losses@users.noreply.github.com> Date: Wed, 27 Nov 2024 11:24:12 +0800 Subject: [PATCH] feat: Add reveal highlight to the search screen --- lib/screens/search/widgets/search_card.dart | 69 ++++++++++++--------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/lib/screens/search/widgets/search_card.dart b/lib/screens/search/widgets/search_card.dart index 424a6ec26..f75db5b5c 100644 --- a/lib/screens/search/widgets/search_card.dart +++ b/lib/screens/search/widgets/search_card.dart @@ -4,6 +4,8 @@ import 'package:fluent_ui/fluent_ui.dart'; import '../../../widgets/ax_pressure.dart'; import '../../../widgets/hover_opacity.dart'; +import '../../../widgets/collection_item.dart'; +import '../../../widgets/ax_reveal/ax_reveal.dart'; import '../../../widgets/context_menu_wrapper.dart'; import '../../../providers/responsive_providers.dart'; @@ -38,6 +40,8 @@ abstract class SearchCardState extends State { @override Widget build(BuildContext context) { + final brightness = FluentTheme.of(context).brightness; + return ContextMenuWrapper( contextAttachKey: contextAttachKey, contextController: contextController, @@ -110,38 +114,43 @@ abstract class SearchCardState extends State { ); } - return Button( - style: const ButtonStyle( - padding: WidgetStatePropertyAll(EdgeInsets.all(0)), - ), - onPressed: () => onPressed(context), - child: ClipRRect( - borderRadius: BorderRadius.circular(3), - child: LayoutBuilder( - builder: (context, constraints) { - final size = - min(constraints.maxWidth, constraints.maxHeight); - return Row( - children: [ - buildLeadingWidget(size), - Expanded( - child: Padding( - padding: const EdgeInsets.all(8), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - getItemTitle(), - overflow: TextOverflow.ellipsis, - ), - ], + return AxReveal( + config: brightness == Brightness.dark + ? defaultLightRevealConfig + : defaultDarkRevealConfig, + child: Button( + style: const ButtonStyle( + padding: WidgetStatePropertyAll(EdgeInsets.all(0)), + ), + onPressed: () => onPressed(context), + child: ClipRRect( + borderRadius: BorderRadius.circular(3), + child: LayoutBuilder( + builder: (context, constraints) { + final size = + min(constraints.maxWidth, constraints.maxHeight); + return Row( + children: [ + buildLeadingWidget(size), + Expanded( + child: Padding( + padding: const EdgeInsets.all(8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + getItemTitle(), + overflow: TextOverflow.ellipsis, + ), + ], + ), ), ), - ), - ], - ); - }, + ], + ); + }, + ), ), ), );