removeBlock method

void removeBlock(
  1. BuildContext context, {
  2. required ProgrammingBlockModel? blockModel,
  3. bool waitRedraw = false,
})

Implementation

void removeBlock(
  BuildContext context, {
  required ProgrammingBlockModel? blockModel,
  bool waitRedraw = false,
}) {
  final scopeBlock = ScopeBlockController.of(context);
  final blockInput = BlockInputTargetController.of(context);

  if (blockInput != null) {
    if (waitRedraw) {
      WidgetsBinding.instance.addPostFrameCallback((_) {
        blockInput.removeBlock();
      });
    } else {
      blockInput.removeBlock();
    }
  }
  if (scopeBlock != null) {
    if (waitRedraw) {
      WidgetsBinding.instance.addPostFrameCallback((_) {
        scopeBlock.removeBlock(
          blockModel: blockModel!,
        );
      });
    } else {
      scopeBlock.removeBlock(
        blockModel: blockModel!,
      );
    }
  } else {
    SingleCanvas.of(context)!
        .removeBlock(blockModel: blockModel!, waitRedraw: waitRedraw);
  }
}