forked from git.gladyson/openmonetis
- Replace ESLint with Biome for linting and formatting - Configure Biome with tabs, double quotes, and organized imports - Move all SQL/Drizzle queries from page.tsx files to data.ts files - Create new data.ts files for: ajustes, dashboard, relatorios/categorias - Update existing data.ts files: extrato, fatura (add lancamentos queries) - Remove all drizzle-orm imports from page.tsx files - Update README.md with new tooling info Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
41 lines
905 B
TypeScript
41 lines
905 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(" ");
|
|
};
|