ProgrammingBlock constructor

ProgrammingBlock({
  1. Key? key,
  2. required Widget builder(),
  3. required ProgrammingBlockModel? blockModel,
  4. required Color color,
})

Implementation

ProgrammingBlock({
  Key? key,
  required Widget Function() builder,
  required this.blockModel,
  required this.color,
})  : panelArgumentsNotifier = ValueNotifier(
        blockModel?.panelArguments ?? {},
      ),
      super(
        child: Builder(builder: (context) {
          final programmingBlocks = ProgrammingBlocksDependency.of(context)!;
          return blockModel?.configurationUuid !=
                      ProgrammingBlocksDependency.noConfigUUid &&
                  blockModel?.configurationUuid != null
              ? ValueListenableBuilder<ConfigurationBlockModel?>(
                  valueListenable:
                      programmingBlocks.panelController.listenerByConfig(
                    uuid: blockModel!.configurationUuid,
                  )!,
                  builder: (_, configurationBlockModel, __) {
                    blockModel.name =
                        configurationBlockModel?.blockName ?? '';
                    if (configurationBlockModel == null) {
                      programmingBlocks.removeBlock(
                        context,
                        blockModel: blockModel,
                        waitRedraw: true,
                      );
                      return const SizedBox.shrink();
                    }
                    return builder();
                  })
              : builder();
        }),
        key: key,
      );