executeBuilder method

Widget? executeBuilder(
  1. BuildContext context,
  2. CNode node, {
  3. int index = 0,
})

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(),
  );
}