getButtonColor function
Color
getButtonColor(
{ - required Color color,
- required bool disabled,
- required bool filled,
- required bool hasBeenPressed,
})
Implementation
Color getButtonColor(
{required Color color,
required bool disabled,
required bool filled,
required bool hasBeenPressed}) {
List<Color> colors = [
RothkoColor.kPrimaryBase,
RothkoColor.kSuccessBase,
RothkoColor.kWarningBase,
RothkoColor.kAccentBase
];
List<Color> darkenColors = [
RothkoColor.kPrimaryDarken1,
RothkoColor.kSuccessDarken1,
RothkoColor.kWarningDarken1,
RothkoColor.kAccentDarken1
];
if (filled && (!colors.contains(color))) {
if (disabled) {
return RothkoColor.kLightNeutralBase;
}
return color;
} else if (disabled && filled) {
return RothkoColor.kLightNeutralBase;
} else if (disabled && !filled) {
if (color == RothkoColor.kErrorBase) {
return RothkoColor.kLightNeutralLighten2;
}
return RothkoColor.kLightNeutralLighten1;
} else if (!disabled && filled && hasBeenPressed) {
int index = colors.indexWhere((element) => element == color);
if (index == -1) {
index = 0;
}
return darkenColors[index];
} else if (filled) {
return color;
}
return Colors.transparent;
}