From 883db4e368cb95933f5ec60fb79bc2bcfa23435b Mon Sep 17 00:00:00 2001 From: Sjoerd <svink@graphpolaris.com> Date: Tue, 5 Nov 2024 08:41:49 +0000 Subject: [PATCH] fix(qb): duplicate node attribute in query builder error --- .../pills/customFlowPills/entitypill/QueryEntityPill.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx b/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx index 84be53b8d..5fd9ea36d 100644 --- a/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx +++ b/libs/shared/lib/querybuilder/pills/customFlowPills/entitypill/QueryEntityPill.tsx @@ -19,11 +19,7 @@ import { EntityPill } from '@graphpolaris/shared/lib/components/pills'; import { Handle, Position, useUpdateNodeInternals } from 'reactflow'; import { NodeAttribute, SchemaReactflowEntityNode, toHandleId } from '../../../model'; import { PillAttributes } from '../../pillattributes/PillAttributes'; -import { DropdownTrigger, DropdownContainer, DropdownItemContainer, DropdownItem } from '@graphpolaris/shared/lib/components/dropdowns'; -import { PopoverContext } from '@graphpolaris/shared/lib/components/layout/Popover'; -import { useDispatch } from 'react-redux'; -import { isEqual } from 'lodash-es'; -import { getDataTypeIcon } from '@graphpolaris/shared/lib/components/DataTypeIcon'; +import { uniqBy } from 'lodash-es'; /** * Component to render an entity flow element @@ -43,6 +39,7 @@ export const QueryEntityPill = React.memo((node: SchemaReactflowEntityNode) => { [graph], ); + const uniqueAttributes = useMemo(() => uniqBy(data.attributes, (attr) => attr.handleData.attributeName), [data.attributes]); const unionType = useQuerybuilderUnionTypes()[node.id]; return ( @@ -75,7 +72,7 @@ export const QueryEntityPill = React.memo((node: SchemaReactflowEntityNode) => { {data?.attributes && ( <PillAttributes node={node} - attributes={data.attributes} + attributes={uniqueAttributes} attributeEdges={attributeEdges.map((edge) => edge?.attributes)} unionType={unionType} /> -- GitLab