onSelectNodeChildren method

void onSelectNodeChildren(
  1. TreeNode node
)

Implementation

void onSelectNodeChildren(TreeNode node) {
  if (node.children.isEmpty) {
    node.isCheck = !(node.isCheck ?? false);
  }

  if (node.children.isNotEmpty && node.parent != null) {
    final allSelected = node.children.every((e) {
      return e.isCheck == true;
    });
    if (allSelected) {
      node.isCheck = true;
    } else {
      if (node.children.every((e) => e.isCheck == false)) {
        node.isCheck = false;
      } else {
        node.isCheck = null;
      }
    }
  }

  if (node.parent != null) {
    onSelectNodeChildren(node.parent!);
  } else {
    final allSelected = node.children.every((e) {
      return e.isCheck == true;
    });
    if (allSelected) {
      node.isCheck = true;
    } else {
      if (node.children.every((e) => e.isCheck == false)) {
        node.isCheck = false;
      } else {
        node.isCheck = null;
      }
    }
  }
  emit(state.copyWith(rootNodes: state.rootNodes));
}