create method
Creates a component for the given node, or returns null.
Implementation
@override
Component? create(Node node, NodesBuilder builder) {
if (node is ElementNode && node.tag == 'Tabs') {
var tabs = node.children?.whereType<ElementNode>().where((n) => n.tag == 'TabItem') ?? [];
if (tabs.isEmpty) {
print("[WARNING] Tabs component requires at least one TabItem child.");
}
return _Tabs(
defaultValue: node.attributes['defaultValue'],
items: [
for (var tab in tabs)
TabItem(
label: tab.attributes['label'] ?? '',
value: tab.attributes['value'] ?? '',
child: builder.build(tab.children),
),
],
);
}
return null;
}