diff --git a/src/lib/data-access/store/sessionSlice.ts b/src/lib/data-access/store/sessionSlice.ts index d1418152aa0b967a3e85338022a1f2cada039253..281829473ab2a8bfe417d2a5397de2258d4587d8 100644 --- a/src/lib/data-access/store/sessionSlice.ts +++ b/src/lib/data-access/store/sessionSlice.ts @@ -132,7 +132,10 @@ export const sessionSlice = createSlice({ setQuerybuilderGraph: (state: SessionCacheI, action: PayloadAction<QueryMultiGraph>) => { const activeQuery = getActiveQuery(state); if (activeQuery) { - activeQuery.graph = action.payload; + activeQuery.graph = { + ...action.payload, + nodeCounts: activeQuery.graph.nodeCounts, // ensure visual query building does not get rid of statistics information from the backend + }; } }, setQuerybuilderSettings: (state: SessionCacheI, action: PayloadAction<QueryBuilderSettings>) => { diff --git a/src/lib/querybuilder/panel/QueryBuilderContextMenu.tsx b/src/lib/querybuilder/panel/QueryBuilderContextMenu.tsx index 0f4a3be7dc7074a4ac293cddd1fd96645bab3990..4439d0a13197caf6156cdd3f122f11940137dcb0 100644 --- a/src/lib/querybuilder/panel/QueryBuilderContextMenu.tsx +++ b/src/lib/querybuilder/panel/QueryBuilderContextMenu.tsx @@ -184,6 +184,17 @@ export const QueryBuilderContextMenu = (props: { ]} /> )} + <DropdownItem + value="Entity statistics" + submenu={[ + <DropdownItem value="" disabled className="text-muted pointer-events-none"> + <div className="flex items-between text-neutral-400"> + <div className="inline-block w-[70px]">Total:</div> + <span>{activeQuery?.graph?.nodeCounts ? activeQuery.graph.nodeCounts[props.node.id + '_count'] : 'unknown'}</span> + </div> + </DropdownItem>, + ]} + /> </> )} <DropdownItem value="Remove" className="text-danger" onClick={e => removeNode()} />