forked from git.gladyson/openmonetis
refactor: remover código morto e exports não utilizados
Remove 6 componentes não utilizados (dashboard-grid, expenses/income by category widgets, installment analysis panels, fatura-warning-dialog). Remove funções/tipos não utilizados: successResult, generateApiToken, validateApiToken, getTodayUTC/Local, formatDateForDb, getDateInfo, calculatePercentage, roundToDecimals, safeParseInt/Float, isPeriodValid, getLastPeriods, normalizeWhitespace, formatCurrency wrapper, InboxItemInput, InboxBatchInput, ProcessInboxInput, DiscardInboxInput, LancamentosColumnId, 5 funções de anticipation-helpers. Redireciona imports de formatCurrency para lib/lancamentos/formatting-helpers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -61,57 +61,6 @@ export function parseLocalDateString(dateString: string): Date {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets today's date in UTC
|
||||
* @returns Date object set to today at midnight UTC
|
||||
*/
|
||||
export function getTodayUTC(): Date {
|
||||
const now = new Date();
|
||||
const year = now.getUTCFullYear();
|
||||
const month = now.getUTCMonth();
|
||||
const day = now.getUTCDate();
|
||||
|
||||
return new Date(Date.UTC(year, month, day));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets today's date in local timezone
|
||||
* @returns Date object set to today at midnight local time
|
||||
*/
|
||||
export function getTodayLocal(): Date {
|
||||
const now = new Date();
|
||||
const year = now.getFullYear();
|
||||
const month = now.getMonth();
|
||||
const day = now.getDate();
|
||||
|
||||
return new Date(year, month, day);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets today's period in YYYY-MM format (UTC)
|
||||
* @returns Period string
|
||||
*/
|
||||
export function getTodayPeriodUTC(): string {
|
||||
const now = new Date();
|
||||
const year = now.getUTCFullYear();
|
||||
const month = now.getUTCMonth();
|
||||
|
||||
return `${year}-${String(month + 1).padStart(2, "0")}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats date as YYYY-MM-DD string
|
||||
* @param date - Date to format
|
||||
* @returns Formatted date string
|
||||
*/
|
||||
export function formatDateForDb(date: Date): string {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, "0");
|
||||
const day = String(date.getDate()).padStart(2, "0");
|
||||
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets today's date as YYYY-MM-DD string
|
||||
* @returns Formatted date string
|
||||
@@ -224,27 +173,5 @@ export function getGreeting(date: Date = new Date()): string {
|
||||
return "Boa noite";
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// DATE INFORMATION
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Gets information about a date
|
||||
* @param date - Date to analyze (defaults to now)
|
||||
* @returns Object with date information
|
||||
*/
|
||||
export function getDateInfo(date: Date = new Date()) {
|
||||
return {
|
||||
date,
|
||||
year: date.getFullYear(),
|
||||
month: date.getMonth() + 1,
|
||||
monthName: MONTH_NAMES[date.getMonth()],
|
||||
day: date.getDate(),
|
||||
weekday: WEEKDAY_NAMES[date.getDay()],
|
||||
friendlyDisplay: friendlyDate(date),
|
||||
greeting: getGreeting(date),
|
||||
};
|
||||
}
|
||||
|
||||
// Re-export MONTH_NAMES for convenience
|
||||
export { MONTH_NAMES };
|
||||
|
||||
@@ -24,28 +24,3 @@ export function calculatePercentageChange(
|
||||
// Protege contra valores absurdos (retorna null se > 1 milhão %)
|
||||
return Number.isFinite(change) && Math.abs(change) < 1000000 ? change : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates percentage of part relative to total
|
||||
* @param part - Part value
|
||||
* @param total - Total value
|
||||
* @returns Percentage (0-100)
|
||||
*/
|
||||
export function calculatePercentage(part: number, total: number): number {
|
||||
if (total === 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (part / total) * 100;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rounds number to specified decimal places
|
||||
* @param value - Value to round
|
||||
* @param decimals - Number of decimal places (default 2)
|
||||
* @returns Rounded number
|
||||
*/
|
||||
export function roundToDecimals(value: number, decimals: number = 2): number {
|
||||
const multiplier = 10 ** decimals;
|
||||
return Math.round(value * multiplier) / multiplier;
|
||||
}
|
||||
|
||||
@@ -25,44 +25,3 @@ export function safeToNumber(value: unknown, defaultValue: number = 0): number {
|
||||
const parsed = Number(value);
|
||||
return Number.isNaN(parsed) ? defaultValue : parsed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Safely parses integer from unknown value
|
||||
* @param value - Value to parse
|
||||
* @param defaultValue - Default value if parsing fails
|
||||
* @returns Parsed integer or default value
|
||||
*/
|
||||
export function safeParseInt(value: unknown, defaultValue: number = 0): number {
|
||||
if (typeof value === "number") {
|
||||
return Math.trunc(value);
|
||||
}
|
||||
|
||||
if (typeof value === "string") {
|
||||
const parsed = Number.parseInt(value, 10);
|
||||
return Number.isNaN(parsed) ? defaultValue : parsed;
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Safely parses float from unknown value
|
||||
* @param value - Value to parse
|
||||
* @param defaultValue - Default value if parsing fails
|
||||
* @returns Parsed float or default value
|
||||
*/
|
||||
export function safeParseFloat(
|
||||
value: unknown,
|
||||
defaultValue: number = 0,
|
||||
): number {
|
||||
if (typeof value === "number") {
|
||||
return value;
|
||||
}
|
||||
|
||||
if (typeof value === "string") {
|
||||
const parsed = Number.parseFloat(value);
|
||||
return Number.isNaN(parsed) ? defaultValue : parsed;
|
||||
}
|
||||
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
@@ -29,8 +29,6 @@ export const MONTH_NAMES = [
|
||||
"dezembro",
|
||||
] as const;
|
||||
|
||||
export type MonthName = (typeof MONTH_NAMES)[number];
|
||||
|
||||
// ============================================================================
|
||||
// CORE PARSING & FORMATTING (YYYY-MM format)
|
||||
// ============================================================================
|
||||
@@ -63,20 +61,6 @@ export function formatPeriod(year: number, month: number): string {
|
||||
return `${year}-${String(month).padStart(2, "0")}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates if period string is valid
|
||||
* @param period - Period string to validate
|
||||
* @returns True if valid, false otherwise
|
||||
*/
|
||||
export function isPeriodValid(period: string): boolean {
|
||||
try {
|
||||
parsePeriod(period);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// PERIOD NAVIGATION
|
||||
// ============================================================================
|
||||
@@ -139,22 +123,6 @@ export function addMonthsToPeriod(period: string, offset: number): string {
|
||||
return formatPeriod(nextYear, nextMonth);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last N periods including the current one
|
||||
* @param current - Current period in YYYY-MM format
|
||||
* @param length - Number of periods to return
|
||||
* @returns Array of period strings
|
||||
*/
|
||||
export function getLastPeriods(current: string, length: number): string[] {
|
||||
const periods: string[] = [];
|
||||
|
||||
for (let offset = length - 1; offset >= 0; offset -= 1) {
|
||||
periods.push(addMonthsToPeriod(current, -offset));
|
||||
}
|
||||
|
||||
return periods;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// PERIOD COMPARISON & RANGES
|
||||
// ============================================================================
|
||||
|
||||
@@ -23,15 +23,6 @@ export function normalizeFilePath(path: string | null | undefined): string {
|
||||
return path?.split("/").filter(Boolean).pop() ?? "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalizes whitespace in string (replaces multiple spaces with single space)
|
||||
* @param value - String to normalize
|
||||
* @returns String with normalized whitespace
|
||||
*/
|
||||
export function normalizeWhitespace(value: string): string {
|
||||
return value.replace(/\s+/g, " ").trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalizes icon input - trims and returns null if empty
|
||||
* @param icon - Icon string to normalize
|
||||
|
||||
Reference in New Issue
Block a user