executeBuilder method
Implementation
Widget? executeBuilder(BuildContext context, CNode node, {int index = 0}) {
final pageState = context.watch<PageCubit>().state;
final nodeOverrides = context.read<OverridesCubit>().state.overrides.values;
final override = nodeOverrides.firstWhereOrNull(
(e) {
if (e.component != null) {
Logger.printMessage(
'Node: ${node.name}, is same component: ${e.component == pageState.nodeComponentID}');
return e.component == pageState.nodeComponentID &&
(e.node == node.name ||
e.node == node.id ||
e.node == node.stabilID);
}
Logger.printMessage(
'Node: ${node.name}, Override: ${e.node == node.id}');
return e.node == node.name ||
e.node == node.id ||
e.node == node.stabilID;
},
);
Logger.printMessage('Node: ${node.name}, Override: $override');
if (override?.builder == null) {
return null;
}
return override?.builder?.call(
context,
node.toWidget(
context: context, state: DSWidgetState(node: node, loop: index)),
node.child?.toWidget(
context: context, state: DSWidgetState(node: node, loop: 0)),
node.children
?.map((e) => e.toWidget(
context: context, state: DSWidgetState(node: e, loop: 0)))
.toList(),
);
}