From 47db539d9117f8ca8ef99fbe3b18f4fc7b10cd8d Mon Sep 17 00:00:00 2001 From: Levi Date: Tue, 8 Sep 2026 21:25:05 +0800 Subject: [PATCH] fix: align extension search with compact toolbar controls --- .../extensions/presentation/pages/extensions_page.dart | 1 + ui/flutter/lib/shared/theme/app_design_tokens.dart | 1 + ui/flutter/test/widget_test.dart | 6 ++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ui/flutter/lib/features/extensions/presentation/pages/extensions_page.dart b/ui/flutter/lib/features/extensions/presentation/pages/extensions_page.dart index a9602111..fb3d1226 100644 --- a/ui/flutter/lib/features/extensions/presentation/pages/extensions_page.dart +++ b/ui/flutter/lib/features/extensions/presentation/pages/extensions_page.dart @@ -633,6 +633,7 @@ class _Toolbar extends StatelessWidget { final search = AppTextField( key: const ValueKey('extension-search-input'), controller: searchController, + padding: MediaQuery.sizeOf(context).width >= Breakpoints.mobile ? AppDesignTokens.compactTextFieldPadding : null, placeholder: Text(context.l10n.searchExtensions, style: TextStyle(color: palette.searchHint)), features: [shad.InputFeature.leading(Icon(Icons.search_rounded, size: 16, color: palette.textMuted))], onSubmitted: onSearch, diff --git a/ui/flutter/lib/shared/theme/app_design_tokens.dart b/ui/flutter/lib/shared/theme/app_design_tokens.dart index e7d1f8ff..3deed31c 100644 --- a/ui/flutter/lib/shared/theme/app_design_tokens.dart +++ b/ui/flutter/lib/shared/theme/app_design_tokens.dart @@ -22,6 +22,7 @@ class AppDesignTokens { static const double settingsNumberControlWidth = 168; static const double settingsItemMinLabelWidth = 160; static const EdgeInsets textFieldPadding = EdgeInsets.symmetric(horizontal: 12, vertical: 11); + static const EdgeInsets compactTextFieldPadding = EdgeInsets.symmetric(horizontal: 12, vertical: 6); static const EdgeInsets numberTextFieldPadding = EdgeInsets.symmetric(horizontal: 12, vertical: 10); static const EdgeInsets pagePadding = EdgeInsets.symmetric(horizontal: 32); diff --git a/ui/flutter/test/widget_test.dart b/ui/flutter/test/widget_test.dart index 5932f4ef..c2a2533c 100644 --- a/ui/flutter/test/widget_test.dart +++ b/ui/flutter/test/widget_test.dart @@ -414,7 +414,7 @@ void main() { child: shad.ShadcnApp( theme: AppTheme.light(), materialTheme: AppTheme.materialLight(), - home: const ExtensionsPage(), + home: const AppComponentThemes(child: ExtensionsPage()), ), ), ); @@ -434,6 +434,7 @@ void main() { final cardRect = tester.getRect(find.byKey(const ValueKey('extension-card-extension-0'))); final rightmostCardRect = tester.getRect(find.byKey(const ValueKey('extension-card-extension-2'))); final appMarkRect = tester.getRect(find.byKey(const ValueKey('primary-rail-app-mark'))); + expect(searchRect.height, closeTo(sortRect.height, 0.01)); expect(searchRect.width, 240); expect(searchRect.width, lessThan(cardRect.width)); expect(sortRect.left - searchRect.right, closeTo(10, 0.01)); @@ -466,6 +467,7 @@ void main() { expect(find.byType(PrimaryRail), findsOneWidget); final compactSearchRect = tester.getRect(find.byKey(const ValueKey('extension-search-field-container'))); expect(compactSearchRect.width, lessThan(240)); + expect(compactSearchRect.height, closeTo(sortRect.height, 0.01)); expect( tester.getRect(find.byKey(const ValueKey('extension-sort-control'))).center.dy, closeTo(compactSearchRect.center.dy, 0.01), @@ -710,7 +712,7 @@ void main() { child: shad.ShadcnApp( theme: AppTheme.light(), materialTheme: AppTheme.materialLight(), - home: const ExtensionsPage(), + home: const AppComponentThemes(child: ExtensionsPage()), ), ), );