decodeSwitchThemeData static method

SwitchThemeData? decodeSwitchThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to an SwitchThemeData. This expects the given value to follow the structure below:

{
  "materialTapTargetSize": "<MaterialTapTargetSize>",
  "mouseCursor": "<WidgetStateProperty<MouseCursor>>",
  "overlayColor": "<WidgetStateProperty<Color>>",
  "splashRadius": "<double>",
  "thumbColor": "<WidgetStateProperty<Color>>",
  "trackColor": "<WidgetStateProperty<Color>>",
  "trackOutlineColor": "<WidgetStateProperty<Color>>"
  "trackOutlineWidth": "<WidgetStateProperty<double>>"
}

See also:

Implementation

static SwitchThemeData? decodeSwitchThemeData(
  dynamic value, {
  bool validate = true,
}) {
  SwitchThemeData? result;

  if (value is SwitchThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/switch_theme_data',
      value: value,
      validate: validate,
    ));

    result = SwitchThemeData(
      materialTapTargetSize: decodeMaterialTapTargetSize(
        value['materialTapTargetSize'],
        validate: false,
      ),
      mouseCursor: decodeWidgetStatePropertyMouseCursor(
        value['mouseCursor'],
        validate: false,
      ),
      overlayColor: decodeWidgetStatePropertyColor(
        value['overlayColor'],
        validate: false,
      ),
      splashRadius: JsonClass.maybeParseDouble(value['splashRadius']),
      thumbColor: decodeWidgetStatePropertyColor(
        value['thumbColor'],
        validate: false,
      ),
      thumbIcon: decodeWidgetStatePropertyIcon(
        value['thumbIcon'],
        validate: false,
      ),
      trackColor: decodeWidgetStatePropertyColor(
        value['trackColor'],
        validate: false,
      ),
      trackOutlineColor: decodeWidgetStatePropertyColor(
        value['trackOutlineColor'],
        validate: false,
      ),
      trackOutlineWidth: decodeWidgetStatePropertyDouble(
        value['trackOutlineWidth'],
        validate: false,
      ),
    );
  }

  return result;
}