diff --git a/packages/twenty-front/src/modules/logic-functions/components/LogicFunctionLogs.tsx b/packages/twenty-front/src/modules/logic-functions/components/LogicFunctionLogs.tsx index e215ad2503..aa1a8fb8d6 100644 --- a/packages/twenty-front/src/modules/logic-functions/components/LogicFunctionLogs.tsx +++ b/packages/twenty-front/src/modules/logic-functions/components/LogicFunctionLogs.tsx @@ -29,6 +29,7 @@ export const LogicFunctionLogs = ({ label={t`Logs`} value={value} height={height} + maxRows={5} readOnly /> { ); } + if ( + isFieldText(fieldDefinition) && + fieldDisplayMode === FieldDisplayMode.EDITOR + ) { + return ( + + ); + } + return ( { + const fieldName = fieldMetadataItem.name; + const { updateOneRecord } = useUpdateOneRecord(); + + const [fieldValue, setFieldValue] = useAtomFamilySelectorState( + recordStoreFamilySelector, + { + recordId, + fieldName, + }, + ); + + const isRecordFieldReadOnly = useIsRecordFieldReadOnly({ + recordId, + objectMetadataId: objectMetadataItem.id, + fieldMetadataId: fieldMetadataItem.id, + }); + + const textAreaId = `field-widget-text-editor-${recordId}-${fieldName}`; + + const persistTextDebounced = useDebouncedCallback((text: string) => { + if (isRecordFieldReadOnly === true) { + return; + } + + updateOneRecord({ + objectNameSingular: objectMetadataItem.nameSingular, + idToUpdate: recordId, + updateOneRecordInput: { + [fieldName]: text, + }, + }); + }, 300); + + useEffect(() => () => persistTextDebounced.flush(), [persistTextDebounced]); + + const handleChange = useCallback( + (text: string) => { + if (isRecordFieldReadOnly === true) { + return; + } + + setFieldValue(text); + + persistTextDebounced(text); + }, + [isRecordFieldReadOnly, persistTextDebounced, setFieldValue], + ); + + const handleBlur = useCallback(() => { + persistTextDebounced.flush(); + }, [persistTextDebounced]); + + const fieldTextValue = isFieldTextValue(fieldValue) ? fieldValue : ''; + + return ( + +