18984: Add indeterminate ui for process type filters
[arvados-workbench2.git] / src / components / data-table-filters / data-table-filters-tree.tsx
index 6514078dea44891063a33a132421c9c5fb5ff460..659a385dc17f5742c0d3b8169f456848467faefc 100644 (file)
@@ -83,6 +83,7 @@ const filterToTreeItem = (filters: DataTableFilters) =>
         const node = getNode(id)(filters) || initTreeNode({ id: '', value: 'InvalidNode' });
         const items = getNodeChildrenIds(node.id)(filters)
             .map(filterToTreeItem(filters));
+        const isIndeterminate = !node.selected && items.some(i => i.selected || i.indeterminate);
 
         return {
             active: node.active,
@@ -91,6 +92,7 @@ const filterToTreeItem = (filters: DataTableFilters) =>
             items: items.length > 0 ? items : undefined,
             open: node.expanded,
             selected: node.selected,
+            indeterminate: isIndeterminate,
             status: TreeItemStatus.LOADED,
         };
     };