build method

  1. @override
Widget build(
  1. BuildContext buildContext,
  2. Node node, {
  3. Widget? header,
  4. Widget? footer,
})
override

Build a widget for the specified node.

the widget is embedded in a BlockComponentContainer widget.

the header and the footer only works for the root node.

Implementation

@override
Widget build(
  BuildContext buildContext,
  Node node, {
  Widget? header,
  Widget? footer,
}) {
  final blockComponentContext = BlockComponentContext(
    buildContext,
    node,
    header: header,
    footer: footer,
  );
  final errorBuilder = _builders[errorBlockComponentBuilderKey];
  final builder = blockComponentBuilder(node.type);
  if (builder == null || !builder.validate(node)) {
    if (errorBuilder != null) {
      return BlockComponentContainer(
        node: node,
        configuration: errorBuilder.configuration,
        builder: (_) => errorBuilder.build(blockComponentContext),
      );
    } else {
      return _buildPlaceHolderWidget(blockComponentContext);
    }
  }

  return BlockComponentContainer(
    node: node,
    configuration: builder.configuration,
    builder: (_) => builder.build(blockComponentContext),
  );
}