decodePageTransitionsTheme static method

PageTransitionsTheme? decodePageTransitionsTheme(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to a PopupMenuThemeData. This expects the given value to be of the following structure:

{
  "builders": <Map<TargetPlatform, PageTransitionBuilder>>
}

See also:

Implementation

static PageTransitionsTheme? decodePageTransitionsTheme(
  dynamic value, {
  bool validate = true,
}) {
  PageTransitionsTheme? result;

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

    var builders = <TargetPlatform, PageTransitionsBuilder>{};
    value['builders']?.forEach(
      (key, value) =>
          builders[decodeTargetPlatform(key)!] = decodePageTransitionsBuilder(
        value,
        validate: false,
      )!,
    );

    result = PageTransitionsTheme(
      builders: builders,
    );
  }

  return result;
}