Timeline log displays empty when field value deleted (#6542)

Fixes https://github.com/twentyhq/twenty/issues/6288

## Before
<img width="1282" alt="Screenshot 2024-08-05 at 13 22 13"
src="https://github.com/user-attachments/assets/27bf3343-7d6a-440f-905b-e55fdde918d7">

## After
<img width="1251" alt="Screenshot 2024-08-05 at 13 22 05"
src="https://github.com/user-attachments/assets/25404bff-9d90-4631-af09-fe18b6df43f5">
This commit is contained in:
Weiko
2024-08-05 14:36:57 +02:00
committed by GitHub
parent 2b311b5f7b
commit 542419bc1b

View File

@ -23,6 +23,10 @@ const StyledEventFieldDiffContainer = styled.div`
width: 380px; width: 380px;
`; `;
const StyledEmptyValue = styled.div`
color: ${({ theme }) => theme.font.color.tertiary};
`;
export const EventFieldDiff = ({ export const EventFieldDiff = ({
diffRecord, diffRecord,
mainObjectMetadataItem, mainObjectMetadataItem,
@ -33,21 +37,39 @@ export const EventFieldDiff = ({
throw new Error('fieldMetadataItem is required'); throw new Error('fieldMetadataItem is required');
} }
const isValueEmpty = (value: unknown): boolean =>
value === null || value === undefined || value === '';
const isObjectEmpty = (obj: Record<string, unknown>): boolean =>
Object.values(obj).every(isValueEmpty);
const isUpdatedToEmpty =
isValueEmpty(diffRecord) ||
(typeof diffRecord === 'object' &&
diffRecord !== null &&
isObjectEmpty(diffRecord));
return ( return (
<RecordFieldValueSelectorContextProvider> <RecordFieldValueSelectorContextProvider>
<StyledEventFieldDiffContainer> <StyledEventFieldDiffContainer>
<EventFieldDiffLabel fieldMetadataItem={fieldMetadataItem} /> <EventFieldDiffLabel fieldMetadataItem={fieldMetadataItem} />
<EventFieldDiffValueEffect {isUpdatedToEmpty ? (
diffArtificialRecordStoreId={diffArtificialRecordStoreId} <StyledEmptyValue>Empty</StyledEmptyValue>
mainObjectMetadataItem={mainObjectMetadataItem} ) : (
fieldMetadataItem={fieldMetadataItem} <>
diffRecord={diffRecord} <EventFieldDiffValueEffect
/> diffArtificialRecordStoreId={diffArtificialRecordStoreId}
<EventFieldDiffValue mainObjectMetadataItem={mainObjectMetadataItem}
diffArtificialRecordStoreId={diffArtificialRecordStoreId} fieldMetadataItem={fieldMetadataItem}
mainObjectMetadataItem={mainObjectMetadataItem} diffRecord={diffRecord}
fieldMetadataItem={fieldMetadataItem} />
/> <EventFieldDiffValue
diffArtificialRecordStoreId={diffArtificialRecordStoreId}
mainObjectMetadataItem={mainObjectMetadataItem}
fieldMetadataItem={fieldMetadataItem}
/>
</>
)}
</StyledEventFieldDiffContainer> </StyledEventFieldDiffContainer>
</RecordFieldValueSelectorContextProvider> </RecordFieldValueSelectorContextProvider>
); );