of static method

Returns the nearest ToggleSwitchTheme.

Implementation

static ToggleSwitchThemeData of(BuildContext context) {
  final ToggleSwitchTheme? toggleSwitchTheme =
      context.dependOnInheritedWidgetOfExactType<ToggleSwitchTheme>();
  ToggleSwitchThemeData? toggleSwitchThemeData = toggleSwitchTheme?.data;

  if (toggleSwitchThemeData == null || !toggleSwitchThemeData._isConcrete) {
    final ThemeData themeData = Theme.of(context);
    final TextTheme textTheme = themeData.textTheme;
    final ColorScheme colorScheme = themeData.colorScheme;

    toggleSwitchThemeData ??= themeData.toggleSwitchTheme;

    final toggleSwitchValue = _ToggleSwitchThemeData(
        textTheme: textTheme, colorScheme: colorScheme);

    final Color disabledColor = toggleSwitchThemeData.disabledColor ??
        toggleSwitchValue.disabledColor;
    final Color activeColor =
        toggleSwitchThemeData.activeColor ?? toggleSwitchValue.activeColor;
    final Color activeHoverColor = toggleSwitchThemeData.activeHoverColor ??
        toggleSwitchValue.activeHoverColor;
    final Color inactiveColor = toggleSwitchThemeData.inactiveColor ??
        toggleSwitchValue.inactiveColor;
    final Color inactiveHoverColor =
        toggleSwitchThemeData.inactiveHoverColor ??
            toggleSwitchValue.inactiveHoverColor;
    final Color foreground =
        toggleSwitchThemeData.foreground ?? toggleSwitchValue.foreground;

    return toggleSwitchThemeData.copyWith(
      disabledColor: disabledColor,
      activeColor: activeColor,
      activeHoverColor: activeHoverColor,
      inactiveColor: inactiveColor,
      inactiveHoverColor: inactiveHoverColor,
      foreground: foreground,
    );
  }

  assert(toggleSwitchThemeData._isConcrete);

  return toggleSwitchThemeData;
}