feat(logos): adiciona nomes de exibicao via dicionario e busca sem acentos

- Adiciona arquivo display-names.ts com 433 nomes legiveis (ex: bb.png → "Banco do Brasil")
- Adiciona getLogoDisplayName() que consulta dicionario primeiro, com fallback para deriveNameFromLogo
- Adiciona normalizeForSearch() para busca accent-insensitive
- Atualiza account-dialog, card-dialog, logo-picker e use-logo-selection para usar a nova API

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
lucas
2026-05-22 23:35:11 -03:00
parent fea9cf81d8
commit 7a8d01debe
6 changed files with 474 additions and 12 deletions

View File

@@ -1,9 +1,34 @@
import { logoDisplayNames } from "./display-names";
/**
* Normalizes logo path to get just the filename
*/
export const normalizeLogo = (logo?: string | null) =>
logo?.split("/").filter(Boolean).pop() ?? "";
/**
* Normalizes a string for accent-insensitive search.
* Removes diacritics and converts to lowercase.
*/
export const normalizeForSearch = (text: string): string =>
text
.toLowerCase()
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "");
/**
* Gets the display name for a logo, using a manual dictionary first
* and falling back to deriveNameFromLogo for unknown logos.
*/
export const getLogoDisplayName = (logo?: string | null): string => {
if (!logo) return "";
const fileName = normalizeLogo(logo);
if (!fileName) return "";
return logoDisplayNames[fileName.toLowerCase()] ?? deriveNameFromLogo(logo);
};
/**
* Derives a display name from a logo filename
* @param logo - Logo path or filename