The BuildOp constructor and its callbacks have been updated in version 0.14. BuildMetadata and BuildTree are now merged, so callbacks receive a single argument. Many callback names have changed to be more descriptive.
Key Changes:
onTree is now onParsed (returns a new tree).onWidgets is now onRenderBlock (handles WidgetPlaceholder).onChild is now onVisitChild.defaultStyles now returns a StylesMap and styles are appended to the end of the list rather than the beginning.
Example Migration:
Before (v0.10):
final oldOp = BuildOp({
defaultStyles: (dom.Element element) {
final Map<String, String> styles = {'color': 'red'};
return styles;
},
onChild: (BuildMetadata childMeta) {},
onTree: (BuildMetadata meta, BuildTree tree) {},
onTreeFlattening: (BuildMetadata meta, BuildTree tree) {
// ...
},
onWidgets: (BuildMetadata meta, Iterable<WidgetPlaceholder> widgets) {
final Iterable<Widget> results = [Container()];
return results;
},
onWidgetsIsOptional: false,
priority: 10,
})
After (v0.14):
final newOp = BuildOp(
alwaysRenderBlock: true,
debugLabel: 'v0.14',
defaultStyles: (dom.Element element) {
final StylesMap styles = {'color': 'red'};
return styles;
},
onParsed: (BuildTree tree) => tree,
onRenderBlock: (BuildTree tree, WidgetPlaceholder placeholder) {
return Container();
},
onRenderInline: (BuildTree tree) {},
onRenderedBlock: (BuildTree tree, Widget block) {
// ...
},
onVisitChild: (BuildTree tree, BuildTree subTree) {
// ...
},
priority: 10,
)
final newOp = BuildOp(
alwaysRenderBlock: true,
debugLabel: 'v0.14',
defaultStyles: (dom.Element element) {
final StylesMap styles = {'color': 'red'};
return styles;
},
onParsed: (BuildTree tree) => tree,
onRenderBlock: (BuildTree tree, WidgetPlaceholder placeholder) {
return Container();
},
onRenderInline: (BuildTree tree) {},
onRenderedBlock: (BuildTree tree, Widget block) {},
onVisitChild: (BuildTree tree, BuildTree subTree) {},
priority: 10,
)