improved support for disable animations

This commit is contained in:
Fabian Freund
2026-03-12 03:37:59 +01:00
parent e001701b07
commit 57a8b2f013
14 changed files with 224 additions and 110 deletions
@@ -126,6 +126,7 @@ class _Segment extends StatelessWidget {
@override
Widget build(BuildContext context) {
final disableAnimations = MediaQuery.disableAnimationsOf(context);
final theme = Theme.of(context);
final colorScheme = theme.colorScheme;
@@ -140,7 +141,9 @@ class _Segment extends StatelessWidget {
onTap: onTap,
behavior: HitTestBehavior.opaque,
child: AnimatedContainer(
duration: const Duration(milliseconds: 300),
duration: disableAnimations
? Duration.zero
: const Duration(milliseconds: 300),
curve: Curves.easeOutCubic,
color: bgColor,
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
@@ -149,7 +152,9 @@ class _Segment extends StatelessWidget {
children: [
Icon(icon, color: fgColor, size: 18),
AnimatedSize(
duration: const Duration(milliseconds: 300),
duration: disableAnimations
? Duration.zero
: const Duration(milliseconds: 300),
curve: Curves.easeOutCubic,
child: isSelected
? Padding(
@@ -54,6 +54,7 @@ class SearchModuleHeader extends StatelessWidget {
@override
Widget build(BuildContext context) {
final disableAnimations = MediaQuery.disableAnimationsOf(context);
final isCollapsed = displayState == SearchModuleDisplayState.collapsed;
final isExpanded = displayState == SearchModuleDisplayState.expanded;
final showTrailing = !isCollapsed && totalCount > previewLimit;
@@ -75,7 +76,9 @@ class SearchModuleHeader extends StatelessWidget {
const SizedBox(width: 8),
AnimatedRotation(
turns: isCollapsed ? -0.25 : 0,
duration: const Duration(milliseconds: 200),
duration: disableAnimations
? Duration.zero
: const Duration(milliseconds: 200),
child: Icon(
Icons.expand_more,
size: 20,