diff --git a/src/recipients/recipient.ts b/src/recipients/recipient.ts index ab3f976e755..380002fff81 100644 --- a/src/recipients/recipient.ts +++ b/src/recipients/recipient.ts @@ -205,12 +205,12 @@ export function getRecipientVerificationStatus( } } -type PreparedRecipient = Recipient & { +type PreparedRecipient = T & { displayPrepared: Fuzzysort.Prepared | undefined phonePrepared: Fuzzysort.Prepared | undefined } -type FuzzyRecipient = Recipient | PreparedRecipient +type FuzzyRecipient = T | PreparedRecipient const SCORE_THRESHOLD = -6000 @@ -226,19 +226,19 @@ const fuzzysortPreparedOptions = { allowTypo: false, } -function fuzzysortToRecipients( - fuzzyResults: Fuzzysort.KeysResults -): FuzzyRecipient[] { +function fuzzysortToRecipients( + fuzzyResults: Fuzzysort.KeysResults> +): FuzzyRecipient[] { // This is the fastest way to map the 'obj' into a results array // https://jsperf.com/set-iterator-vs-foreach/16 - const result = [] + const result: FuzzyRecipient[] = [] for (let _len = fuzzyResults.length, _key = 0; _key < _len; _key++) { result[_key] = fuzzyResults[_key].obj } return result } -function nameCompare(a: FuzzyRecipient, b: FuzzyRecipient) { +function nameCompare(a: FuzzyRecipient, b: FuzzyRecipient) { const nameA = a.name?.toUpperCase() ?? '' const nameB = b.name?.toUpperCase() ?? '' @@ -250,16 +250,16 @@ function nameCompare(a: FuzzyRecipient, b: FuzzyRecipient) { return 0 } -export function sortRecipients(recipients: Recipient[]) { +export function sortRecipients(recipients: T[]) { return recipients.sort(nameCompare) } -function executeFuzzySearch( - recipients: FuzzyRecipient[], +function executeFuzzySearch( + recipients: FuzzyRecipient[], query: string, - options: Fuzzysort.KeysOptions, + options: Fuzzysort.KeysOptions>, shouldSort?: boolean -): FuzzyRecipient[] { +): FuzzyRecipient[] { const parsedQuery = query.replace(/[()-\s/\\]/g, '') if (parsedQuery === '') { // fuzzysort does not handle empty string query @@ -277,7 +277,7 @@ export function filterRecipients(recipients: Recipient[], query: string, shouldS return executeFuzzySearch(recipients, query, fuzzysortOptions, shouldSort) } -export function filterRecipientFactory(recipients: Recipient[], shouldSort: boolean) { +export function filterRecipientFactory(recipients: T[], shouldSort: boolean) { const preparedRecipients = recipients.map((r) => ({ ...r, displayPrepared: fuzzysort.prepare(r.name!), diff --git a/src/send/reducers.ts b/src/send/reducers.ts index bc8bab46531..5acffec6168 100644 --- a/src/send/reducers.ts +++ b/src/send/reducers.ts @@ -16,7 +16,7 @@ export interface PaymentInfo { export interface State { isSending: boolean - recentRecipients: Recipient[] + recentRecipients: (Recipient & { address: string })[] // Keep a list of recent (last 24 hours) payments recentPayments: PaymentInfo[] inviteRewardsVersion: string