BuildComponent class abstract base

A base component for assembling declarative UI Widget subtrees from multiple reactive dependencies (N:1).

BuildComponent bridges Coralline's reactive state computation with Flutter's declarative layout system by exposing a Flutter-friendly build method.

Design Philosophy: This class encapsulates the ComplexComputation computation contract to provide a familiar, Flutter-like developer experience (build()). However, it remains a true reactive node within Coralline's topological pipeline rather than a Flutter Widget. It computes the UI subtree lazily when marked dirty by its reactive dependencies.

AI & Developer Note:

  • Implement build instead of overriding compute. The compute method is marked @nonVirtual and forwards directly to build.
  • Do not store dynamic UI state in local mutable fields. Always derive UI declaratively from reactive Coral streams to maintain topological purity and prevent state synchronization bugs.
  • Ensure all reactive dependencies accessed within build are declared in manifest.
  • For single-dependency (1:1) UI components, consider using SimplexBuildComponent for zero-allocation performance.

Example:

base class CounterViewComp extends BuildComponent {
  CounterViewComp({required this.count});

  final Coral<int> count;

  @override
  @manifestSync
  Iterable<CoralNode> manifest() => [count];

  @override
  Widget build() {
    return Text('Count: ${count.data}');
  }
}
Inheritance
Available extensions

Constructors

BuildComponent()

Properties

coral → Coral<Widget>
Exposes the underlying topological node that powers this computation.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
isActivated → bool
Indicates whether the underlying topological node is currently active in the graph.
no setterinherited
isDeactivated → bool
Indicates whether the underlying topological node is currently deactivated.
no setterinherited
isPaused → bool
Indicates whether the underlying topological node is currently in a paused state.
no setterinherited
isRunning → bool
Indicates whether the underlying topological node is running and processing events.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

build() → Widget
Builds the declarative UI Widget subtree based on the reactive state.
compute() → Widget
Performs the actual computation and returns the new value for this node based on the upstream dependencies.
override
iterateInbound() → Iterable<CoralNode>
Iterates over all direct upstream inbound nodes connected to this computation.
inherited
manifest() → Iterable<CoralNode>
Declares all upstream reactive dependency CoralNodes that power this component.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited
toWidget({Key? key, Widget errorBuilder(BuildContext context, Object error, StackTrace? stackTrace)?}) → CoralWidget

Available on T, provided by the CoralComputationWidgetExtension extension

Converts this Computation into a strongly-typed CoralWidget.
toWidget({Key? key, Widget errorBuilder(BuildContext context, Object error, StackTrace? stackTrace)?}) → CoralWidget

Available on CoralProvider<Widget>, provided by the CoralWidgetProviderExtension extension

Converts this CoralProvider into a CoralWidget.

Operators

operator ==(Object other) → bool
The equality operator.
inherited