Deduplicate-emails (#10355)

Following User request to remove duplicate emails

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
This commit is contained in:
Guillim
2025-02-20 15:40:49 +01:00
committed by GitHub
parent d4aba8d1ff
commit 04a62e9749
5 changed files with 75 additions and 2 deletions

View File

@ -29,4 +29,17 @@ describe('getUniqueContactsAndHandles', () => {
'jane@twenty.com',
]);
});
it('should deduplicate handles when they are in different cases', () => {
const contacts: Contact[] = [
{ handle: 'john@twenty.com', displayName: 'John Doe' },
{ handle: 'John@twenty.com', displayName: 'John Doe' },
];
const result = getUniqueContactsAndHandles(contacts);
expect(result.uniqueContacts).toEqual([
{ handle: 'john@twenty.com', displayName: 'John Doe' },
]);
expect(result.uniqueHandles).toEqual(['john@twenty.com']);
});
});

View File

@ -11,9 +11,13 @@ export function getUniqueContactsAndHandles(contacts: Contact[]): {
return { uniqueContacts: [], uniqueHandles: [] };
}
const uniqueHandles = uniq(contacts.map((participant) => participant.handle));
const uniqueHandles = uniq(
contacts.map((participant) => participant.handle.toLocaleLowerCase()),
);
const uniqueContacts = uniqBy(contacts, 'handle');
const uniqueContacts = uniqBy(contacts, (contact) =>
contact.handle.toLocaleLowerCase(),
);
return { uniqueContacts, uniqueHandles };
}