Stop persisting JSON fields in workflow runs (#11715)
## Before https://github.com/user-attachments/assets/903c5771-ac15-49a6-9175-40c8b027655b ## After https://github.com/user-attachments/assets/26aedf77-31ac-439a-a39c-57a274010f3f
This commit is contained in:
committed by
GitHub
parent
6a75420285
commit
48e2581581
@ -25,6 +25,7 @@ import { isFieldSelect } from '@/object-record/record-field/types/guards/isField
|
|||||||
import { isFieldSelectValue } from '@/object-record/record-field/types/guards/isFieldSelectValue';
|
import { isFieldSelectValue } from '@/object-record/record-field/types/guards/isFieldSelectValue';
|
||||||
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
|
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
|
||||||
|
|
||||||
|
import { isWorkflowRunJsonField } from '@/object-record/record-field/meta-types/utils/isWorkflowRunJsonField';
|
||||||
import { isFieldArray } from '@/object-record/record-field/types/guards/isFieldArray';
|
import { isFieldArray } from '@/object-record/record-field/types/guards/isFieldArray';
|
||||||
import { isFieldArrayValue } from '@/object-record/record-field/types/guards/isFieldArrayValue';
|
import { isFieldArrayValue } from '@/object-record/record-field/types/guards/isFieldArrayValue';
|
||||||
import { isFieldRichText } from '@/object-record/record-field/types/guards/isFieldRichText';
|
import { isFieldRichText } from '@/object-record/record-field/types/guards/isFieldRichText';
|
||||||
@ -126,6 +127,12 @@ export const usePersistField = () => {
|
|||||||
const fieldIsArray =
|
const fieldIsArray =
|
||||||
isFieldArray(fieldDefinition) && isFieldArrayValue(valueToPersist);
|
isFieldArray(fieldDefinition) && isFieldArrayValue(valueToPersist);
|
||||||
|
|
||||||
|
const isUnpersistableRawJsonField = isWorkflowRunJsonField({
|
||||||
|
objectMetadataNameSingular:
|
||||||
|
fieldDefinition.metadata.objectMetadataNameSingular,
|
||||||
|
fieldName: fieldDefinition.metadata.fieldName,
|
||||||
|
});
|
||||||
|
|
||||||
const isValuePersistable =
|
const isValuePersistable =
|
||||||
fieldIsRelationToOneObject ||
|
fieldIsRelationToOneObject ||
|
||||||
fieldIsText ||
|
fieldIsText ||
|
||||||
@ -142,7 +149,7 @@ export const usePersistField = () => {
|
|||||||
fieldIsSelect ||
|
fieldIsSelect ||
|
||||||
fieldIsMultiSelect ||
|
fieldIsMultiSelect ||
|
||||||
fieldIsAddress ||
|
fieldIsAddress ||
|
||||||
fieldIsRawJson ||
|
(fieldIsRawJson && !isUnpersistableRawJsonField) ||
|
||||||
fieldIsArray ||
|
fieldIsArray ||
|
||||||
fieldIsRichText ||
|
fieldIsRichText ||
|
||||||
fieldIsRichTextV2;
|
fieldIsRichTextV2;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
import { isWorkflowRunJsonField } from '@/object-record/record-field/meta-types/utils/isWorkflowRunJsonField';
|
||||||
import {
|
import {
|
||||||
FieldInputClickOutsideEvent,
|
FieldInputClickOutsideEvent,
|
||||||
FieldInputEvent,
|
FieldInputEvent,
|
||||||
@ -131,13 +131,11 @@ export const RawJsonFieldInput = ({
|
|||||||
[handleShiftTab, draftValue],
|
[handleShiftTab, draftValue],
|
||||||
);
|
);
|
||||||
|
|
||||||
// FIXME: This is temporary. We'll soon introduce a new display mode for all fields and we'll have to remove this code.
|
const showEditingButton = !isWorkflowRunJsonField({
|
||||||
const isWorkflowRunOutputField =
|
objectMetadataNameSingular:
|
||||||
fieldDefinition.metadata.objectMetadataNameSingular ===
|
fieldDefinition.metadata.objectMetadataNameSingular,
|
||||||
CoreObjectNameSingular.WorkflowRun &&
|
fieldName: fieldDefinition.metadata.fieldName,
|
||||||
fieldDefinition.metadata.fieldName === 'output';
|
});
|
||||||
|
|
||||||
const showEditingButton = !isWorkflowRunOutputField;
|
|
||||||
|
|
||||||
const handleStartEditing = () => {
|
const handleStartEditing = () => {
|
||||||
setIsEditing(true);
|
setIsEditing(true);
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||||
|
|
||||||
|
// FIXME: This is temporary. We'll soon introduce a new display mode for all fields and we'll have to remove this code.
|
||||||
|
export const isWorkflowRunJsonField = ({
|
||||||
|
objectMetadataNameSingular,
|
||||||
|
fieldName,
|
||||||
|
}: {
|
||||||
|
fieldName: string | undefined;
|
||||||
|
objectMetadataNameSingular: string | undefined;
|
||||||
|
}) => {
|
||||||
|
return (
|
||||||
|
objectMetadataNameSingular === CoreObjectNameSingular.WorkflowRun &&
|
||||||
|
(fieldName === 'output' || fieldName === 'context')
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -1,5 +1,6 @@
|
|||||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||||
import { isWorkflowSubObjectMetadata } from '@/object-metadata/utils/isWorkflowSubObjectMetadata';
|
import { isWorkflowSubObjectMetadata } from '@/object-metadata/utils/isWorkflowSubObjectMetadata';
|
||||||
|
import { isWorkflowRunJsonField } from '@/object-record/record-field/meta-types/utils/isWorkflowRunJsonField';
|
||||||
import { isFieldActor } from '@/object-record/record-field/types/guards/isFieldActor';
|
import { isFieldActor } from '@/object-record/record-field/types/guards/isFieldActor';
|
||||||
import { isFieldRichText } from '@/object-record/record-field/types/guards/isFieldRichText';
|
import { isFieldRichText } from '@/object-record/record-field/types/guards/isFieldRichText';
|
||||||
|
|
||||||
@ -26,8 +27,10 @@ export const isFieldValueReadOnly = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
objectNameSingular === CoreObjectNameSingular.WorkflowRun &&
|
isWorkflowRunJsonField({
|
||||||
fieldName === 'output'
|
objectMetadataNameSingular: objectNameSingular,
|
||||||
|
fieldName,
|
||||||
|
})
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user