1+ import type { LocaleContextProps } from '@components/LocaleContextProvider' ;
12import CONST from '@src/CONST' ;
23import type { PersonalDetails } from '@src/types/onyx' ;
34import type { DeviceContact , StringHolder } from './ContactImport/types' ;
4- import localeCompare from './LocaleCompare' ;
55import { getUserToInviteContactOption } from './OptionsListUtils' ;
66import type { SearchOption } from './OptionsListUtils' ;
77import RandomAvatarUtils from './RandomAvatarUtils' ;
88
9- function sortEmailObjects ( emails ? : StringHolder [ ] ) : string [ ] {
9+ function sortEmailObjects ( emails : StringHolder [ ] , localeCompare : LocaleContextProps [ 'localeCompare' ] ) : string [ ] {
1010 if ( ! emails ?. length ) {
1111 return [ ] ;
1212 }
@@ -28,10 +28,10 @@ function sortEmailObjects(emails?: StringHolder[]): string[] {
2828 } ) ;
2929}
3030
31- const getContacts = ( deviceContacts : DeviceContact [ ] | [ ] ) : Array < SearchOption < PersonalDetails > > => {
31+ const getContacts = ( deviceContacts : DeviceContact [ ] | [ ] , localeCompare : LocaleContextProps [ 'localeCompare' ] ) : Array < SearchOption < PersonalDetails > > => {
3232 return deviceContacts
3333 . map ( ( contact ) => {
34- const email = sortEmailObjects ( contact ?. emailAddresses ?? [ ] ) ?. at ( 0 ) ?? '' ;
34+ const email = sortEmailObjects ( contact ?. emailAddresses ?? [ ] , localeCompare ) ?. at ( 0 ) ?? '' ;
3535 // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
3636 const avatarSource = ( contact ?. imageData || RandomAvatarUtils . getAvatarForContact ( `${ contact ?. firstName } ${ email } ${ contact ?. lastName } ` ) ) ?? '' ;
3737 const phoneNumber = contact . phoneNumbers ?. [ 0 ] ?. value ?? '' ;
@@ -53,3 +53,4 @@ const getContacts = (deviceContacts: DeviceContact[] | []): Array<SearchOption<P
5353} ;
5454
5555export default getContacts ;
56+ export { sortEmailObjects } ;
0 commit comments