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>",
  "dragHandleColor": "<Color>",
  "dragHandleSize": "<Size>",
  "elevation": "<double>",
  "modalBackgroundColor": "<Color>",
  "modalBarrierColor": "<Color>",
  "modalElevation": "<double>",
  "shadowColor": "<Color>",
  "shape": "<ShapeBorder>",
  "showDragHandle": "<bool>",
  "surfaceTintColor": "<Color>"
}

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,
      ),
      dragHandleColor: decodeColor(value['dragHandleColor'], validate: false),
      dragHandleSize: decodeSize(value['dragHandleSize'], validate: false),
      elevation: JsonClass.maybeParseDouble(value['elevation']),
      modalBackgroundColor: decodeColor(
        value['modalBackgroundColor'],
        validate: false,
      ),
      modalBarrierColor: decodeColor(
        value['modalBarrierColor'],
        validate: false,
      ),
      modalElevation: JsonClass.maybeParseDouble(value['modalElevation']),
      shadowColor: decodeColor(value['shadowColor'], validate: false),
      shape: decodeShapeBorder(
        value['shape'],
        validate: false,
      ),
      showDragHandle: JsonClass.maybeParseBool(value['showDragHandle']),
      surfaceTintColor: ThemeDecoder.decodeColor(
        value['surfaceTintColor'],
        validate: false,
      ),
    );
  }

  return result;
}