diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventUpdateProperty.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/components/EventUpdateProperty.tsx
deleted file mode 100644
index 46f4061db..000000000
--- a/packages/twenty-front/src/modules/activities/timelineActivities/components/EventUpdateProperty.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { useTheme } from '@emotion/react';
-import styled from '@emotion/styled';
-import { IconArrowRight } from 'twenty-ui';
-
-type EventUpdatePropertyProps = {
- propertyName: string;
- before?: string;
- after?: string;
-};
-
-const StyledContainer = styled.div`
- display: flex;
- margin-right: ${({ theme }) => theme.spacing(1)};
- gap: ${({ theme }) => theme.spacing(1)};
- white-space: nowrap;
-`;
-
-const StyledPropertyName = styled.div``;
-
-export const EventUpdateProperty = ({
- propertyName,
- after,
-}: EventUpdatePropertyProps) => {
- const theme = useTheme();
- return (
-
- {propertyName ?? '(empty)'}
-
- {JSON.stringify(after)}
-
- );
-};
diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiff.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiff.tsx
index 108f38562..1cebf7e5e 100644
--- a/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiff.tsx
+++ b/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiff.tsx
@@ -5,6 +5,7 @@ import { EventFieldDiffValue } from '@/activities/timelineActivities/rows/main-o
import { EventFieldDiffValueEffect } from '@/activities/timelineActivities/rows/main-object/components/EventFieldDiffValueEffect';
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
+import { RecordFieldValueSelectorContextProvider } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
type EventFieldDiffProps = {
diffRecord: Record;
@@ -33,19 +34,21 @@ export const EventFieldDiff = ({
}
return (
-
- →
-
-
-
+
+
+ →
+
+
+
+
);
};
diff --git a/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiffValueEffect.tsx b/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiffValueEffect.tsx
index 04908f71c..f07a2fc73 100644
--- a/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiffValueEffect.tsx
+++ b/packages/twenty-front/src/modules/activities/timelineActivities/rows/main-object/components/EventFieldDiffValueEffect.tsx
@@ -3,6 +3,7 @@ import { useSetRecoilState } from 'recoil';
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
+import { useSetRecordValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
export const EventFieldDiffValueEffect = ({
@@ -16,9 +17,10 @@ export const EventFieldDiffValueEffect = ({
mainObjectMetadataItem: ObjectMetadataItem;
fieldMetadataItem: FieldMetadataItem;
}) => {
- const setEntityFields = useSetRecoilState(
+ const setEntity = useSetRecoilState(
recordStoreFamilyState(diffArtificialRecordStoreId),
);
+ const setRecordValue = useSetRecordValue();
useEffect(() => {
if (!diffRecord) return;
@@ -29,13 +31,15 @@ export const EventFieldDiffValueEffect = ({
[fieldMetadataItem.name]: diffRecord,
};
- setEntityFields(forgedObjectRecord);
+ setEntity(forgedObjectRecord);
+ setRecordValue(forgedObjectRecord.id, forgedObjectRecord);
}, [
diffRecord,
diffArtificialRecordStoreId,
fieldMetadataItem.name,
mainObjectMetadataItem.nameSingular,
- setEntityFields,
+ setEntity,
+ setRecordValue,
]);
return <>>;
diff --git a/packages/twenty-server/src/modules/timeline/repositiories/timeline-activity.repository.ts b/packages/twenty-server/src/modules/timeline/repositiories/timeline-activity.repository.ts
index 6d6cc30c2..8d9a99c7d 100644
--- a/packages/twenty-server/src/modules/timeline/repositiories/timeline-activity.repository.ts
+++ b/packages/twenty-server/src/modules/timeline/repositiories/timeline-activity.repository.ts
@@ -35,6 +35,17 @@ export class TimelineActivityRepository {
workspaceId,
);
+ // If the diff is empty, we don't need to insert or update an activity
+ // this should be handled differently, events should not be triggered when we will use proper DB events.
+ const isDiffEmpty =
+ properties.diff !== null &&
+ properties.diff &&
+ Object.keys(properties.diff).length === 0;
+
+ if (isDiffEmpty) {
+ return;
+ }
+
if (recentTimelineActivity.length !== 0) {
const newProps = objectRecordDiffMerge(
recentTimelineActivity[0].properties,