Fix search record relations (#12553)
Bunch of fixes: - fix relations in search records - allow to update relations in update record action - fix multi select <img width="503" alt="Capture d’écran 2025-06-11 à 18 30 40" src="https://github.com/user-attachments/assets/ab652405-ec18-4454-9a60-c0db4c5df823" /> <img width="503" alt="Capture d’écran 2025-06-11 à 18 31 04" src="https://github.com/user-attachments/assets/70b55e49-58ba-4cc2-b38b-13842714fc28" />
This commit is contained in:
@ -6,19 +6,21 @@ import { useEffect, useState } from 'react';
|
||||
import { formatFieldMetadataItemAsFieldDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition';
|
||||
import { FormFieldInput } from '@/object-record/record-field/components/FormFieldInput';
|
||||
import { FormSingleRecordPicker } from '@/object-record/record-field/form-types/components/FormSingleRecordPicker';
|
||||
import { isFieldRelation } from '@/object-record/record-field/types/guards/isFieldRelation';
|
||||
import { WorkflowFieldsMultiSelect } from '@/workflow/components/WorkflowEditUpdateEventFieldsMultiSelect';
|
||||
import { WorkflowStepBody } from '@/workflow/workflow-steps/components/WorkflowStepBody';
|
||||
import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/WorkflowStepHeader';
|
||||
import { useActionHeaderTypeOrThrow } from '@/workflow/workflow-steps/workflow-actions/hooks/useActionHeaderTypeOrThrow';
|
||||
import { useActionIconColorOrThrow } from '@/workflow/workflow-steps/workflow-actions/hooks/useActionIconColorOrThrow';
|
||||
import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/getActionIcon';
|
||||
import { shouldDisplayFormField } from '@/workflow/workflow-steps/workflow-actions/utils/shouldDisplayFormField';
|
||||
import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components/WorkflowVariablePicker';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { HorizontalSeparator, useIcons } from 'twenty-ui/display';
|
||||
import { SelectOption } from 'twenty-ui/input';
|
||||
import { JsonValue } from 'type-fest';
|
||||
import { useDebouncedCallback } from 'use-debounce';
|
||||
import { shouldDisplayFormField } from '@/workflow/workflow-steps/workflow-actions/utils/shouldDisplayFormField';
|
||||
import { RelationType } from '~/generated-metadata/graphql';
|
||||
|
||||
type WorkflowEditActionUpdateRecordProps = {
|
||||
action: WorkflowUpdateRecordAction;
|
||||
@ -217,25 +219,31 @@ export const WorkflowEditActionUpdateRecord = ({
|
||||
<HorizontalSeparator noMargin />
|
||||
|
||||
{formData.fieldsToUpdate.map((fieldName) => {
|
||||
const fieldDefinition = inlineFieldDefinitions?.find(
|
||||
(definition) => definition.metadata.fieldName === fieldName,
|
||||
);
|
||||
const fieldDefinition = inlineFieldDefinitions?.find((definition) => {
|
||||
const isFieldRelationManyToOne =
|
||||
isFieldRelation(definition) &&
|
||||
definition.metadata.relationType === RelationType.MANY_TO_ONE;
|
||||
|
||||
const value = isFieldRelationManyToOne
|
||||
? `${definition.metadata.fieldName}Id`
|
||||
: definition.metadata.fieldName;
|
||||
|
||||
return value === fieldName;
|
||||
});
|
||||
|
||||
if (!isDefined(fieldDefinition)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const currentValue = formData[
|
||||
fieldDefinition.metadata.fieldName
|
||||
] as JsonValue;
|
||||
const currentValue = formData[fieldName] as JsonValue;
|
||||
|
||||
return (
|
||||
<FormFieldInput
|
||||
key={fieldDefinition.metadata.fieldName}
|
||||
key={fieldName}
|
||||
defaultValue={currentValue}
|
||||
field={fieldDefinition}
|
||||
onChange={(value) => {
|
||||
handleFieldChange(fieldDefinition.metadata.fieldName, value);
|
||||
handleFieldChange(fieldName, value);
|
||||
}}
|
||||
VariablePicker={WorkflowVariablePicker}
|
||||
readonly={isFormDisabled}
|
||||
|
||||
@ -68,7 +68,7 @@ export const WorkflowFindRecordsFiltersEffect = ({
|
||||
isDefined(defaultValue?.recordFilterGroups) &&
|
||||
defaultValue.recordFilterGroups.length > 0
|
||||
) {
|
||||
setCurrentRecordFilterGroups(defaultValue.recordFilterGroups);
|
||||
setCurrentRecordFilterGroups(defaultValue.recordFilterGroups ?? []);
|
||||
setHasInitializedCurrentRecordFilterGroups(true);
|
||||
}
|
||||
}, [
|
||||
|
||||
Reference in New Issue
Block a user