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,10 +37,26 @@ 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} />
{isUpdatedToEmpty ? (
<StyledEmptyValue>Empty</StyledEmptyValue>
) : (
<>
<EventFieldDiffValueEffect <EventFieldDiffValueEffect
diffArtificialRecordStoreId={diffArtificialRecordStoreId} diffArtificialRecordStoreId={diffArtificialRecordStoreId}
mainObjectMetadataItem={mainObjectMetadataItem} mainObjectMetadataItem={mainObjectMetadataItem}
@ -48,6 +68,8 @@ export const EventFieldDiff = ({
mainObjectMetadataItem={mainObjectMetadataItem} mainObjectMetadataItem={mainObjectMetadataItem}
fieldMetadataItem={fieldMetadataItem} fieldMetadataItem={fieldMetadataItem}
/> />
</>
)}
</StyledEventFieldDiffContainer> </StyledEventFieldDiffContainer>
</RecordFieldValueSelectorContextProvider> </RecordFieldValueSelectorContextProvider>
); );