buildStandardStateSection method
Build a complete state section for a standard 4-state component using the state's built-in properties
Implementation
Widget buildStandardStateSection(String stateName) {
switch (stateName.toLowerCase()) {
case 'rest':
return buildStateSection(
stateName: 'Rest',
overrideEnabled: state.restOverrideEnabled,
onOverrideChanged: (v) => state.restOverrideEnabled = v,
baseColor: isDarkMode ? state.restBaseColorDark : state.restBaseColorLight,
textColor: isDarkMode ? state.restTextColorDark : state.restTextColorLight,
iconColor: isDarkMode ? state.restIconColorDark : state.restIconColorLight,
onBaseColorChanged: (c) => isDarkMode
? state.restBaseColorDark = c
: state.restBaseColorLight = c,
onTextColorChanged: (c) => isDarkMode
? state.restTextColorDark = c
: state.restTextColorLight = c,
onIconColorChanged: (c) => isDarkMode
? state.restIconColorDark = c
: state.restIconColorLight = c,
distanceOverride: state.restDistanceOverride,
blurOverride: state.restBlurOverride,
lightIntensityOverride: state.restLightIntensityOverride,
darkIntensityOverride: state.restDarkIntensityOverride,
onDistanceOverrideChanged: (v) => state.restDistanceOverride = v,
onBlurOverrideChanged: (v) => state.restBlurOverride = v,
onLightIntensityOverrideChanged: (v) => state.restLightIntensityOverride = v,
onDarkIntensityOverrideChanged: (v) => state.restDarkIntensityOverride = v,
);
case 'hover':
return buildStateSection(
stateName: 'Hover',
overrideEnabled: state.hoverOverrideEnabled,
onOverrideChanged: (v) => state.hoverOverrideEnabled = v,
baseColor: isDarkMode ? state.hoverBaseColorDark : state.hoverBaseColorLight,
textColor: isDarkMode ? state.hoverTextColorDark : state.hoverTextColorLight,
iconColor: isDarkMode ? state.hoverIconColorDark : state.hoverIconColorLight,
onBaseColorChanged: (c) => isDarkMode
? state.hoverBaseColorDark = c
: state.hoverBaseColorLight = c,
onTextColorChanged: (c) => isDarkMode
? state.hoverTextColorDark = c
: state.hoverTextColorLight = c,
onIconColorChanged: (c) => isDarkMode
? state.hoverIconColorDark = c
: state.hoverIconColorLight = c,
distanceOverride: state.hoverDistanceOverride,
blurOverride: state.hoverBlurOverride,
lightIntensityOverride: state.hoverLightIntensityOverride,
darkIntensityOverride: state.hoverDarkIntensityOverride,
onDistanceOverrideChanged: (v) => state.hoverDistanceOverride = v,
onBlurOverrideChanged: (v) => state.hoverBlurOverride = v,
onLightIntensityOverrideChanged: (v) => state.hoverLightIntensityOverride = v,
onDarkIntensityOverrideChanged: (v) => state.hoverDarkIntensityOverride = v,
);
case 'pressed':
return buildStateSection(
stateName: 'Pressed',
overrideEnabled: state.pressedOverrideEnabled,
onOverrideChanged: (v) => state.pressedOverrideEnabled = v,
baseColor: isDarkMode ? state.pressedBaseColorDark : state.pressedBaseColorLight,
textColor: isDarkMode ? state.pressedTextColorDark : state.pressedTextColorLight,
iconColor: isDarkMode ? state.pressedIconColorDark : state.pressedIconColorLight,
onBaseColorChanged: (c) => isDarkMode
? state.pressedBaseColorDark = c
: state.pressedBaseColorLight = c,
onTextColorChanged: (c) => isDarkMode
? state.pressedTextColorDark = c
: state.pressedTextColorLight = c,
onIconColorChanged: (c) => isDarkMode
? state.pressedIconColorDark = c
: state.pressedIconColorLight = c,
distanceOverride: state.pressedDistanceOverride,
blurOverride: state.pressedBlurOverride,
lightIntensityOverride: state.pressedLightIntensityOverride,
darkIntensityOverride: state.pressedDarkIntensityOverride,
onDistanceOverrideChanged: (v) => state.pressedDistanceOverride = v,
onBlurOverrideChanged: (v) => state.pressedBlurOverride = v,
onLightIntensityOverrideChanged: (v) => state.pressedLightIntensityOverride = v,
onDarkIntensityOverrideChanged: (v) => state.pressedDarkIntensityOverride = v,
);
case 'disabled':
return buildStateSection(
stateName: 'Disabled',
overrideEnabled: state.disabledOverrideEnabled,
onOverrideChanged: (v) => state.disabledOverrideEnabled = v,
baseColor: isDarkMode ? state.disabledBaseColorDark : state.disabledBaseColorLight,
textColor: isDarkMode ? state.disabledTextColorDark : state.disabledTextColorLight,
iconColor: isDarkMode ? state.disabledIconColorDark : state.disabledIconColorLight,
onBaseColorChanged: (c) => isDarkMode
? state.disabledBaseColorDark = c
: state.disabledBaseColorLight = c,
onTextColorChanged: (c) => isDarkMode
? state.disabledTextColorDark = c
: state.disabledTextColorLight = c,
onIconColorChanged: (c) => isDarkMode
? state.disabledIconColorDark = c
: state.disabledIconColorLight = c,
distanceOverride: state.disabledDistanceOverride,
blurOverride: state.disabledBlurOverride,
lightIntensityOverride: state.disabledLightIntensityOverride,
darkIntensityOverride: state.disabledDarkIntensityOverride,
onDistanceOverrideChanged: (v) => state.disabledDistanceOverride = v,
onBlurOverrideChanged: (v) => state.disabledBlurOverride = v,
onLightIntensityOverrideChanged: (v) => state.disabledLightIntensityOverride = v,
onDarkIntensityOverrideChanged: (v) => state.disabledDarkIntensityOverride = v,
);
default:
throw ArgumentError('Unknown state: $stateName');
}
}