decodeBottomSheetThemeData static method

BottomSheetThemeData? decodeBottomSheetThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

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

{
  "backgroundColor": "<Color>",
  "clipBehavior": "<Clip>",
  "constraints": "<BoxConstraints>",
  "elevation": "<double>",
  "modalBackgroundColor": "<Color>",
  "modalBarrierColor": "<Color>",
  "modalElevation": "<double>",
  "shape": "<ShapeBorder>"
}

See also:

Implementation

static BottomSheetThemeData? decodeBottomSheetThemeData(
  dynamic value, {
  bool validate = true,
}) {
  BottomSheetThemeData? result;

  if (value is BottomSheetThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/bottom_sheet_theme_data',
      value: value,
      validate: validate,
    ));
    result = BottomSheetThemeData(
      backgroundColor: decodeColor(
        value['backgroundColor'],
        validate: false,
      ),
      clipBehavior: decodeClip(
        value['clipBehavior'],
        validate: false,
      ),
      constraints: decodeBoxConstraints(
        value['constraints'],
        validate: false,
      ),
      elevation: JsonClass.parseDouble(value['elevation']),
      modalBackgroundColor: decodeColor(
        value['modalBackgroundColor'],
        validate: false,
      ),
      modalBarrierColor: decodeColor(
        value['modalBarrierColor'],
        validate: false,
      ),
      modalElevation: JsonClass.parseDouble(value['modalElevation']),
      shape: decodeShapeBorder(
        value['shape'],
        validate: false,
      ),
      surfaceTintColor: ThemeDecoder.decodeColor(
        value['surfaceTintColor'],
        validate: false,
      ),
    );
  }

  return result;
}