From 7225078743b65ae7f0465291d6ceb0e9d712853e Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Thu, 21 Aug 2025 15:26:26 +0200 Subject: [PATCH] Filters: Fix readonly on record picker + select label (#14026) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As a filter V1, we do not distinguish between selecting Id and full record. We always should display the record Before - Id and readonly not working Capture d’écran 2025-08-21 à 15 10
56 After - Object name and readonly working Capture d’écran 2025-08-21 à 15 10
15 --- .../WorkflowStepFilterFieldSelect.tsx | 35 +++++++++++-------- .../WorkflowStepFilterValueInput.tsx | 1 + 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterFieldSelect.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterFieldSelect.tsx index 8f1b2e7078..d02ac2544a 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterFieldSelect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterFieldSelect.tsx @@ -56,8 +56,10 @@ export const WorkflowStepFilterFieldSelect = ({ const { getIcon } = useIcons(); - const { fieldMetadataItem: filterFieldMetadataItem } = - useFieldMetadataItemById(stepFilter.fieldMetadataId ?? ''); + const { + fieldMetadataItem: filterFieldMetadataItem, + objectMetadataItem: filterObjectMetadataItem, + } = useFieldMetadataItemById(stepFilter.fieldMetadataId ?? ''); const { getFieldMetadataItemByIdOrThrow } = useGetFieldMetadataItemByIdOrThrow(); @@ -141,17 +143,26 @@ export const WorkflowStepFilterFieldSelect = ({ return null; } + const isFullRecord = + filterFieldMetadataItem?.name === 'id' && + isDefined(filterObjectMetadataItem?.labelSingular); + const { variableLabel } = searchVariableThroughOutputSchema({ stepOutputSchema: stepsOutputSchema?.[0], rawVariableName: stepFilter.stepOutputKey, - isFullRecord: false, + isFullRecord, }); const isSelectedFieldNotFound = !isDefined(variableLabel); - const label = - isSelectedFieldNotFound || !isDefined(stepFilter.displayValue) - ? t`Select a field from a previous step` - : variableLabel; + const label = isSelectedFieldNotFound + ? t`Select a field from a previous step` + : variableLabel; + + const icon = isFullRecord + ? getIcon(filterObjectMetadataItem?.icon) + : filterFieldMetadataItem?.icon + ? getIcon(filterFieldMetadataItem.icon) + : undefined; const dropdownId = `step-filter-field-${stepFilter.id}`; @@ -182,9 +193,7 @@ export const WorkflowStepFilterFieldSelect = ({ selectedOption={{ value: stepFilter.stepOutputKey, label, - Icon: filterFieldMetadataItem?.icon - ? getIcon(filterFieldMetadataItem.icon) - : undefined, + Icon: icon, }} isDisabled={true} /> @@ -202,11 +211,9 @@ export const WorkflowStepFilterFieldSelect = ({ clickableComponent={ diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterValueInput.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterValueInput.tsx index 01666b84e9..f28a0bf4c2 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterValueInput.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/filter-action/components/WorkflowStepFilterValueInput.tsx @@ -116,6 +116,7 @@ export const WorkflowStepFilterValueInput = ({ onChange={handleValueChange} VariablePicker={WorkflowVariablePicker} objectNameSingular={objectMetadataItem.nameSingular} + disabled={readonly} /> ); }