19894: Show dirty indicator on process type filter
authorStephen Smith <stephen@curii.com>
Thu, 26 May 2022 01:26:35 +0000 (21:26 -0400)
committerStephen Smith <stephen@curii.com>
Thu, 26 May 2022 01:26:35 +0000 (21:26 -0400)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/components/data-table-filters/data-table-filters-tree.tsx
src/components/tree/tree.tsx
src/models/tree.ts
src/store/resource-type-filters/resource-type-filters.ts

index 659a385dc17f5742c0d3b8169f456848467faefc..fab9086e5693113d6ba377c89acf84c2fd580cd2 100644 (file)
@@ -76,7 +76,12 @@ export class DataTableFiltersTree extends React.Component<DataTableFilterProps>
 }
 
 const renderItem = (item: TreeItem<DataTableFilterItem>) =>
-    <span>{item.data.name}</span>;
+    <span>
+        {item.data.name}
+        {item.initialState !== item.selected ? <>
+            *
+        </> : null}
+    </span>;
 
 const filterToTreeItem = (filters: DataTableFilters) =>
     (id: string): TreeItem<any> => {
@@ -92,6 +97,7 @@ const filterToTreeItem = (filters: DataTableFilters) =>
             items: items.length > 0 ? items : undefined,
             open: node.expanded,
             selected: node.selected,
+            initialState: node.initialState,
             indeterminate: isIndeterminate,
             status: TreeItemStatus.LOADED,
         };
index 6e562dfa52bd0e72bd2cdc2e4039bfaf25bcd6f4..fc9dbc743ae19a15d59172bd2c30734eb223cd11 100644 (file)
@@ -97,6 +97,7 @@ export interface TreeItem<T> {
     open: boolean;
     active: boolean;
     selected?: boolean;
+    initialState?: boolean;
     indeterminate?: boolean;
     flatTree?: boolean;
     status: TreeItemStatus;
index e92913887a0dfc7b28e21ae20b047dc68d61f148..4a52d61a8f978104c28101cba7f5e96412846ff1 100644 (file)
@@ -14,6 +14,7 @@ export interface TreeNode<T = any> {
     parent: string;
     active: boolean;
     selected: boolean;
+    initialState?: boolean;
     expanded: boolean;
     status: TreeNodeStatus;
 }
index 64a391ca9e5419ac7c3e9c79e4e4a04606304c93..6f766b58a331ab49ba9619c366b946db39238085 100644 (file)
@@ -56,6 +56,7 @@ const initFilter = (name: string, parent = '', isSelected?: boolean) =>
         active: false,
         selected: isSelected !== undefined ? isSelected : true,
         expanded: false,
+        initialState: isSelected !== undefined ? isSelected : true,
         status: TreeNodeStatus.LOADED,
     });