Fix bug in browser extension emails list if credential has no email address (#612)

This commit is contained in:
Leendert de Borst
2025-02-25 11:59:47 +01:00
committed by Leendert de Borst
parent 41486c940c
commit 92a2511d9d
2 changed files with 20 additions and 6 deletions

View File

@@ -34,13 +34,8 @@ const EmailsList: React.FC = () => {
return;
}
// TODO: create separate query to only get email addresses to avoid loading all credentials.
const credentials = dbContext.sqliteClient.getAllCredentials();
// Get unique email addresses from all credentials.
const emailAddresses = credentials
.map(cred => cred.Email.trim()) // Trim whitespace
.filter((email, index, self) => self.indexOf(email) === index);
const emailAddresses = dbContext.sqliteClient.getAllEmailAddresses();
try {
// For now we only show the latest 50 emails. No pagination.

View File

@@ -229,6 +229,25 @@ class SqliteClient {
}));
}
/**
* Fetch all unique email addresses from all credentials.
* @returns Array of email addresses.
*/
public getAllEmailAddresses(): string[] {
const query = `
SELECT DISTINCT
a.Email
FROM Credentials c
LEFT JOIN Aliases a ON c.AliasId = a.Id
WHERE a.Email IS NOT NULL AND a.Email != '' AND c.IsDeleted = 0
`;
const results = this.executeQuery(query);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return results.map((row: any) => row.Email);
}
/**
* Fetch all encryption keys.
*/