diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterFieldSelectDropdownButtonClickableSelect.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterFieldSelectDropdownButtonClickableSelect.tsx
index 4b3270489..fe5aff566 100644
--- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterFieldSelectDropdownButtonClickableSelect.tsx
+++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterFieldSelectDropdownButtonClickableSelect.tsx
@@ -1,13 +1,5 @@
-import { useGetFieldMetadataItemById } from '@/object-metadata/hooks/useGetFieldMetadataItemById';
-import { getCompositeSubFieldLabel } from '@/object-record/object-filter-dropdown/utils/getCompositeSubFieldLabel';
-import { isCompositeFieldType } from '@/object-record/object-filter-dropdown/utils/isCompositeFieldType';
-import { currentRecordFiltersComponentState } from '@/object-record/record-filter/states/currentRecordFiltersComponentState';
-import { isValidSubFieldName } from '@/settings/data-model/utils/isValidSubFieldName';
+import { useRecordFilterField } from '@/object-record/advanced-filter/hooks/useRecordFilterField';
import { SelectControl } from '@/ui/input/components/SelectControl';
-import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
-import { isNonEmptyString } from '@sniptt/guards';
-import { isDefined } from 'twenty-shared/utils';
-import { useIcons } from 'twenty-ui/display';
type AdvancedFilterFieldSelectDropdownButtonClickableSelectProps = {
recordFilterId: string;
@@ -16,47 +8,14 @@ type AdvancedFilterFieldSelectDropdownButtonClickableSelectProps = {
export const AdvancedFilterFieldSelectDropdownButtonClickableSelect = ({
recordFilterId,
}: AdvancedFilterFieldSelectDropdownButtonClickableSelectProps) => {
- const currentRecordFilters = useRecoilComponentValueV2(
- currentRecordFiltersComponentState,
- );
-
- const recordFilter = currentRecordFilters.find(
- (recordFilter) => recordFilter.id === recordFilterId,
- );
-
- const { getFieldMetadataItemById } = useGetFieldMetadataItemById();
-
- const fieldMetadataItem = isNonEmptyString(recordFilter?.fieldMetadataId)
- ? getFieldMetadataItemById(recordFilter?.fieldMetadataId)
- : undefined;
-
- const { getIcon } = useIcons();
-
- const fieldIcon = isDefined(fieldMetadataItem?.icon)
- ? getIcon(fieldMetadataItem?.icon)
- : undefined;
-
- const subFieldLabel =
- isDefined(fieldMetadataItem) &&
- isCompositeFieldType(fieldMetadataItem.type) &&
- isNonEmptyString(recordFilter?.subFieldName) &&
- isValidSubFieldName(recordFilter.subFieldName)
- ? getCompositeSubFieldLabel(
- fieldMetadataItem.type,
- recordFilter.subFieldName,
- )
- : '';
-
- const fieldNameLabel = isNonEmptyString(subFieldLabel)
- ? `${recordFilter?.label} / ${subFieldLabel}`
- : (recordFilter?.label ?? '');
+ const { label, icon } = useRecordFilterField(recordFilterId);
return (
);
diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useRecordFilterField.ts b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useRecordFilterField.ts
new file mode 100644
index 000000000..b18990b83
--- /dev/null
+++ b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useRecordFilterField.ts
@@ -0,0 +1,51 @@
+import { useGetFieldMetadataItemById } from '@/object-metadata/hooks/useGetFieldMetadataItemById';
+import { getCompositeSubFieldLabel } from '@/object-record/object-filter-dropdown/utils/getCompositeSubFieldLabel';
+import { isCompositeFieldType } from '@/object-record/object-filter-dropdown/utils/isCompositeFieldType';
+import { currentRecordFiltersComponentState } from '@/object-record/record-filter/states/currentRecordFiltersComponentState';
+import { isValidSubFieldName } from '@/settings/data-model/utils/isValidSubFieldName';
+import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
+import { isNonEmptyString } from '@sniptt/guards';
+import { isDefined } from 'twenty-shared/utils';
+import { useIcons } from 'twenty-ui/display';
+
+export const useRecordFilterField = (recordFilterId: string) => {
+ const currentRecordFilters = useRecoilComponentValueV2(
+ currentRecordFiltersComponentState,
+ );
+
+ const recordFilter = currentRecordFilters.find(
+ (recordFilter) => recordFilter.id === recordFilterId,
+ );
+
+ const { getFieldMetadataItemById } = useGetFieldMetadataItemById();
+
+ const fieldMetadataItem = isNonEmptyString(recordFilter?.fieldMetadataId)
+ ? getFieldMetadataItemById(recordFilter?.fieldMetadataId)
+ : undefined;
+
+ const { getIcon } = useIcons();
+
+ const icon = isDefined(fieldMetadataItem?.icon)
+ ? getIcon(fieldMetadataItem?.icon)
+ : undefined;
+
+ const subFieldLabel =
+ isDefined(fieldMetadataItem) &&
+ isCompositeFieldType(fieldMetadataItem.type) &&
+ isNonEmptyString(recordFilter?.subFieldName) &&
+ isValidSubFieldName(recordFilter.subFieldName)
+ ? getCompositeSubFieldLabel(
+ fieldMetadataItem.type,
+ recordFilter.subFieldName,
+ )
+ : '';
+
+ const label = isNonEmptyString(subFieldLabel)
+ ? `${recordFilter?.label} / ${subFieldLabel}`
+ : (recordFilter?.label ?? '');
+
+ return {
+ label,
+ icon,
+ };
+};
diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/states/context/AdvancedFilterContext.ts b/packages/twenty-front/src/modules/object-record/advanced-filter/states/context/AdvancedFilterContext.ts
index c72176191..d175fb514 100644
--- a/packages/twenty-front/src/modules/object-record/advanced-filter/states/context/AdvancedFilterContext.ts
+++ b/packages/twenty-front/src/modules/object-record/advanced-filter/states/context/AdvancedFilterContext.ts
@@ -3,6 +3,7 @@ import { createContext } from 'react';
type AdvancedFilterContextType = {
onUpdate?: () => void;
isWorkflowFindRecords?: boolean;
+ readonly?: boolean;
};
export const AdvancedFilterContext = createContext(
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/RecordActions.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/RecordActions.ts
index 2d27e9761..37c374a39 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/RecordActions.ts
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/RecordActions.ts
@@ -23,10 +23,9 @@ export const RECORD_ACTIONS: Array<{
type: 'DELETE_RECORD',
icon: 'IconTrash',
},
- // TODO: Add search records action
- // {
- // label: 'Search Records',
- // type: 'FIND_RECORDS',
- // icon: 'IconSearch',
- // },
+ {
+ label: 'Search Records',
+ type: 'FIND_RECORDS',
+ icon: 'IconSearch',
+ },
];
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFieldSelectDisabled.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFieldSelectDisabled.tsx
new file mode 100644
index 000000000..a0c1ff0c9
--- /dev/null
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFieldSelectDisabled.tsx
@@ -0,0 +1,23 @@
+import { useRecordFilterField } from '@/object-record/advanced-filter/hooks/useRecordFilterField';
+import { SelectControl } from '@/ui/input/components/SelectControl';
+
+type WorkflowAdvancedFilterFieldSelectDisabledProps = {
+ recordFilterId: string;
+};
+
+export const WorkflowAdvancedFilterFieldSelectDisabled = ({
+ recordFilterId,
+}: WorkflowAdvancedFilterFieldSelectDisabledProps) => {
+ const { label, icon } = useRecordFilterField(recordFilterId);
+
+ return (
+
+ );
+};
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFormInput.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFormInput.tsx
index 401cbb916..6bb66285d 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFormInput.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFormInput.tsx
@@ -1,4 +1,5 @@
import { formatFieldMetadataItemAsFieldDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition';
+import { AdvancedFilterContext } from '@/object-record/advanced-filter/states/context/AdvancedFilterContext';
import { shouldShowFilterTextInput } from '@/object-record/advanced-filter/utils/shouldShowFilterTextInput';
import { useApplyObjectFilterDropdownFilterValue } from '@/object-record/object-filter-dropdown/hooks/useApplyObjectFilterDropdownFilterValue';
import { fieldMetadataItemUsedInDropdownComponentSelector } from '@/object-record/object-filter-dropdown/states/fieldMetadataItemUsedInDropdownComponentSelector';
@@ -18,6 +19,7 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/
import { WorkflowAdvancedFilterValueFormCompositeFieldInput } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterValueFormCompositeFieldInput';
import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components/WorkflowVariablePicker';
import { isObject } from '@sniptt/guards';
+import { useContext } from 'react';
import { FieldMetadataType } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { JsonValue } from 'type-fest';
@@ -27,6 +29,8 @@ export const WorkflowAdvancedFilterValueFormInput = ({
}: {
recordFilterId: string;
}) => {
+ const { readonly } = useContext(AdvancedFilterContext);
+
const currentRecordFilters = useRecoilComponentValueV2(
currentRecordFiltersComponentState,
);
@@ -99,6 +103,7 @@ export const WorkflowAdvancedFilterValueFormInput = ({
label={''}
defaultValue={recordFilter.value}
onChange={handleChange}
+ readonly={readonly}
VariablePicker={WorkflowVariablePicker}
/>
);
@@ -123,6 +128,7 @@ export const WorkflowAdvancedFilterValueFormInput = ({
label={''}
defaultValue={recordFilter.value}
onChange={handleChange}
+ readonly={readonly}
VariablePicker={WorkflowVariablePicker}
options={metadata?.options ?? []}
/>
@@ -140,6 +146,7 @@ export const WorkflowAdvancedFilterValueFormInput = ({
field={field}
defaultValue={recordFilter.value}
onChange={handleChange}
+ readonly={readonly}
// VariablePicker is not supported for date filters yet
VariablePicker={
isFilterableByDateValue ? undefined : WorkflowVariablePicker
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell.tsx
index 459f573bb..ea7004d7f 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell.tsx
@@ -1,7 +1,13 @@
import { AdvancedFilterLogicalOperatorDropdown } from '@/object-record/advanced-filter/components/AdvancedFilterLogicalOperatorDropdown';
+import { ADVANCED_FILTER_LOGICAL_OPERATOR_OPTIONS } from '@/object-record/advanced-filter/constants/AdvancedFilterLogicalOperatorOptions';
+import { DEFAULT_ADVANCED_FILTER_DROPDOWN_OFFSET } from '@/object-record/advanced-filter/constants/DefaultAdvancedFilterDropdownOffset';
+import { AdvancedFilterContext } from '@/object-record/advanced-filter/states/context/AdvancedFilterContext';
import { RecordFilterGroup } from '@/object-record/record-filter-group/types/RecordFilterGroup';
+import { Select } from '@/ui/input/components/Select';
+import { GenericDropdownContentWidth } from '@/ui/layout/dropdown/constants/GenericDropdownContentWidth';
import styled from '@emotion/styled';
+import { useContext } from 'react';
import { capitalize } from 'twenty-shared/utils';
const StyledText = styled.div`
@@ -26,14 +32,28 @@ export const WorkflowAdvancedFilterLogicalOperatorCell = ({
index,
recordFilterGroup,
}: WorkflowAdvancedFilterLogicalOperatorCellProps) => {
+ const { readonly } = useContext(AdvancedFilterContext);
+
return (
{index === 0 ? (
Where
) : index === 1 ? (
-
+ readonly ? (
+
+ ) : (
+
+ )
) : (
{capitalize(recordFilterGroup.logicalOperator.toLowerCase())}
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterColumn.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterColumn.tsx
index c0aeacf31..b0f5d4498 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterColumn.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterColumn.tsx
@@ -1,14 +1,17 @@
import { AdvancedFilterFieldSelectDropdownButton } from '@/object-record/advanced-filter/components/AdvancedFilterFieldSelectDropdownButton';
import { AdvancedFilterRecordFilterOptionsDropdown } from '@/object-record/advanced-filter/components/AdvancedFilterRecordFilterOptionsDropdown';
+import { AdvancedFilterContext } from '@/object-record/advanced-filter/states/context/AdvancedFilterContext';
import { getAdvancedFilterObjectFilterDropdownComponentInstanceId } from '@/object-record/advanced-filter/utils/getAdvancedFilterObjectFilterDropdownComponentInstanceId';
import { ObjectFilterDropdownComponentInstanceContext } from '@/object-record/object-filter-dropdown/states/contexts/ObjectFilterDropdownComponentInstanceContext';
import { RecordFilterGroup } from '@/object-record/record-filter-group/types/RecordFilterGroup';
import { RecordFilter } from '@/object-record/record-filter/types/RecordFilter';
import { WorkflowAdvancedFilterDropdownColumn } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterDropdownColumn';
+import { WorkflowAdvancedFilterFieldSelectDisabled } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFieldSelectDisabled';
import { WorkflowAdvancedFilterValueFormInput } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterFormInput';
import { WorkflowAdvancedFilterLogicalOperatorCell } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell';
import { WorkflowAdvancedFilterRecordFilterOperandSelect } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterOperandSelect';
import styled from '@emotion/styled';
+import { useContext } from 'react';
const StyledContainer = styled.div`
display: flex;
@@ -26,6 +29,8 @@ export const WorkflowAdvancedFilterRecordFilterColumn = ({
recordFilter: RecordFilter;
recordFilterIndex: number;
}) => {
+ const { readonly } = useContext(AdvancedFilterContext);
+
return (
-
+ )}
+
+ {readonly ? (
+
-
-
+ ) : (
+
+ )}
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupChildren.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupChildren.tsx
index f7758512e..0fba55a5b 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupChildren.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupChildren.tsx
@@ -1,8 +1,10 @@
import { AdvancedFilterAddFilterRuleSelect } from '@/object-record/advanced-filter/components/AdvancedFilterAddFilterRuleSelect';
import { useChildRecordFiltersAndRecordFilterGroups } from '@/object-record/advanced-filter/hooks/useChildRecordFiltersAndRecordFilterGroups';
+import { AdvancedFilterContext } from '@/object-record/advanced-filter/states/context/AdvancedFilterContext';
import { WorkflowAdvancedFilterRecordFilterColumn } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterColumn';
import styled from '@emotion/styled';
+import { useContext } from 'react';
import { isDefined } from 'twenty-shared/utils';
const StyledContainer = styled.div<{ isGrayBackground?: boolean }>`
@@ -25,6 +27,7 @@ type WorkflowAdvancedFilterRecordFilterGroupChildrenProps = {
export const WorkflowAdvancedFilterRecordFilterGroupChildren = ({
recordFilterGroupId,
}: WorkflowAdvancedFilterRecordFilterGroupChildrenProps) => {
+ const { readonly } = useContext(AdvancedFilterContext);
const { currentRecordFilterGroup, childRecordFilters } =
useChildRecordFiltersAndRecordFilterGroups({
recordFilterGroupId,
@@ -48,9 +51,11 @@ export const WorkflowAdvancedFilterRecordFilterGroupChildren = ({
recordFilterGroup={currentRecordFilterGroup}
/>
))}
-
+ {!readonly && (
+
+ )}
);
};
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupColumn.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupColumn.tsx
index 9cabfc6d9..f434dc177 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupColumn.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupColumn.tsx
@@ -1,9 +1,11 @@
import { AdvancedFilterRecordFilterGroupOptionsDropdown } from '@/object-record/advanced-filter/components/AdvancedFilterRecordFilterGroupOptionsDropdown';
+import { AdvancedFilterContext } from '@/object-record/advanced-filter/states/context/AdvancedFilterContext';
import { RecordFilterGroup } from '@/object-record/record-filter-group/types/RecordFilterGroup';
import { WorkflowAdvancedFilterDropdownColumn } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterDropdownColumn';
import { WorkflowAdvancedFilterLogicalOperatorCell } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterLogicalOperatorCell';
import { WorkflowAdvancedFilterRecordFilterGroupChildren } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowAdvancedFilterRecordFilterGroupChildren';
import styled from '@emotion/styled';
+import { useContext } from 'react';
const StyledContainer = styled.div`
display: flex;
@@ -21,6 +23,8 @@ export const WorkflowAdvancedFilterRecordFilterGroupColumn = ({
recordFilterGroup: RecordFilterGroup;
recordFilterGroupIndex: number;
}) => {
+ const { readonly } = useContext(AdvancedFilterContext);
+
return (
@@ -28,9 +32,11 @@ export const WorkflowAdvancedFilterRecordFilterGroupColumn = ({
index={recordFilterGroupIndex}
recordFilterGroup={parentRecordFilterGroup}
/>
-
+ {!readonly && (
+
+ )}
{
+ const { readonly } = useContext(AdvancedFilterContext);
const currentRecordFilters = useRecoilComponentValueV2(
currentRecordFiltersComponentState,
);
@@ -22,7 +25,7 @@ export const WorkflowAdvancedFilterRecordFilterOperandSelect = ({
(recordFilter) => recordFilter.id === recordFilterId,
);
- const isDisabled = !filter?.fieldMetadataId;
+ const isDisabled = !filter?.fieldMetadataId || readonly;
const filterType = filter?.type;
@@ -33,7 +36,7 @@ export const WorkflowAdvancedFilterRecordFilterOperandSelect = ({
}).filter((operand) => operand !== RecordFilterOperand.IsRelative)
: [];
- if (isDisabled) {
+ if (isDisabled === true) {
return (
{filterType === 'ADDRESS' ? (
@@ -30,12 +34,14 @@ export const WorkflowAdvancedFilterValueFormCompositeFieldInput = ({
defaultValue={recordFilter.value}
onChange={onChange}
VariablePicker={WorkflowVariablePicker}
+ readonly={readonly}
/>
) : (
)
) : filterType === 'CURRENCY' ? (
@@ -45,12 +51,14 @@ export const WorkflowAdvancedFilterValueFormCompositeFieldInput = ({
onChange={onChange}
VariablePicker={WorkflowVariablePicker}
options={CURRENCIES}
+ readonly={readonly}
/>
) : recordFilter.subFieldName === 'amountMicros' ? (
) : null
) : filterType === 'PHONES' ? (
@@ -59,12 +67,14 @@ export const WorkflowAdvancedFilterValueFormCompositeFieldInput = ({
defaultValue={recordFilter.value}
onChange={onChange}
VariablePicker={WorkflowVariablePicker}
+ readonly={readonly}
/>
) : (
)
) : (
@@ -72,6 +82,7 @@ export const WorkflowAdvancedFilterValueFormCompositeFieldInput = ({
defaultValue={recordFilter.value}
onChange={onChange}
VariablePicker={WorkflowVariablePicker}
+ readonly={readonly}
/>
)}
>
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx
index 7e73a31cf..245ce66e8 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx
@@ -185,6 +185,10 @@ export const WorkflowEditActionFindRecords = ({
{
+ if (isFormDisabled === true) {
+ return;
+ }
+
const newFormData: FindRecordsFormData = {
...formData,
filter,
@@ -194,6 +198,7 @@ export const WorkflowEditActionFindRecords = ({
saveAction(newFormData);
}}
+ readonly={isFormDisabled}
/>
{
+ const { readonly } = useContext(AdvancedFilterContext);
const rootRecordFilterGroup = useRecoilComponentValueV2(
rootLevelRecordFilterGroupComponentSelector,
);
@@ -69,6 +72,7 @@ export const WorkflowFindRecordsAddFilterButton = ({
onClick={addRootRecordFilterGroup}
ariaLabel="Add filter"
title="Add filter"
+ disabled={readonly}
/>
);
};
diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowFindRecordsFilters.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowFindRecordsFilters.tsx
index c07108f29..cfbdaccc7 100644
--- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowFindRecordsFilters.tsx
+++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowFindRecordsFilters.tsx
@@ -36,9 +36,11 @@ const StyledChildContainer = styled.div`
export const WorkflowFindRecordsFilters = ({
objectMetadataItem,
onChange,
+ readonly,
}: {
objectMetadataItem: ObjectMetadataItem;
onChange: (filter: FindRecordsActionFilter) => void;
+ readonly?: boolean;
}) => {
const rootRecordFilterGroup = useRecoilComponentValueV2(
rootLevelRecordFilterGroupComponentSelector,
@@ -108,8 +110,9 @@ export const WorkflowFindRecordsFilters = ({
return (
{isDefined(rootRecordFilterGroup) ? (
@@ -136,9 +139,11 @@ export const WorkflowFindRecordsFilters = ({
),
)}
-
+ {!readonly && (
+
+ )}
) : (