Fix InputDecorator suffixIcon color when in error and hovered (#149643)
## Description This PRs makes the `InputDecoration.suffixIcon` color compliant with the M3 spec when in error state and hovered. From M3 spec, the color should be `onErrorContainer`, see https://m3.material.io/components/text-fields/specs#e4964192-72ad-414f-85b4-4b4357abb83c  ## Related Issue Fixes https://github.com/flutter/flutter/issues/149410. ## Tests Updates 2 tests.
This commit is contained in:
parent
c5025ad53d
commit
4608a89137
@ -252,6 +252,7 @@ md.comp.filled-text-field.error.focus.trailing-icon.color,
|
||||
md.comp.filled-text-field.error.hover.active-indicator.color,
|
||||
md.comp.filled-text-field.error.hover.label-text.color,
|
||||
md.comp.filled-text-field.error.hover.supporting-text.color,
|
||||
md.comp.filled-text-field.error.hover.trailing-icon.color,
|
||||
md.comp.filled-text-field.error.label-text.color,
|
||||
md.comp.filled-text-field.error.leading-icon.color,
|
||||
md.comp.filled-text-field.error.supporting-text.color,
|
||||
|
|
@ -124,10 +124,10 @@ class _${blockName}DefaultsM3 extends InputDecorationTheme {
|
||||
if (states.contains(MaterialState.disabled)) {
|
||||
return ${componentColor('md.comp.filled-text-field.disabled.trailing-icon')};
|
||||
}
|
||||
if (states.contains(MaterialState.error)) {${componentColor('md.comp.filled-text-field.error.trailing-icon') == componentColor('md.comp.filled-text-field.error.focus.trailing-icon') ? '' : '''
|
||||
if (states.contains(MaterialState.error)) {
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
return ${componentColor('md.comp.filled-text-field.error.hover.trailing-icon')};
|
||||
}
|
||||
}${componentColor('md.comp.filled-text-field.error.trailing-icon') == componentColor('md.comp.filled-text-field.error.focus.trailing-icon') ? '' : '''
|
||||
if (states.contains(MaterialState.focused)) {
|
||||
return ${componentColor('md.comp.filled-text-field.error.focus.trailing-icon')};
|
||||
}'''}
|
||||
|
@ -4748,6 +4748,9 @@ class _InputDecoratorDefaultsM3 extends InputDecorationTheme {
|
||||
return _colors.onSurface.withOpacity(0.38);
|
||||
}
|
||||
if (states.contains(MaterialState.error)) {
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
return _colors.onErrorContainer;
|
||||
}
|
||||
return _colors.error;
|
||||
}
|
||||
return _colors.onSurfaceVariant;
|
||||
|
@ -5786,9 +5786,7 @@ void main() {
|
||||
);
|
||||
|
||||
final ThemeData theme = Theme.of(tester.element(findSuffixIcon()));
|
||||
// TODO(bleroux): based on M3 spec, it should be theme.colorScheme.onErrorContainer.
|
||||
// See https://github.com/flutter/flutter/issues/149410.
|
||||
final Color expectedColor = theme.colorScheme.error;
|
||||
final Color expectedColor = theme.colorScheme.onErrorContainer;
|
||||
expect(getSuffixIconStyle(tester).color, expectedColor);
|
||||
});
|
||||
});
|
||||
@ -6262,9 +6260,7 @@ void main() {
|
||||
);
|
||||
|
||||
final ThemeData theme = Theme.of(tester.element(findSuffixIcon()));
|
||||
// TODO(bleroux): based on M3 spec, it should be theme.colorScheme.onErrorContainer.
|
||||
// See https://github.com/flutter/flutter/issues/149410.
|
||||
final Color expectedColor = theme.colorScheme.error;
|
||||
final Color expectedColor = theme.colorScheme.onErrorContainer;
|
||||
expect(getSuffixIconStyle(tester).color, expectedColor);
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user