decodeBoxDecoration static method

BoxDecoration? decodeBoxDecoration(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value into a BoxDecoration. If the value is null then null will be returned. Otherwise, this expects a Map like value that in JSON would look like:

{
  "backgroundBlendMode": <BlendMode>,
  "border": <BoxBorder>,
  "borderRadius": <BorderRadius>,
  "boxShadow": <BoxShadow[]>
  "color": <Color>,
  "image": <DecorationImage>,
  "gradient": <Gradient>,
  "shape": <BoxShape>
}

See also:

Implementation

static BoxDecoration? decodeBoxDecoration(
  dynamic value, {
  bool validate = true,
}) {
  BoxDecoration? result;

  if (value is BoxDecoration) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/box_decoration',
      value: value,
      validate: validate,
    ));
    result = BoxDecoration(
      backgroundBlendMode: decodeBlendMode(
        value['backgroundBlendMode'],
        validate: false,
      ),
      border: decodeBoxBorder(
        value['border'],
        validate: false,
      ),
      borderRadius: decodeBorderRadius(
        value['borderRadius'],
        validate: false,
      ),
      boxShadow: _decodeDynamicList(
        value['boxShadow'],
        (value) => decodeBoxShadow(value)!,
      ),
      color: decodeColor(
        value['color'],
        validate: false,
      ),
      gradient: decodeGradient(
        value['gradient'],
        validate: false,
      ),
      image: decodeDecorationImage(
        value['image'],
        validate: false,
      ),
      shape: decodeBoxShape(
            value['shape'],
            validate: false,
          ) ??
          BoxShape.rectangle,
    );
  }

  return result;
}