decode static method

UIBlock? decode(
  1. dynamic json
)

Implementation

static UIBlock? decode(dynamic json) {
  if (json == null) {
    return null;
  }
  if (json is! Map<String, dynamic>) {
    return null;
  }

  final typename = json['__typename'];
  if (typename == null || typename is! String) {
    return null;
  }

  switch (typename) {
    case 'UIRootBlock':
      final decoded = UIRootBlock.decode(json);
      return decoded != null ? UIBlock.asUIRootBlock(decoded) : null;
    case 'UIPageBlock':
      final decoded = UIPageBlock.decode(json);
      return decoded != null ? UIBlock.asUIPageBlock(decoded) : null;
    case 'UIFlexContainerBlock':
      final decoded = UIFlexContainerBlock.decode(json);
      return decoded != null ? UIBlock.asUIFlexContainerBlock(decoded) : null;
    case 'UITextBlock':
      final decoded = UITextBlock.decode(json);
      return decoded != null ? UIBlock.asUITextBlock(decoded) : null;
    case 'UIImageBlock':
      final decoded = UIImageBlock.decode(json);
      return decoded != null ? UIBlock.asUIImageBlock(decoded) : null;
    case 'UICollectionBlock':
      final decoded = UICollectionBlock.decode(json);
      return decoded != null ? UIBlock.asUICollectionBlock(decoded) : null;
    case 'UICarouselBlock':
      final decoded = UICarouselBlock.decode(json);
      return decoded != null ? UIBlock.asUICarouselBlock(decoded) : null;
    case 'UITextInputBlock':
      final decoded = UITextInputBlock.decode(json);
      return decoded != null ? UIBlock.asUITextInputBlock(decoded) : null;
    case 'UISelectInputBlock':
      final decoded = UISelectInputBlock.decode(json);
      return decoded != null ? UIBlock.asUISelectInputBlock(decoded) : null;
    case 'UIMultiSelectInputBlock':
      final decoded = UIMultiSelectInputBlock.decode(json);
      return decoded != null
          ? UIBlock.asUIMultiSelectInputBlock(decoded)
          : null;
    case 'UISwitchInputBlock':
      final decoded = UISwitchInputBlock.decode(json);
      return decoded != null ? UIBlock.asUISwitchInputBlock(decoded) : null;
    default:
      return null;
  }
}