buildBlockByModel method

Widget buildBlockByModel(
  1. BuildContext context, {
  2. required ProgrammingBlockModel blockModel,
  3. required bool fromCreationSection,
})

Implementation

Widget buildBlockByModel(
  BuildContext context, {
  required ProgrammingBlockModel blockModel,
  required bool fromCreationSection,
}) {
  BlockType? blockType = typeByBlockModel(blockModel: blockModel);

  if (blockType == null) {
    return const Text(
      'ERROR',
      style: TextStyle(
        color: Colors.red,
      ),
    );
  } else {
    return BlockByShape.build(
      puzzlePieceData: blockType.puzzlePieceData,
      blockModel: blockModel,
      nameBuilder: (_blockModel) {
        return Builder(builder: (context) {
          return blockType.nameBuilder(ProgrammingBlockController(
              programmingBlock: ProgrammingBlock.of(context)!));
        });
      },
      panelBuilder: () {
        return Builder(builder: (context) {
          return blockType.panelBuilder(ProgrammingBlockController(
              programmingBlock: ProgrammingBlock.of(context)!));
        });
      },
      color: blockType.sectionData.color,
      shape: blockType.shape,
      fromCreationSection: fromCreationSection,
    );
  }
}