forked from git.gladyson/openmonetis
- Adicionados ícones SVG para ChatGPT, Claude, Gemini e OpenRouter - Implementados ícones para modos claro e escuro do ChatGPT - Criado script de inicialização para PostgreSQL com extensão pgcrypto - Adicionado script de configuração de ambiente que faz backup do .env - Configurado tsconfig.json para TypeScript com opções de compilação
41 lines
925 B
TypeScript
41 lines
925 B
TypeScript
/**
|
|
* Logo utilities
|
|
*
|
|
* Consolidated from:
|
|
* - /lib/logo.ts (utility functions)
|
|
*/
|
|
|
|
/**
|
|
* Normalizes logo path to get just the filename
|
|
* @param logo - Logo path or URL
|
|
* @returns Filename only
|
|
*/
|
|
export const normalizeLogo = (logo?: string | null) =>
|
|
logo?.split("/").filter(Boolean).pop() ?? "";
|
|
|
|
/**
|
|
* Derives a display name from a logo filename
|
|
* @param logo - Logo path or filename
|
|
* @returns Formatted display name
|
|
* @example
|
|
* deriveNameFromLogo("my-company-logo.png") // "My Company Logo"
|
|
*/
|
|
export const deriveNameFromLogo = (logo?: string | null) => {
|
|
if (!logo) {
|
|
return "";
|
|
}
|
|
|
|
const fileName = normalizeLogo(logo);
|
|
|
|
if (!fileName) {
|
|
return "";
|
|
}
|
|
|
|
const withoutExtension = fileName.replace(/\.[^/.]+$/, "");
|
|
return withoutExtension
|
|
.split(/[-_.\s]+/)
|
|
.filter(Boolean)
|
|
.map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
|
|
.join(" ");
|
|
};
|